博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL自学2018/03/30-DML语句
阅读量:6891 次
发布时间:2019-06-27

本文共 2997 字,大约阅读时间需要 9 分钟。

二、DML语句

1.插入内容

1 insert into emp (ename,hiredate,sal,deptno)values('zzx1','2000-01-01','2000','1');   --可以一次插入多条记录,用逗号分隔2 insert into emp values('lisa','2003-02-01','3000','2');   --不指定字段名称,但values后面的顺序应与sql一样
View Code

2.查看表中值

1 select*from emp;  --查看表中所有值,*代表所有列2 select ename,sal from emp;  --仅查看ename,sal两个字段的内容3 select distinct ename from emp;  --查看ename字段去重后的内容,ename可替换4 select * from emp where deptno = '1';  --条件查询,运算符:<,>,<=,>=,!=,or,and等,5 select * from emp where deptno = '1' and sal > '3000';  --多条件运算6 select * from emp where deptno = '1' order by sal desc;  --查询后排序,desc=降序,asc=升序7 --limit 在其他数据库中可能不通用8 select * from emp order by sal limit 3;  --limit:显示限制条件,显示前三条内容9 select * from emp order by sal limit 1,3  --显示从第二条开始的前三条记录
View Code

3.更新表中内容

1 update emp set sal=4000 where ename='lisa';  --把Lisa的薪水改成4000,where的限制条件一定要加2 update emp a,dept b set a.sal=a.sal*b.deptno,b.deptname=a.ename where a.deptno=b.deptno;  --一次修改多个表中内容,更多用在根据一个表的字段动态的更新另外一个表的字段
View Code

4.删除表中内容

1 delete from emp where ename='dony';2 delete a,b from emp a,dept b where a.deptno=b.deptno and a.deptno=3;  --同时删除多个表的内容3 --不加where会删除整个表的内容!!!
View Code

5.聚合语句

1 /* 2 select[field1,...,fieldn]fun_name FROM tableneme [WHERE where_contition][GROUP BY field1,...,fieldn] [WITH ROOLLUP] [HAVING where_contition] 3   4 fun_name:表示要做的聚合操作,常见的有sum,count(*),max,min 5 GROUP BY:表示对应分类聚合的字段 6 WITH ROLLUP:是否对分类聚合后的结果再进行汇总 7 HAVING:表示对分类后的结果在进行条件过滤 8 */ 9 10 select count(1) from emp;  --统计公司的总人数11 select deptno,count(1) from emp group by deptno;  --统计各个部门的人数12 select deptno,count(1) from emp group by deptno with rollup;  --统计各个部门人数并统计总人数13 select deptno,count(1) from emp group by deptno with rollup having count(1)>1;  --统计人数大于1的部门14 select sum(sal),max(sal),min(sal) from emp;  --统计薪水总额,最高和最低薪水
View Code

6.表连接

1 /*2 内连接:仅选出两张表中互相匹配的记录3 外连接:对比内连接,还会选出其他不匹配的记录4     左连接:包含所有左边表中的记录甚至是右边表中没有和它匹配的记录5     右连接:包含所有右边表中的记录甚至是左边表中没有和它匹配的记录6 */7 select ename,deptname from emp,dept where emp.deptno = dept.deptno;  --查询雇员名称和对应部门,名字和部门名分别存放在emp和dept中8 select ename,deptname from emp left join dept on emp.deptno = dept.deptno;  --左连接:查询雇员名称和对应部门,即使有的用户没有合法的部门名也会显示9 select ename,deptname from dept right join emp on dept.deptno = emp.deptno;  --右连接:功能与上条语句相同
View Code

7.子查询

1 /*2 子查询关键字:in、not in、=、!=、exists、not exists等3 */4 select * from emp where deptno in (select deptno from dept);  --从emp表中查询出所有部门在dept表中的记录5 select * from emp where deptno = (select deptno from dept limit 1);  --‘=’时子查询记录数只能唯一6 select emp.* from emp , dept where emp.deptno = dept.deptno;  --转换为表连接的写法
View Code

8.记录联合

1 /* 2 SELECT * FROM t1 3 UNION|UNION ALL 4 SELECT * FROM t2 5 ... 6 UNION|UNION ALL 7 SELECT * FROM tn; 8 UNION ALL:把结果集直接合并在一起 9 UNION:将UNION ALL后的结果进行一次DISTINCT,去除重复记录后的结果。10 */11 select deptno from emp12 union all13 select deptno from dept;  --将emp和dept表中的部门编号的集合显示出来14 select deptno from emp15 union16 select deptno from dept;  --将emp和dept表中的部门编号的集合去重后显示出来
View Code

 

转载于:https://www.cnblogs.com/haitun425/p/8677272.html

你可能感兴趣的文章
配置和创建一个hibernate简单应用
查看>>
c++文件流
查看>>
RAD Studio XE2/XE3 官方 ISO 下载地址 (2012-09-05更新)
查看>>
神奇的代码系列(持续更新)
查看>>
Redis的三种启动方式
查看>>
python基础----面向对象进阶,isinstance,issubclass,反射,内置attr,定制自己的数据类型...
查看>>
使用git error: RPC failed; result=22, HTTP code = 411
查看>>
C++ MessageBox()
查看>>
Mac下PyCharm快捷键大全
查看>>
【计算几何初步-凸包-Graham扫描法-极角序】【HDU1348】 WALL
查看>>
5.运算符
查看>>
@vue/cl构建得项目下,postcss.config.js配置,将px转化成rem
查看>>
搭建gitlab本地服务
查看>>
day02
查看>>
SpringBoot慕课学习-SpringBoot开发常用技术整合-资源文件属性配置
查看>>
VS2013支持多字节的方法
查看>>
Java设计模式 - 观察者模式
查看>>
oracle 完整性约束的禁用启用以及对表的影响,表的修改和复制
查看>>
Java集合List、Set、Map
查看>>
jquery抽奖插件+概率计算
查看>>