第六讲多表查询_第1页
第六讲多表查询_第2页
第六讲多表查询_第3页
第六讲多表查询_第4页
第六讲多表查询_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1数据库系统及应用数据库系统及应用主讲人:陈业斌主讲人:陈业斌 教授教授安徽工业大学安徽工业大学20 03 3 外连接运算(外连接运算(重点重点)0 01 1 广义笛卡尔积运算广义笛卡尔积运算0 02 2 内连接运算(内连接运算(重点重点)0 04 4 一般子查询(一般子查询(重点重点)0 05 5 相关子查询(相关子查询(难点难点)0 06 6 传统的集合运算的实现传统的集合运算的实现目目录录第六讲第六讲 多表查询多表查询3广义笛卡尔积广义笛卡尔积4连接连接5连接连接 例例 :求学生以及其选修课程的情况。:求学生以及其选修课程的情况。SQL92标准:标准:select xs.*,cj.* f

2、rom xs,cjwhere xs.sno=cj.sno;SQL99标准:标准:select xs.*,cj.*from xs join cj on xs.sno=cj.sno ;注意:注意:SQLSQL没有实现自然连接没有实现自然连接6表的别名表的别名查找选修了查找选修了“计算机基础计算机基础”课程且成绩在课程且成绩在80分以上的学生学号、分以上的学生学号、姓名、课程名及成绩。姓名、课程名及成绩。 7自连接自连接8自连接自连接例例:求年龄大于王燕的所有学生的姓名、专业名和出生日期。:求年龄大于王燕的所有学生的姓名、专业名和出生日期。select * from xs a join xs b o

3、n a.snob.snowhere a.sname=王燕 and a.birthdayb.birthday ;9外连接外连接(1)左外连接(LEFT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括左表的所有行;(2)右外连接(RIGHT OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括右表的所有行;(3) 完全外连接(FULL OUTER JOIN):结果表中除了包括满足连接条件的行外,还包括两个表的所有行。10外连接外连接例例:查找未选修任何课程的学生。:查找未选修任何课程的学生。select *from xs a left join cj b on a

4、.sno=b.snowhere b.sno is null;11子查询子查询12子查询子查询13子查询子查询selectselect sno snofrom from kc,cjkc,cjwherewhere o=o and cname= o=o and cname=离散数学离散数学;selectselect sno snofrom from cjcjwherewhere cno= cno=( (selectselect cno cno from from kc kc where where cname=cname=离散数学离散数学);); 例例 :查找选修离散数学的学生的学号。:查找选修离散

5、数学的学生的学号。问题两种查询方式的区别问题两种查询方式的区别: :子查询逻辑清晰,但速度慢子查询逻辑清晰,但速度慢14子查询子查询15子查询子查询查找选修离散数学的学生的姓名查找选修离散数学的学生的姓名(in)查找比所有计算机系的学生年龄都大的学生查找比所有计算机系的学生年龄都大的学生( all) SELECT sname FROM xs WHERE sno IN (SELECT sno FROM cj WHERE cno= (SELECT cno FROM kc WHERE cname=离散数学 );Select *from xs where dept计算机 and birthday=an

6、y(select grade from cj where cno=101);17子查询的位置子查询的位置18子查询的位置子查询的位置求与程明同系,或年龄大于王燕的学生的信息求与程明同系,或年龄大于王燕的学生的信息例例2:求每个学生的学号、姓名、学分及最高学分。:求每个学生的学号、姓名、学分及最高学分。19子查询的位置子查询的位置20相关子查询相关子查询21相关子查询相关子查询 EXISTS表示存在量词,带有表示存在量词,带有EXISTS的子查询不返回任何实的子查询不返回任何实际数据,它只得到逻辑值际数据,它只得到逻辑值“真真”或或“假假”。其目标列表达式通常。其目标列表达式通常都用都用*,给出

7、列名无实际意义。,给出列名无实际意义。 当子查询的的查询结果集合为非空时,外层的当子查询的的查询结果集合为非空时,外层的WHERE子句返子句返回真值,否则返回假值。回真值,否则返回假值。NOT EXISTS与此相反。与此相反。22相关子查询相关子查询23相关子查询相关子查询24相关子查询相关子查询25传统集合运算的实现传统集合运算的实现基本语法形式:基本语法形式: 子查询子查询 Union ALL 子查询子查询常情况下自动删除重复元组,若要保留重复的元组,则要带常情况下自动删除重复元组,若要保留重复的元组,则要带ALL。26传统集合运算的实现传统集合运算的实现27传统集合运算的实现传统集合运算的实现基本语法形式:基本语法形式: 子查询子查询 INTERSECT 子查询子查询28传统集合运算的实现传统集合运算的实现基本语法形式:基本语法形式: 子查询子查询 Except 子查询子查询 29本讲内容回顾本讲内容回顾广义笛卡尔积子查询的位置相关子查询一般子查询子查询连接查询自连接连接表的别名外连接左外连接右外连接全外连接等值连接非等值连接返回一个值返回多个值SELECTFROMWHEREEXITSNOT EXITS30作业作业31人有了知识,就会具备各种分析能力,明辨是非的能力。所以我们要勤恳读书,广泛阅读,古人说“

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论