首先给出两张表用于之后的举例:
STUNO | STUNAME | GRADEID |
---|
1001 | 张三 | 1 |
1002 | 李四 | 2 |
1003 | 王五 | 3 |
1004 | 西楚霸王 | 1000 |
GRADEID | GRADE |
---|
1 | 一年级 |
2 | 二年级 |
3 | 三年级 |
4 | 四年级 |
内联接
显示结果为符合条件的多个表间的交集。例:
Select * from grade g, student s where s.gradeId=g.gradeId;
GRADEID | GRADE | STUNO | STUNAME | GRADEID |
---|
1 | 一年级 | 1001 | 张三 | 1 |
2 | 二年级 | 1002 | 李四 | 2 |
3 | 三年级 | 1003 | 王五 | 3 |
左外联接
显示结果为左边表的全部及与左边表项相对应的右边表中符合条件的项,当右边表中不存在符合条件的项时,显示NULL。例:
Select * from grade g left outer join student s on s.gradeId=g.gradeId;
GRADEID | GRADE | STUNO | STUNAME | GRADEID |
---|
1 | 一年级 | 1001 | 张三 | 1 |
2 | 二年级 | 1002 | 李四 | 2 |
3 | 三年级 | 1003 | 王五 | 3 |
4 | 四年级 | | | |
右外联接
与左外联接相反。显示结果为右边表的全部及与右边表项相对应的左边表中符合条件的项,当左边表中不存在符合条件的项时,显示NULL。例:
Select * from grade g right outer join student s on s.gradeId=g.gradeId;
GRADEID | GRADE | STUNO | STUNAME | GRADEID |
---|
1 | 一年级 | 1001 | 张三 | 1 |
2 | 二年级 | 1002 | 李四 | 2 |
3 | 三年级 | 1003 | 王五 | 3 |
| | 1004 | 西楚霸王 | 1000 |
全联接
显示结果为两张表全部符合条件的项,当某一边的表中不存在符合条件的项时,显示NULL。例:
Select * from grade g full join student s on s.gradeId=g.gradeId;
GRADEID | GRADE | STUNO | STUNAME | GRADEID |
---|
1 | 一年级 | 1001 | 张三 | 1 |
2 | 二年级 | 1002 | 李四 | 2 |
3 | 三年级 | 1003 | 王五 | 3 |
| | 1004 | 西楚霸王 | 1000 |
4 | 四年级 | | | |