- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验四SELECT语句连接查询.doc
实验四 SELECT语句连接查询
一.实验目的
1. 观察查询结果, 体会SELECT语句实际应用。
2. 要求学生能够在查询分析器中使用SELECT语句进行连接查询。
3.熟练掌握多个表的数据查询、数据排序和数据连接查询的操作方法。
二、实验类型
操作型
三、实验准备
1. 了解简单SELECT语句的用法。
2. 比较熟悉查询分析器中的SQL脚本运行环境。
四、实验指导
同时涉及多个表的查询称为连接查询用来连接两个表的条件称为连接条件或连接谓词。
一般格式:
[表名1.]列名1 比较运算符 [表名2.]列名2
比较运算符:=、、、=、=、!=
[表名1.]列名1 BETWEEN [表名2.]列名2 AND [表名2.]列名3
连接字段
连接谓词中的列名称为连接字段
连接条件中的各连接字段类型必须是可比的,但不必是相同的
两表连接
不带连接谓词的连接
很少使用
例1:查看全体学生选修课程的情况。
SELECT 学生.学号 ,学生.姓名,课程.课程编号,
课程.课程名,课程.学时,课程.学分,课程.学期,
课程.教师编号
FROM 学生,课程
ORDER BY 学生.学号 asc;
等值与非等值连接查询
等值连接、自然连接、非等值连接
等值连接
连接运算符为 = 的连接操作
[表名1.]列名1 = [表名2.]列名2
任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以加也可以省略表名前缀。
自然连接
等值连接的一种特殊情况,把目标列中重复的属性列去掉。
例2 :查询每个学生及其选修课程的情况。
SELECT 学生.学号,姓名,性别,出生日期,籍贯,班级编号,课程编号,成绩
FROM 学生,成绩
WHERE 学生.学号 = 成绩.学号;
非等值连接查询
连接运算符 不是 = 的连接操作
[表名1.]列名1比较运算符[表名2.]列名2
比较运算符:、、=、=、!=
[表名1.]列名1 BETWEEN [表名2.]列名2 AND [表名2.]列名3
自身连接
一个表与其自己进行连接,称为表的自身连接
需要给表起别名以示区别
由于所有属性名都是同名属性,因此必须使用别名前缀
例3:查看和“王雪”籍贯相同的学生情况。
SELECT SECOND.学号, SECOND.姓名,
SECOND.性别, SECOND.籍贯
FROM 学生 FIRST,学生 SECOND
WHERE FIRST.姓名=‘王雪’ and FIRST.籍贯 = SECOND.籍贯;
外连接(Outer Join)
外连接与普通连接的区别
普通连接操作只输出满足连接条件的元组
外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出
格式:
LEFT (OUTER) JOIN:显示符合条件的数据行以及左边表中不符合条件的数据行,此时右边数据行会以NULL来显示,此称为左外连接;
RIGHT (OUTER) JOIN:显示符合条件的数据行以及右边表中不符合条件的数据行,此时左边数据行会以NULL来显示,此称为右外连接;
FULL (OUTER) JOIN:显示符合条件的数据行以及左边表和右边表中不符合条件的数据行,此时缺乏数据的数据行会以NULL来显示;
当将JOIN 关键词放于FROM子句中时,应有关键词ON与之相对应,以表明连接的条件。
左外连接:LEFT[OUTER] JOIN
将左表的所有记录分别与右表的每一条记录进行连接组合,结果集中除显示符合条件的数据行以外,还显示左边表中不符合条件的数据行,此时右边数据行会以NULL来显示。
例4: 查询每个学生及其选修课程的情况包括没有选修课程的学生
SELECT 学生.学号,姓名,性别,出生日期,籍贯,
课程编号,成绩
FROM 学生
right outer join 成绩 on 学生.学号=成绩.学号;
右外连接: RIGHT [OUTER] JOIN
将右表的所有记录分别与左表的每一条记录进行连接组合,结果集中除显示符合条件的数据行以外,还要显示右边表中不符合条件的数据行,此时左边数据行会以NULL来显示。
全外连接:FULL[OUTER] JOIN
显示符合条件的数据行以及左边表和右边表中不符合条件的数据行,此时缺乏数据的数据行会以NULL来显示。
复合条件连接
当查询中涉及多个条件(连接条件、查询条件)时,称为复合条件连接
WHERE子句中含多个连接条件
例5:查询选修”02-01“号课程且成绩在90分以上的所有学生的学号、姓名、成绩
SELECT 学生.学号, 学生.姓名F
文档评论(0)