(二)连接查询

TA表:

TB表:

1.多表内连接查询

语法:

FROM 表1 INNER JOIN 表2 on 关联条件

特点:

保留两表中满足关联条件的所有记录

需求:查询学生的学号、姓名、成绩

select * from ta  inner join tb on ta.tid = tb.tid

旧表名 新表名:为给表重命名,此处省略as

2.左外连接查询

表1 LEFT JOIN 表2 on 关联条件

特点:

不但保留两表中满足关联条件的所有记录,并且补全左表(join 之后的永远为右表,另外一张为左表)

需求:查询学生的学号、姓名、成绩,如果没有成绩成绩的学生也要列出

select * from ta  left join tb on ta.tid = tb.tid

3.右外连接查询

表1 RIGHT JOIN 表2 on 关联条件

特点:

保留两表中满足关联条件的所有记录,并且补全右表

需求:查询学生的学号、姓名、成绩,如果没有姓名的也要列出

select * from ta  right join tb on ta.tid = tb.tid

4.全连接查询

表1 FULL JOIN 表2 on 关联条件

特点:

保留两表中满足关联条件的所有记录,并且分别补全左右表

需求:查询学生的学号、姓名、成绩,不论有没有成绩和姓名都要列出

select * from ta  full join tb on ta.tid = tb.tid

5.笛卡尔积

表1 INNER JOIN 表2

特点:

将表1的所有记录都去关联一遍表2的所有记录,即没有关联条件,列出两表可能出现的所有排列组合,慎用!!

需求:查询学生的学号、姓名、成绩,列出所有可能出现的组合

select * from ta  cross join tb 
作者:郭佳豪  创建时间:2023-10-18 09:52
最后编辑:郭佳豪  更新时间:2023-10-18 17:30