mysql主要语句

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.youkuaiyun.com/qq_33393542/article/details/79656426

SQL分类

SQL 主要语句可以划分为一下3类

  • DDL:数据定义语言,这些语句定义不同的数据段、数据库、表、列、索引等数据库对象。常用语句关键字主要包括create,drop,alter等
  • DML:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用语句关键字主要包括 insert,delete,update和select等。
  • DCL数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要 的语句包括关键字grant、revoke等

DDL语句

是对数据库内部的数据表结构的进行添加 、删除、修改等操作语言,它和DML语句最大的区别是DML只是对表内部数据操作,而不涉及表的定义、结构的修改,更不会涉及其他对象。DDL更多地由数据库管理员(DBA)使用。


    
  1. 连接mysql服务器
  2. mysql -uroot -p
  3. 创建数据库test1
  4. create database test1;
  5. 显示有哪些数据库
  6. show databases;
  7. //mysql 自动创建的表有
  8. information_schema:主要存储了系统中的一些数据库信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等等
  9. cluster:存储了系统的集群信息
  10. mysql:存储了系统的用户权限信息。
  11. test:系统自动创建的测试数据库,任何用户都可以访问
  12. 选择数据库
  13. use test1
  14. 显示test1数据库中创建的所有表
  15. show tables
  16. 删除数据库
  17. drop database test1;
  18. 创建表
  19. create table emp(ename varchar( 10),hiredata date,sal decimal( 10, 2),deptno int( 2));
  20. 查看表定义
  21. desc emp;
  22. 查看创建表的定义
  23. show create table emp;
  24. 删除表
  25. drop table emp;
  26. 修改表
  27. alter table emp modify ename varchar( 20);
  28. 增加表字段
  29. alter table emp add column age int( 3);
  30. 删除表字段
  31. alter table emp drop column age;
  32. 字段改名
  33. alter table emp change age age1 int( 4);
  34. changemodify都可以修改表的定义,不同的是 change后面需要写两次列名,不方便,但是 change的优点是可以修改列名称,则 modify则不能
  35. 修改字段排序
  36. alter table emp add birth date after ename;
  37. alter table emp modify age int( 3) first;
  38. 更改表名
  39. alter table emp rename emp1;

DML语句 
是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)。

    
  1. 插入记录
  2. insert into emp(ename,hiredate,sal,deptno)values('zzx1','2000-01-01','2000',1);
  3. 也可以不用指定字段名称,但是values后面的顺序要和字段的排列顺序一致
  4. inset into emp('zzx1','2000-01-01','2000',1);
  5. 含可空字段、非空但是含有默认值的字段、自增字段、可以不用再insert后的字段列表里面出现,values后面只写对应字段名称的 value,没写的字段可以自动设置为 null、默认值、自增的下一个数字
  6. 批量增加用逗号隔开
  7. insert into dept values(5,'xxx'),(8,'xxx');
  8. 更新记录
  9. update emp set sal= 4000 where ename= 'xxx';
  10. 删除记录
  11. delete from emp where ename= 'doney';
  12. 查询记录
  13. select * from emp;
  14. *表示所有记录,也可以用逗号隔开的字段来选择查询
  15. 查询不重复的记录
  16. select distinct deptno from emp;
  17. 条件查询
  18. where关键字来实现,可以使用<>!=等多条件可以使用or、and等
  19. 排序和限制
  20. desc和asc是排序关键字,desc是降序、asc是升序排列 ORDER BY 排序,默认是升序
  21. select * from emp order by sal;
  22. 如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序,如果只有一个排序字段,则相同字段将会无序排序
  23. select * from emp order by deptno,sal desc;
  24. 限制
  25. select * from emp order by sal limit 3;
  26. //前者是起始偏移量,后者是显示行数
  27. select * from emp order by sal limit 1, 3;
  28. limit 和order by 一起使用来做分页
  29. 聚合
  30. 用户做一下些汇总操作
  31. sum(求和),count(*)(记录数),max(最大值),min(最小值)
  32. with rollup 是可选语法,表示是否对分类聚合后的结果进行再汇总
  33. having 表示对分类后的结果在进行条件的过滤。
  34. select deptno,count( 1) from emp group by deptno having count(1)>= 1;


表连接

大类上分为外连接和内连接 
外链接 又分为左连接和右连接

左连接:包含所以的左边表中的记录甚至是右边表中没有和它匹配的记录。 
右连接:同上


    
  1. select ename,detname from emp left join dept on emp.deptno=dept.deptno;
  2. 左连接和右连接可以相互转换

子查询

    
  1. select * from emp where deptno in( select deptno from dept);
  2. 如果子查询记录唯一,可以使用=替代in
  3. select * from emp where deptno =( select deptno from dept limit 1);

记录查询 
将两个表的数据按照一定的查询出来后,将结果合在一起显示

union all 是将结果集合并在一起,而union是将union all后的结果在进行一次distinct,去除重复


    
  1. select deptno from emp union all select deptno from dept;
  2. select demtno from emp union select deptno from dept;




版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.youkuaiyun.com/qq_33393542/article/details/79656426

SQL分类

SQL 主要语句可以划分为一下3类

  • DDL:数据定义语言,这些语句定义不同的数据段、数据库、表、列、索引等数据库对象。常用语句关键字主要包括create,drop,alter等
  • DML:数据操作语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性。常用语句关键字主要包括 insert,delete,update和select等。
  • DCL数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要 的语句包括关键字grant、revoke等

DDL语句

是对数据库内部的数据表结构的进行添加 、删除、修改等操作语言,它和DML语句最大的区别是DML只是对表内部数据操作,而不涉及表的定义、结构的修改,更不会涉及其他对象。DDL更多地由数据库管理员(DBA)使用。


    
  1. 连接mysql服务器
  2. mysql -uroot -p
  3. 创建数据库test1
  4. create database test1;
  5. 显示有哪些数据库
  6. show databases;
  7. //mysql 自动创建的表有
  8. information_schema:主要存储了系统中的一些数据库信息,比如用户表信息、列信息、权限信息、字符集信息、分区信息等等
  9. cluster:存储了系统的集群信息
  10. mysql:存储了系统的用户权限信息。
  11. test:系统自动创建的测试数据库,任何用户都可以访问
  12. 选择数据库
  13. use test1
  14. 显示test1数据库中创建的所有表
  15. show tables
  16. 删除数据库
  17. drop database test1;
  18. 创建表
  19. create table emp(ename varchar( 10),hiredata date,sal decimal( 10, 2),deptno int( 2));
  20. 查看表定义
  21. desc emp;
  22. 查看创建表的定义
  23. show create table emp;
  24. 删除表
  25. drop table emp;
  26. 修改表
  27. alter table emp modify ename varchar( 20);
  28. 增加表字段
  29. alter table emp add column age int( 3);
  30. 删除表字段
  31. alter table emp drop column age;
  32. 字段改名
  33. alter table emp change age age1 int( 4);
  34. changemodify都可以修改表的定义,不同的是 change后面需要写两次列名,不方便,但是 change的优点是可以修改列名称,则 modify则不能
  35. 修改字段排序
  36. alter table emp add birth date after ename;
  37. alter table emp modify age int( 3) first;
  38. 更改表名
  39. alter table emp rename emp1;

DML语句 
是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)。

    
  1. 插入记录
  2. insert into emp(ename,hiredate,sal,deptno)values('zzx1','2000-01-01','2000',1);
  3. 也可以不用指定字段名称,但是values后面的顺序要和字段的排列顺序一致
  4. inset into emp('zzx1','2000-01-01','2000',1);
  5. 含可空字段、非空但是含有默认值的字段、自增字段、可以不用再insert后的字段列表里面出现,values后面只写对应字段名称的 value,没写的字段可以自动设置为 null、默认值、自增的下一个数字
  6. 批量增加用逗号隔开
  7. insert into dept values(5,'xxx'),(8,'xxx');
  8. 更新记录
  9. update emp set sal= 4000 where ename= 'xxx';
  10. 删除记录
  11. delete from emp where ename= 'doney';
  12. 查询记录
  13. select * from emp;
  14. *表示所有记录,也可以用逗号隔开的字段来选择查询
  15. 查询不重复的记录
  16. select distinct deptno from emp;
  17. 条件查询
  18. where关键字来实现,可以使用<>!=等多条件可以使用or、and等
  19. 排序和限制
  20. desc和asc是排序关键字,desc是降序、asc是升序排列 ORDER BY 排序,默认是升序
  21. select * from emp order by sal;
  22. 如果排序字段的值一样,则值相同的字段按照第二个排序字段进行排序,如果只有一个排序字段,则相同字段将会无序排序
  23. select * from emp order by deptno,sal desc;
  24. 限制
  25. select * from emp order by sal limit 3;
  26. //前者是起始偏移量,后者是显示行数
  27. select * from emp order by sal limit 1, 3;
  28. limit 和order by 一起使用来做分页
  29. 聚合
  30. 用户做一下些汇总操作
  31. sum(求和),count(*)(记录数),max(最大值),min(最小值)
  32. with rollup 是可选语法,表示是否对分类聚合后的结果进行再汇总
  33. having 表示对分类后的结果在进行条件的过滤。
  34. select deptno,count( 1) from emp group by deptno having count(1)>= 1;


表连接

大类上分为外连接和内连接 
外链接 又分为左连接和右连接

左连接:包含所以的左边表中的记录甚至是右边表中没有和它匹配的记录。 
右连接:同上


    
  1. select ename,detname from emp left join dept on emp.deptno=dept.deptno;
  2. 左连接和右连接可以相互转换

子查询

    
  1. select * from emp where deptno in( select deptno from dept);
  2. 如果子查询记录唯一,可以使用=替代in
  3. select * from emp where deptno =( select deptno from dept limit 1);

记录查询 
将两个表的数据按照一定的查询出来后,将结果合在一起显示

union all 是将结果集合并在一起,而union是将union all后的结果在进行一次distinct,去除重复


    
  1. select deptno from emp union all select deptno from dept;
  2. select demtno from emp union select deptno from dept;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值