[SQL]连接查询

在数据库中创建三个表:

  • 学生信息表:
学号 姓名 地址 性别 班级
1 张一一 安徽省 1
2 刘二二 福建省 2
3 王三三 河南省 3
4 肖四四 北京市 4
5 彭五五 新疆省 5
  • 学生成绩表:
学号 科目 成绩
1 数学 100
1 语文 100
2 数学 99
2 语文 99
3 数学 98
3 语文 98
4 数学 97
4 语文 97
  • 班主任:
姓名 班级
刘班主 1
王班主 2
任班主 3
张班主 4
李班主 5

等值连接

select 学生信息.学号, 姓名, 成绩
from 学生信息, 学生成绩
where 学生信息.学号 = 学生成绩.学号

连接结果:

自身连接

select * 
from 学生信息 t1, 学生信息 t2 -- 重命名表
where t1.学号 = t2.学号

运行结果:

外连接

在查询结果中保留那些不满足连接条件的元组,其他属性上填空值。、

如果只把左边的基本表中要舍弃的元组保留就叫做左外连接,反之叫做右外连接。

select * 
from 学生信息
left outer join 学生成绩 on 学生信息.学号 = 学生成绩.学号 -- 左外连接

运行结果:

复合连接条件

select * 
from 学生信息, 学生成绩, 班主任
where 学生信息.学号=学生成绩.学号 and 学生信息.班级=班主任.班级

原文地址:https://www.cnblogs.com/xxmmqg/p/13738203.html