1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > DDL DML DQL DCL DTL MySQL常用语法大全

DDL DML DQL DCL DTL MySQL常用语法大全

时间:2021-07-10 23:16:16

相关推荐

DDL DML DQL DCL DTL MySQL常用语法大全

目录

一 、常用操作数据库和数据表结构的命令(DDL)

二、修改表的命令(DML)

三、对数据的操作(DML,DQL)

四、多表联合查询

五、DCL 数据控制语言

六、DTL 数据事务语言

七、最常用关系语法

八、时间查询

一 、常用操作数据库和数据表结构的命令(DDL)

1.show databases; 查看所有的数据库

2.create database test; 创建一个叫test的数据库

3.drop database test; 删除一个叫test的数据库

4.use test; 选中库 ,在建表之前必须要选择数据库

5.show tables; 在选中的数据库之中查看所有的表

6.create table 表名 (字段1 类型, 字段2 类型);

7.desc 表名; 查看所在的表的字段

8.drop table 表名; 删除表

9.show create database 库名; 查看创建库的详细信息

10.show create table 表名; 查看创建表的详细信息

11.insert into表名[(字段1,字段2,…)]valuse(‘值1’,‘值2’,…); 往表里添加插入数据

二、修改表的命令(DML)

1.修改字段类型 alter table 表名 modify 字段 字段类型;

2.添加新的字段 alter table 表名 add 字段 字段类型

3.添加字段并指定位置 alter table 表名 add 字段 字段类型 after 字段;

4.删除表字段 alter table 表名 drop 字段名;

5.修改指定的字段 alter table 表名 change 原字段名字 新的字段名字 字段类型

三、对数据的操作(DML,DQL)

1.创建表 create table 表名(列名1 列类型(长度是数字)属性,列名2 列类型()属性…

2.增加数据(insert)3种方式

2.1 insert into 表名 values(值1,值2,…)(很少用)

2.2 insert into 表名(字段1,字段2…) values(值1,值2,…);(较常用)

2.3 insert into 表名(字段1,字段2…) values(值1,值2,…),(值1,值2,…),(值1,值2,…);

3.删除数据(delete) delete from 表名 where 条件 注意:where 条件必须加,否则数据会被全部删除

4.更新数据(update) update 表名 set字段1 = 值1, 字段2 = 值2 where 条件

5.查询数据(select)

5.1 查询表中的所有数据 select * from 表名

5.2 指定数据查询 select 字段 from 表名

根据条件查询出来的数据 select 字段 from 表名 where 条件 (最常用的)

where 条件后面跟的条件

关系:>,<,>=,<=,!=

逻辑:or或, and并且

区间:id between 4 and 6 ;闭区间,包含边界

6.排序

select 字段 from 表 order by 字段 排序关键词(desc | asc)

排序关键词 desc 降序 asc 升序(默认)

6.1 通过字段来排序

例如 :select * from star orser by money desc, age asc;

6.2 多字段排序

select 字段 from 表 order by 字段1 desc |asc,…字段n desc| asc;

7.常用的统计函数 sum,avg,count,max,min

只分组:select * from 表 group by 字段

例子: select count(sex) as re,sex from star group by sex having re > 3;

分组统计: select count(sex) from star group by sex;

8.lpat左填充 实现左填充指定长度

rpat右填 实现有填充指定长度

replace替换

lenght获取参数值的字节个数

concat拼接字符串

upper变大写 lower变小写

substr截取从指定索引处后面所有字符

sebstring 截取从指定索引处指定字符长度的字符

round四舍五入

ceil向上取整 返回>=该参数的最小整数 floor向下取整,返回<=该参数的最大整数

truncate 截断 mod取余

9.分组 select * from 表名 limit 偏移量,数量

说明:

9.1.不写偏移量的话就是默认的为0

9.2.实现分页的时候必须写偏移量

偏移量怎么计算?:

limit (n-1)*数量 ,数量

四、多表联合查询

1.内连接

隐式内连接 select username,name from user,goods where user,gid=gods,gid;

显示内连接

select username,from user inner join goods on user.gid=goods.gid;

select * from user left join goods on user.gid=goods.gid;

2.外链接

左连接 包含所有的左边表中的记录以及右边表中没有和他匹配的记录

右连接

select * from user where gid in(select gid from goods);

select * from user right jOin goods on user.gid=goods.gid;

子嵌套查询

数据联合查询

select * from user left join goods on user.gid=goods.gid union select * from user right join goods on user.gid=goods.gid;

两个表同时更新

update user u, goods g set u.gid=12,g.price=1 where u.id=2 and u.gid=g.gid;

五、DCL 数据控制语言

1.创建用户:create user’xiaoming’@‘localhost’ identified by ‘666666’;

2.授权用户:grant all on test.to’xiaoming’@‘localhost’;

3.刷新权限:flush privileges;

4.取消授权:revoke all on test. from ‘xiaoming’@‘localhost’;

5.删除用户: drop user’xiaoming’@‘localhost’;

六、DTL 数据事务语言

1.开启事务:set autocommit=0;

2.操作回滚:rollback;

3.提交事务:commit;

七、最常用关系语法

SELECT

case -------------如果

when sex=‘1’ then ‘男’ -------------sex=‘1’,则返回值’男’

when sex=‘2’ then ‘女’ -------------sex=‘2’,则返回值’女’

else ‘其他’ -------------其他的返回’其他’

end -------------结束

from user --------整体理解: 在user表中如果sex=‘1’,则返回值’男’如果sex=‘2’,则返回值’女’ 否则返回’其他’

SELECT EMPLOYEE_ID, FIRST_NAME, SALARY,

CASE

WHEN SALARY>=10000 THEN ‘A’

WHEN SALARY>=8000 AND SALARY<10000 THEN ‘B’

WHEN SALARY>=6000 AND SALARY<8000 THEN ‘C’

WHEN SALARY>=2000 AND SALARY<6000 THEN ‘D’

ELSE ‘E’

END AS ‘薪资级别’

FROM t_employees ORDER BY 薪资级别; # 顺便排个序

八、时间查询

SELECT 时间函数([参数列表]);

获取各种日期和时间

#. 1.当前系统时间 -07-27 15:11:03 SELECT NOW(); SELECT SYSDATE();# 2.获得当前日期 -07-27 SELECT CURDATE();# 3.获得当前时间 15:11:58 SELECT CURTIME();# 4.获得指定日期在一年中为第几周 30 SELECT WEEK(CURDATE())+1;# 5.获取指定日期中的年 SELECT YEAR(CURDATE());# 6.获取指定日期中的月 7 SELECT MONTH(CURDATE());# 7.获取指定日期中的日 27 SELECT DAY(CURDATE());# 8.获取指定日期中的时 15 SELECT HOUR(SYSDATE());# 9.获取指定日期中的分 13 SELECT MINUTE(SYSDATE());# 10.获取指定日期中的秒 56 SELECT SECOND(SYSDATE());# 11.获取date1和date2之间相隔的天数 365 SELECT DATEDIFF(SYSDATE(), '-7-27');# 12.获取指定天数后的日期 -08-02 15:15:10 SELECT ADDDATE(SYSDATE(), 6);# 13.当月最后一天 SELECT LAST_DAY(SYSDATE()) AS '本月最后1天日期'; # -07-31# 14.格式化日期格式 SELECT DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p'),# Jul 27 03:06 PMDATE_FORMAT(NOW(),'%m-%d-%Y'), # 07-27-DATE_FORMAT(NOW(),'%d %b %y'); # 27 Jul 22

Date

Time

TimeStamp

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。