连接查询是关系数据中最主要的查询,可以对两个或多个表进行查询。
连接的类型:
内部连接:使用类似于“=,>,<”的符号连接
外部连接:只能限制一个表
左外连接:对连接左边的表不加限制
右外连接:对连接右边的表不加限制
全外连接:两个表都不加限制
交叉连接:对两个表就行笛卡尔集运算,形成新的结果表,结果表的行数等于两个表行数的乘积
重点来了
一、连接查询的实现
1.使用FROM子句和WHERE子句实现多表查询
(1).使用FROM子句直接实现表的连接
SELECT [student].s_id,[Student].s_name,[Grade].c_grade FROM [Student],[Grade] ORDER BY [Student].s_id
(2).使用WHERE子句实现条件连接
SELECT [student].s_id,[Student].s_name,[Grade].c_grade FROM [Student],[Grade] WHERE [Student].s_id = [Grade].s_id
(3).使用WHERE子句实现自身连接
SELECT g.* FROM [Student] s ,[Grade] g WHERE s.s_name = '张三' AND s.s_id = g.s_id
2.使用JOIN关键字实现多表查询
(1).使用[INSERT]JOIN实现内部连接查询
SELECT [Student].s_id,[Student].s_name,[Grade].c_grade
FROM [Student] INNER JOIN [Grade]
ON [Student].s_id = [Grade].s_id
(2).使用LEFT[OUTER]JOIN实现左外部连接查询
SELECT [Student].s_id,s_name,c_grade
FROM [Student] LEFT OUTER JOIN [Grade]
ON [Student].s_id = [Grade].s_id
(3).使用RIGHT[OUTER]JOIN实现右外部连接查询
SELECT [Grade].c_id,[Grade].s_id,c_grade
FROM [Student] RIGHT OUTER JOIN [Grade]
ON [Student].s_id = [Grade].s_id
(4).使用FULL[OUTER]JOIN实现全外部连接查询
(5).使用CROSS JOIN实现交叉连接查询