- DQL:数据查询语言
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享
,用来查询数据库中表的记录
- DCL:数据控制语言,用来定义数据库的访问权限和安全级别,及创建用户
2.简单的增删改
-
增:insert into 表名 values()
-
删:delete from 表名 where 条件
-
改:update 表名 set 数据 where 条件
3.查询
-
基础查询:select * from 表名
-
条件查询:select * from 表名 where 条件
-
模糊查询:select * from 表名 where 条件 like ‘通配符’
-
去重查询:select distinct 字段 from 表名
-
排序查询:select * from 表名 order by 列名 asc(默认) desc
4.聚合函数
-
count():统计指定列不为null的记录行数;
-
max() :计算指定列的最大值,如果是字符串类型,那么使用字符串排序运算;
-
min() :计算指定列的最小值,如果是字符串类型,那么使用字符串排序运算;
-
sum() :计算指定列的数值和,如果列类型不是数值类型,那么计算结果为 0;
-
AVG() :计算指定列的平均值,如果列类型不是数值类型,那么计算结果为 0;
5.分组查询
注:凡和聚合函数同时出现的列名,一定要写在 groupby 之后
select 字段 from 表名 GROUP BY 要分组的字段
- having 与 where 的区别:
1.having 是在分组后对数据进行过滤. where 是在分组前对数据进行过滤
2.having 后面可以使用聚合函数(统计函数) where 后面不可以使用聚合函数
注:WHERE 是对分组前记录的条件,如果某行记录没有满足 WHERE 子句的条件,那么这 行记录不会参加分组;而 HAVING 是对分组后数据的约束。
6.分页limit
select * from 表名 limit 起始行,行数
-
查询语句书写顺序:select–from-where-group by-having-order by-limit
-
查询语句执行顺序:from-where-group by-having-select-order by-limit
7.多表查询
(一)合并结果集:
-
UNION:去除重复记录,例如:SELECT * FROM t1 UNION SELECT * FROM t2;
-
UNIONALL:不去除重复记录,例如:SELECT * FROMt1 UNIONALL SELECT * FROM t2。
-
注:要求被合并的两个结果:列数、列类型必须相同。
(二)内连接
-
内连接的特点:查询结果必须满足条件。
-
例:SELECT* FROM emp e INNER JOIN dept d ON e.deptno=d.deptno;
(三)外连接
- 外连接的特点:查询出的结果存在不满足条件的可能。
a:左查询
-
左连接是先查询出左表(即以左表为主),然后查询右表,右表中满足条件的显示出来, 不满足条件的显示 NULL。
-
例:SELECT * FROM emp e LEFT OUTER JOIN dept d ON e.deptno=d.deptno;
b:右查询
- 右连接就是先把右表中所有记录都查询出来,然后左表满足条件的显示,不满足显示 NULL。