[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 学生信息.班级=班主任.班级


浙公网安备 33010602011771号