请选择 进入手机版 | 继续访问电脑版

湖南新梦想

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 348|回复: 0

mysq常用语法

[复制链接]

5

主题

5

帖子

45

积分

新手上路

Rank: 1

积分
45
发表于 2021-7-2 19:05:28 | 显示全部楼层 |阅读模式
本帖最后由 liyan 于 2021-7-2 19:22 编辑

MySQL应用:
1)查看数据库show databases;
查看指定数据库:show create database 数据库名;
                              
2)创建数据库:createdatabase 数据库名;
       可以在建库时指定字符集,避免中文数据乱码的问题:
create database 数据库名 [DEFAULT] charset =‘utf8’;
1) 打开数据库:use 数据库名;
2) 查看当前数据库的所有表:show tables;
查看指定表的详细信息:show create table 表名;
6)数据类型:
  ①整数int
  ②带精度小数numeric/decimal
     numeric(n,s)  n数据总长度  s小数位数
     numeric(3,1)
    decimal(5,0)
  ③字符型char/varchar
char()与varchar()的区别:
char():定长字符,按设计容量占用存储空间。适用于数据本身有固定长度要求的,例:手机号、身份证号、发票号等
varchar():变长字符,按实际容量占用存储空间。适用于数据长度不固定,例:名字、地址、备注等
()内数字表示字符长度,例如(3),表示可以输入3个汉字或3个字母
前提条件:定长、变长字符都不允许超过设计容量
varchar(255):可以存储255个汉字,但实际占用的存储空间根据存储内容决定
char(255):占用255个字符长度的存储空间,不管实际存储内容的多少
  ④日期date  年/月/日 或 年-月-日
  ⑤时间time  时:分:秒
  ⑥日期时间datetime
3) create table 表名(字段名1数据类型(约束条件),…(其他约束条件))其他选项(例如存储引擎,字符集等选项);
库表也可以指定字符集,避免中文数据乱码的问题:
create table 表名(字段名 数据类型) [DEFAULT] charset= ‘utf8’;
例:
create table stu  #学员信息表
(num int,       #学号
name char(10),   #姓名
height numeric(3,2)   #身高
bir date        #出生日期
);
错误示例:create table stu #学院信息表(num int,#学号……);  系统会默认第一个#号后面的全部为注释
7)查看指定表的结构:desc(describe) 表名;
8)表记录的插入:
单行:insert into 表名(字段列表) values(值列表);
多行:insert into 表名(字段列表) values(值列表1),(值列表2),(值列表3)…(值列表n);
insert into stu(num,name,height,bir)values(1,’李艳’,1.68,’1996-01-14’);
注:字段列表和值列表须保持三点一致:
①   顺序一致
②   数据类型一致
③   个数一致
insert into stu(num,name,height) values(1,’李艳’,1.68);
insert into stu(name,height,num) values(’李艳’,1.68,1);
字段列表省略不写的情况:要求值列表必须按照建表时字段的顺序来提供(不推荐使用)
9)查询表中的数据:select字段列表from表名 [where条件表达式(可选)];
select num,name,height,bir from stu;
字段列表按*号替代
select * from stu;   ----*号代表所有字段,数据量大的表慎用,全表扫描
Select后面可以接常量表达式:select num,1,60 from stu;
10)表记录的修改/更新:update表名set字段1=值1,字段名2=值2,.....,字段名n=值n[where条件表达式]
where子句指定了表中的哪些记录需要修改。若省略了where子句,则表示修改表中的所有记录。字段名/表达式 运算符 值
set子句指定了要修改的字段以及该字段修改后的值。
update stu set num=10;
update stu set height=height+1 wherenum=10;
11)删除表数据(以行为单位):deletefrom 表名 [where条件句] ;
Delete from stu where bir is null;
使用truncate清空表记录:truncatetable 表名
Delete+where条件可以选择只删除部分记录,记录删除后可以使用rollback语句回滚
Truncate只能清空整个表记录,不能删除部分,删除后不可回滚
拓展:删除某一列:alter table 表名drop column 字段名;
12)销毁表:drop table 表名;
   销毁数据库:drop database 数据库名;
13) 备份数据的方法:
① 使用insert into....select插入结果:
Insert into目标表名[(字段列表1)] select 字段列表2 from源表where条件表达式
② 复制表结构及数据到新表:create table 新表 select * from 旧表;
仅复制表结构到新表:create table 新表 select * from 旧表where 1=2(结果为假的条件);
14)给列取别名:select 字段名as’别名’ [from 表名];
              或:select 字段名别名 [from 表名];
15)使用source命令:
1)写好的sql语句保存成一个.sql或.txt文件进行备份
2)新建一个数据库
3)use 新的数据库
4)mysql命令下执行source 保存的sql文件路径。例:source d:\t152\t1.sql;
16) 修改字段相关信息:
1)删除字段:alter table 表名 drop 字段名;                       
2)添加新字段:alter table 表名 add 新字段名 新数据类型[新约束条件][first | (after旧字段名)];
    First:在最前列新增字段名
    After 字段名:在指定字段名后新增字段名

3)修改字段名:alter table 表名 change 旧字段名 新字段名 新数据类型;

4)修改数据类型:alter table 表名 modify 字段名 新数据类型;

5)修改表名:renametable 旧表名 to 新表名;
           或 alter table旧表名 rename 新表名;


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|湖南新梦想 ( 湘ICP备18019834号-2 )

GMT+8, 2022-5-18 12:09 , Processed in 0.041769 second(s), 19 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表