MySQL 查询
连接查询
在数据库中join操作被称为连接,作用是能连接多个表的数据(通过连接条件),从多个表中获取数据合并在一起作为结果集返回给客户端。
交叉连接
交叉连接:将两张表的数据与另外一张表彼此交叉
1 | select * from 表1 cross join 表2 |
内连接
1 | 方式一: |
外连接
左连接
左连接基础语法是 a left outer join b
,其中的 outer
可以省略,与内连接相比就是在与内连接相
同条件下,在内连接的结果集中添加a
表在b
表中找不到匹配的记录,换句话说就是,结果集中会包含a
表中的所有记录,如果b
表中有匹配的记录就出现在结果集,否则使用 NULL
代替,也就是把a
表看成根本,不可缺失记录。
1 | select * from 表1 |
右连接
右外连接基础语法是 a right outer join b
,其中的 outer
可以省略,与内连接相比就是在与内连
接相同条件下,在内连接的结果集中添加b表在a表中找不到匹配的记录,换句话说就是,结果集中会包含b表中的所有记录,如果a表中有匹配的记录就出现在结果集,否则使用 NULL 代替,也就是把b表看成根本,不可缺失记录,作用与左外连接恰好相反。
1 | select * from 表1 |
自连接
自连接就是表与它自身相关联,进行自连接时通过给表起不同的别名来区分一个表的两个实例。
1 | select 表.字段1,表.字段2,表.字段3 |
子查询
子查询指嵌套在查询内部,且必须始终出现在圆括号。子查询可以包含多个关键字或条件,如
DISTINCT
、GROUP BY
、ORDER BY
、LIMIT
、函数
等。
子查询的外层查询可以是:SELECT
,INSERT
,UPDATE
,SET或DO
。
子查询可以返回标量,一行,一列或子查询。
将子查询作为派生表
1 | select * from 表1 where 字段1 = (select 字段2 from 表2); |
把子查询用在where子句中
1 | eg: |
在from语句中使用子查询
1 | eg: |
集合操作(UNION)
union 作用:合并查询结果集
1 | Eg: |
limit
1 | limit 起始下标,长度 |
通用的分页SQL(只适用于mysql数据库管理系统)
1 | select t.* from t |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 H52E5!
评论