文档介绍:数据库系统概论
An Introduction to Database System
第三章关系数据库标准语言SQL (续1)
查询家庭住址“海淀区”的同学的姓名和家庭住址
SELECT 姓名,籍贯
FROM [education].[dbo].[学生]
WHERE 家庭住址=’海淀区’
’
查询学号前两位是“05”的学生的姓名和系号
SELECT 姓名,系号
FROM [education].[dbo].[学生]
WHERE 学号 LIKE ’05_’
An Introduction to Database System
查询家庭住址“海淀区”的同学的姓名和家庭住址
SELECT 姓名,籍贯
FROM [education].[dbo].[学生]
WHERE 家庭住址=’%海淀区%’
’
查询学号前两位是“05”的学生的姓名和系号
SELECT 姓名,系号
FROM [education].[dbo].[学生]
WHERE 学号 LIKE ’05%’
An Introduction to Database System
An Introduction to Database System
数据查询
单表查询
连接查询
嵌套查询
集合查询
Select语句的一般形式
An Introduction to Database System
连接查询
连接查询:同时涉及多个表的查询
连接条件或连接谓词:用来连接两个表的条件
一般格式:
[<表名1>.]<列名1> <比较运算符> [<表名2>.]<列名2>
[<表名1>.]<列名1> BETWEEN [<表名2>.]<列名2> AND [<表名2>.]<列名3>
连接字段:连接谓词中的列名称
连接条件中的各连接字段类型必须是可比的,但名字不必是相同的
An Introduction to Database System
连接操作的执行过程
嵌套循环法(NESTED-LOOP)
首先在表1中找到第一个元组,然后从头开始扫描表2,逐一查找满足连接件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。
表2全部查找完后,再找表1中第二个元组,然后再从头开始扫描表2,逐一查找满足连接条件的元组,找到后就将表1中的第二个元组与该元组拼接起来,形成结果表中一个元组。
重复上述操作,直到表1中的全部元组都处理完毕
An Introduction to Database System
排序合并法(SORT-MERGE)
常用于=连接
首先按连接属性对表1和表2排序
对表1的第一个元组,从头开始扫描表2,顺序查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。当遇到表2中第一条大于表1连接字段值的元组时,对表2的查询不再继续
An Introduction to Database System
排序合并法
找到表1的第二条元组,然后从刚才的中断点处继续顺序扫描表2,查找满足连接条件的元组,找到后就将表1中的第一个元组与该元组拼接起来,形成结果表中一个元组。直接遇到表2中大于表1连接字段值的元组时,对表2的查询不再继续
重复上述操作,直到表1或表2中的全部元组都处理完毕为止