文档介绍:数据查询
单表查询
连接查询
嵌套查询
集合查询
Select语句的一般形式
连接查询
连接查询:同时涉及多个表的查询
连接条件或连接谓词:用来连接两个表的条件
[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>
[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>
连接字段:连接谓词中的列名称
连接条件中的各连接字段类型必须是可比的,但名字不必是相同的
连接操作的执行过程
如:将student表与sc表连接
连接查询
一、等值与非等值连接查询
二、自身连接
三、外连接
四、复合条件连接
返回主菜单
一、等值与非等值连接查询
等值连接:连接运算符为=
[例33] 查询每个学生及其选修课程的情况
SELECT Student.*,SC.*
FROM Student,SC
WHERE = ;
等值与非等值连接查询(续)
Sname
Ssex
Sage
Sdept
Cno
Grade
200215121
李勇
男
20
CS
200215121
1
92
200215121
李勇
男
20
CS
200215121
2
85
200215122
刘晨
女
19
CS
200215122
3
80
Sname
Ssex
Sage
Sdept
200215121
李勇
男
20
CS
200215122
刘晨
女
19
CS
200205123
王敏
女
18
MA
200205125
张立
男
19
IS
查询结果:
Cno
Grade
200215121
1
92
200215121
2
85
200215122
3
80
等值与非等值连接查询(续)
自然连接:
[例34] 对[例33]用自然连接完成。
SELECT ,Sname,Ssex,Sage,o,Grade
FROM Student,SC
WHERE = ;
返回菜单
二、自身连接
自身连接:一个表与其自己进行连接
需要给表起别名以示区别
由于所有属性名都是同名属性,因此必须使用别名前缀
[例35]查询每一门课的间接先修课(即先修课的先修课)
SELECT o,
FROM Course FIRST,Course SECOND
WHERE = o;
自身连接(续)
FIRST表(Course表)
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
自身连接(续)
Cno
Cname
Cpno
Ccredit
1
数据库
5
4
2
数学
2
3
信息系统
1
4
4
操作系统
6
3
5
数据结构
7
4
6
数据处理
2
7
PASCAL语言
6
4
SECOND表(Course表)
自身连接(续)
查询结果:
Cno
Pcno
1
7
3
5
5
6
返回菜单