实验七子查询与联合查询实验指导

实验七子查询与联合查询实验指导

ID:46670974

大小:76.00 KB

页数:6页

时间:2019-11-26

实验七子查询与联合查询实验指导_第1页
实验七子查询与联合查询实验指导_第2页
实验七子查询与联合查询实验指导_第3页
实验七子查询与联合查询实验指导_第4页
实验七子查询与联合查询实验指导_第5页
资源描述:

《实验七子查询与联合查询实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验七子查询与联合查询实验指导一、子查询子查询指在一个外层查询屮包含另一个内层查询,即在一个SELECT语句屮的WHERE子句屮,包含有另一个SELECT语句,或者将一个SELECT语句作为另一个SELECT语句的新增列。外层的查询成为主查询,WHERE子句中包含的SELECT语句被称为子查询。一般将子查询的查询结果作为主查询的查询条件。子查询也称为嵌套查询,可完成复杂的查询操作。通常情况下,嵌套查询都可以写成连接的形式,但是有时候写成连接形式比较复杂,不容易理解,因此将其写成嵌套的形式,以将复杂的查询分解成简单的、易理解的子查询。子查询

2、与连接相比,由于子查询的执行需要增加一些附加的操作如排序等,而连接不需要增加附加操作,故一般情况下,连接优于子查询。使用子查询时要注意以下几点。(1)子查询需要用()括起来。(2)子查询内可以再嵌套子查询。(3)子查询内的SELECT语句不能使用imagestext>或ntext数据类型。(4)子查询返回的结果值的数据类型必须兀配新增列或WHERE子句中的数据类型。1.子查询作为新增列例1用子查询显示每个学生的平均分。SELECTa.sno,avg_Grade=(SELECTAVG(Grade)FROMscbWHEREa.sno=b.sn

3、o)FROMstudenta如果不用子查询,可以用分组查询。SELECTsno,AVG(Grade)asavg_GradeFROMscGROUPBYsno2.使用IN关键字语法格式为:WHERE表达式[NOT]IN(子查询)说明:•IN表示属于,即若表达式的值属于子查询返回的结果集屮的值,则满足查询条件。NOTIN表示不属于。例2查询与“刘晨”在同一个系学习的学生。SELECTSno,Sname,SdeptFROMStudentWHERESdeptIN(SELECTSdeptFROMStudentWHERE刘晨J1.使用比较运算符语法格式

4、:WHERE表达式比较运算符[ANYIALL](子查询)ANY关键字表示任何一个(其中之一),只要与子查询中一个值相符合即可;ALL关键字表示所有(全部),要求与子查询中的所有值相符合。比较运算符包扌舌:>、V、>=、v二、二、<>o例3找岀每个学生超过他选修课程平均成绩的课程号。SELECTSnozCnoFROMSCxWHEREGrade>=(SELECTAVG(Grade)FROMSCyWHEREy・Sno=x・Sno)例4查询其他系中比计算机系某一个学生年龄小的学生姓名和年龄。SELECTSname,SageFROMStudentW

5、HERESage'CS‘2.使用BETWEEN关键字语法格式:WHERE表达式1[NOT]BETWEEN(子查询)AND表达式2WHERE表达式1[NOT]BETWEEN表达式2AND(子查询)说明:•使用BETWEEN关键字,则查询条件是表达式1的值必须介于子查询结果与表达式2值之间;而使用NOTBETWEEN关键字则正好相反。例5找出每个学生的超过他选修课程平均成绩且小于90分的课程号。SELECTSno,CnoFROMSCxWHE

6、REGradeBETWEEN(SELECTAVG(Grade)FROMSCyWHEREy•Sno=x.Sno)AND905.使用EXISTS关键字语法格式:WHERE[NOT]EXISTS(子查询)说明:•EXISTS关键字表示存在虽词,带有EXISTS关键字的子查询不返回任何数据,只返回逻辑真值和逻辑假值。当子查询的结果不为空集时,返回逻辑真值,否则返冋逻辑假值。NOTEXISTS则与EXISTS查询结果相反。例6查询所有选修了1号课程的学生姓名。SELECTSnameFROMStudentWHEREEXISTS(SELECT*FROM

7、SCWHERESno=Student•SnoANDCno=111)例7查询至少选修了学生200215122选修的全部课程的学生号码。SELECTDISTINCTSnoFROMSCSCXWHERENOTEXISTS(SELECT*FROMSCSCYANDNOTEXISTS(SELECT*FROMSCSCZWHERESCZ.Sno=SCX.SnoANDSCZ.Cno=SCY.Cno))6.子査询与数据更新INSERT.UPDATE、DELETE这三种语句还能与子查询结合,实现更加灵活的数据更新操作。(1)子查询与INSERT语句。子查询与IN

8、SERT语句相结合,可以完成一批数据的插入。语法格式为:INSERT[INTO]v表名〉[v列名表>]v子查询〉(2)子查询与UPDATE语句。子查询与UPDATE语句相结合,一般是嵌在WHE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。