数据库之连接

MySQL中多表查询只提供了内连接,左外连接与右外连接
内连接INNER JOIN ON
外连接
在左外连接和右外连接时都会以一张表为基表,该表的内容会全部显示,然后加上两张表匹配的内容。如果基表的数据在另一张表没有记录。那么在相关联的结果集行中列显示为空值(NULL)。
左外连接=左表全部记录+相关联结果
右外连接=右表全部记录+相关联结果
全外连接=左表全部记录+右表全部记录+相关联结果=左外连接+右外连接-相关联结果(即去重复

我所建的表

1.左外连接(显示左表的全部记录)

(1)SQL语句

1
2
3
SELECT student.*,choice.*
FROM student LEFT OUTER JOIN choice
on student.S_no=choice.S_no;

(2)运行结果
左外连接

2.右外连接(显示右表的全部记录)

(1)SQL语句

1
2
3
SELECT student.*,choice.*
FROM student RIGHT OUTER JOIN choice
ON student.S_no=choice.S_no;

(2)运行结果
右外连接

3.全外连接(union)

(1)SQL语句

1
2
3
4
5
6
7
SELECT student.*,choice.*
FROM student LEFT OUTER JOIN choice
ON student.S_no=choice.S_no;
UNION
SELECT student.*,choice.*
FROM student RIGHT OUTER JOIN choice
ON student.S_no=choice.S_no;

(2)运行结果
全外连接