1:基本连接
基本规则:每个目标前必须写明指定表名称
FROM子句包含使用的基表
where子句定义一个同等连接
使用方法:
SELECT A.列1,A.列2,B.列1,A.列3
FROM 表1 A,表2 B
WHERE A.列1=B.列1
2:内连接---等值连接,自动消除不匹配的行
SELECT A.列1,B.列1,B.列2
FROM 表1 A join 表2 B
ON A.列1=B.列1
WHERE 条件 '可加可不加,
3:外连接---返回主表所有行和从表符合条件的行
左外连接 ---左边表为主表,读取所有数据,右表显示匹配行
SELECT A.列1,B.列1,B.列2
FROM 表1 A LEFT OUTER join 表2 B
ON A.列1=B.列1
右外连接 ---右边表作为主表,读取所有数据.左表显示匹配行
SELECT A.列1,B.列1,B.列2
FROM 表1 A RIGHT OUTER join 表2 B
ON A.列1=B.列1
全连接 ---读取所有的值,那个表在前面那个的数据就排在前面.
SELECT A.列1,B.列1,B.列2
FROM 表1 A FULL OUTER join 表2 B
ON A.列1=B.列1
4:交叉连接
1:不带WHERE 子句,返回的结果是两个表所有的数据行的笛卡尔积(所有可能的情况)
SELECT A.列1,B.列1,B.列2
FROM 表1 A CROSS join 表2 B
5:自连接
对一个表进行连接,需要将表虚拟化
SELECT A.班级名,A.班级人数,B.班级名
FROM 表1 A ,表1 B
WHERE A.班级人数=B.班级人数
这样可以查表1里面,班级人数相同的数据。
6:联合查询
将多个查询合并到一个结果集中。
SELECT 语句
UNION ALL ---ALL显示所有,不加的话,相同的就省略了。
SELECT 语句
7:使用子查询`嵌套子查询
在WHERE子句后面套用另外一个SQL语句作为限定条件.
8:交查询INTERSECT ---查询的列相同
SELECT查询1
INTERSECT
SELECT查询2
9:差查询 ---查询的列相同
SELECT查询1
EXCEPT
SELECT查询2