-
笛卡尔积查询
有两张表,获取这两个表的所有组合情况
-- 标准语法
SELECT 列名 FROM 表名1,表名2,...;
-
内连接查询
-
查询原理
内连接查询的是两张表有交集的部分数据(有主外键关联的数据)
-
显式内连接
-- 标准语法
SELECT 列名 FROM 表名1 [INNER] JOIN 表名2 ON 条件;
-
隐式内连接
-- 标准语法
SELECT 列名 FROM 表名1,表名2 WHERE 条件;
-
外连接查询
-
左外连接
-
查询原理
-
查询左表的全部数据,和左右两张表有交集部分的数据
-
-- 标准语法
SELECT 列名 FROM 表名1 LEFT [OUTER] JOIN 表名2 ON 条件;
-
右外连接
-
查询原理
-
查询右表的全部数据,和左右两张表有交集部分的数据
-
-- 基本语法
SELECT 列名 FROM 表名1 RIGHT [OUTER] JOIN 表名2 ON 条件;
-
子查询
查询语句中嵌套了查询语句。我们就将嵌套查询称为子查询!
-
子查询-结果是单行单列的
可以作为条件,使用运算符进行判断!
-- 标准语法
SELECT 列名 FROM 表名 WHERE 列名=(SELECT 聚合函数(列名) FROM 表名 [WHERE 条件]);
-
子查询-结果是多行单列的
可以作为条件,使用运算符in或not in进行判断!
-- 标准语法
SELECT 列名 FROM 表名 WHERE 列名 [NOT] IN (SELECT 列名 FROM 表名 [WHERE 条件]);
-
子查询-结果是多行多列的
可以作为一张虚拟表参与查询!
-- 标准语法
SELECT 列名 FROM 表名 [别名],(SELECT 列名 FROM 表名 [WHERE 条件]) [别名] [WHERE 条件];
-
自关联查询
同一张表中有数据关联。可以多次查询这同一个表!