SQL必知必会(二)——数据连接查询

1.内连接
在连接条件(WHERE子句或者ON子句)中使用等于号(=)运算符比较被连接列的列值

SELECT *
FROM book AS a,stu AS b
WHERE a.sutid = b.stuid
SELECT *
FROM book AS  a
INNER JOIN stu AS b
ON a.sutid = b.stuid

2.外连接
包括 左外链接,右外连接,全外连接
左外链接:是以左表为基准,将a.stuid = b.stuid的数据进行连接,然后将左表没有的对应项显示,右表的列为NULL

SELECT * FROM book AS  a LEFT JOIN stu AS  b ON a.sutid = b.stuid

右外连接:是以右表为基准,将a.stuid = b.stuid的数据进行连接,然以将右表没有的对应项显示,左表的列为NULL

SELECT * FROM book AS  a RIGHT JOIN stu AS  b ON a.sutid = b.stuid

全外连接:返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

SELECT * FROM book AS a full OUTER JOIN stu AS b ON a.sutid = b.stuid

3.交叉连接
交叉连接:交叉联接返回左表中的所有行,左表中的每一行与右表中的所有行组合。交叉联接也称作笛卡尔积

SELECT * FROM book AS  a CROSS JOIN stu AS  b

4.子查询
多个有联系的表进行嵌套,有两个用处:
(1)利用子查询进行过滤
首先,查找条件1;其次,使用条件1,对数据进行再次过滤。使用关键字IN

SELECT *
FROM table2
WHERE value IN (SELECT * FROM table1 WHERE cond1)

(2)利用子查询作为计算字段

SELECT value1,value2, (SELECT *
                       FROM table2
                       WHERE cond2)
FROM table1
WHERE cond1

你可能感兴趣的:(SQL必知必会(二)——数据连接查询)