1.链接查询
1.1内连接查询
隐式内连接
SELECT 字段列表 FROM 表1,表2 WHERE 条件...;
显式内连接
SELECT 字段列表 FROM 表1 [INNER] JOIN 表2 ON 链接条件...;
1.2外连接查询
左外连接查询
SELECT 字段列表 FROM 表1 LEFT [OUTER] JOIN 表2 ON 条件...;
右外连接查询
SELECT 字段列表 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 条件...;
注意
左外链接查询会包含表1中的全部数据,右外连接会包含表2的全部数据
1.3自链接查询
SELECT 字段列表 FROM 表A 别名A JOIN 表B 别名B ON 条件...;
注意
自链接查询可以是内链接也可以是外链接,语法和之前一样
2.联合查询
SELECT 字段列表 FROM 表A...
UNION [ALL]
SELECT 字段列表 FROM 表B...;
注意
·对于联合查询的多张表的列数和字段类型必须一致
·union all会直接将两次查询结果合并,union会对合并之后的结果去重
3.子查询/嵌套查询
SELECT * FROM 表1 WHERE 字段1=(SELECT 字段1 FROM 表2);
等号后的查询即为子查询
3.1标量子查询(子查询结果为单个值)
常用操作符:= <> > >= < <=
3.2列子查询(子查询结果为一列)
常用操作符
3.3行子查询(子查询结果为一行)
常用操作符:= <> IN NOT IN
注意
使用时可以用(字段1,字段2)将两个字段数据变成一个数据
如:SELECT * FROM A WHERE (a,b)=(SELECT a,b FROM B WHERE...);
3.4表子查询(子查询结果为多行多列)
常用操作符:IN