文章目录
🌅前言
这一节继续介绍MySQL中的DQL(数据查询语言),内容主要包括数据查询语言之分组查询、连接查询、子查询、分页查询、union联合查询等内容。
😎分组查询
- 语法
- 特点
数据源 | 位置 | 关键字 | |
---|---|---|---|
分组前筛选 | 原始表 | group by 子句的前面 | where |
分组后筛选 | 分组后的结果集 | group by子句的后面 | having |
😊连接查询
- 含义
-
分类
按年代分类:
sql92:
等值
非等值
自连接
也支持一部分外连接(用于oracle、sqlserver、mysql不支持)
sql99【推荐使用】
内连接
等值
非等值
自连接
外连接
左外
右外
全外(mysql不支持)
交叉连接 -
SQL92语法
- 等值连接
- 非等值连接
- 自连接
- SQL99语法
- 内连接
- 外连接
应用场景:用于查询一个表中有,另一个表没有的记录
- 交叉连接
😜子查询
1、含义
嵌套在其他语句内部的select语句称为子查询或内查询,
外面的语句可以是insert 、update、delete、select等,一般select作为外面语句较多
外面如果为select语句,则此语句称为外查询或主查询
2、分类
- 按子查询出现的位置:
- select后面:仅仅支持标量子查询
- from后面:支持表子查询
- where或having后面:支持标量子查询、列子查询、行子查询
特点:
支持类型
①标量子查询
②列子查询(多行子查询)
-返回多行
-使用多行比较操作符
操作符 | 含义 |
---|---|
IN/NOT IN | 等于列表中的任意一个 |
ANY/SOME | 和子查询返回的某一个值比较 |
ALL | 和子查询返回的所有值比较 |
③行子查询(结果集一行多列或多行多列):用的少
- exists后面(相关子查询):支持标量子查询、列子查询、行子查询、表子查询
- 按结果集的行列数不同:
- 标量子查询(结果集只有一行一列)
- 列子查询(结果集只有一列多行)
- 行子查询(结果集有一行多列)
- 表子查询(结果集一般为多行多列)
😋分页查询
- 语法
这里offset要显示条目的起始索引(起始索引从0开始)
size要显示的条目个数
- 应用场景
- 特点
🤣union联合查询
union 联合 合并:将多条查询语句的结果合并成一个结果
- 语法
- 应用场景
- 特点
🌄总结
以上就是今天要讲的内容,这节将MySQL中的数据查询语言类型基本介绍完毕,下一节将继续介绍MySQL中的数据操作语言。