SQL Server数据库实践教程 课件 10-集合查询等_第1页
SQL Server数据库实践教程 课件 10-集合查询等_第2页
SQL Server数据库实践教程 课件 10-集合查询等_第3页
SQL Server数据库实践教程 课件 10-集合查询等_第4页
SQL Server数据库实践教程 课件 10-集合查询等_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

SQLServer数据库实践数据查询目录1、单表查询2、连接查询3、嵌套查询4、集合查询5、基于派生表的查询一个select,from后面只有一张表一个select,from后面多张表,按条件连接多个select,分为父查询和子查询多个select,平等的集合查询集合操作的种类并操作UNION交操作INTERSECT差操作EXCEPT参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同UNION:将多个查询结果合并起来时,自动去掉重复元组。UNIONALL:将多个查询结果合并起来时,保留重复元组INTERSECT

--交操作SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库'集合查询【例题5-37】查询哪些学生同时选修了“大数据导论”和“数据库”课程,显示出学生的学号。SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'结果是:1001和1003问:是否有另外的写法?并操作UNION交操作INTERSECT差操作EXCEPTINTERSECT

--交操作SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库'集合查询【例题5-37】查询哪些学生同时选修了“大数据导论”和“数据库”课程,显示出学生的学号。SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'结果是:1001和1003问:是否有另外的写法?连接+嵌套查询:SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'andSnoin(SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库')EXCEPT

--差操作SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库'集合查询【例题5-38】查询哪些学生选修了“大数据导论”但没有选修“数据库”课程,显示出学生的学号。SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'结果是:1002连接+嵌套查询:SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'andSnonotin(SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库')问:是否有另外的写法?并操作UNION交操作INTERSECT差操作EXCEPTUNION

--交操作SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='数据库'集合查询【例题5-39】查询选修了“大数据导论”或者“数据库”的学生学号。SELECTSnoFROMCoursec,SCWHEREc.Cno=SC.CnoandCname='大数据导论'连接查询:SELECTdistinct

SnoFROMCoursec,SCWHEREc.Cno=SC.Cnoand

(Cname='大数据导论'or

Cname='数据库')

问:为什么需要distinct?并操作UNION交操作INTERSECT差操作EXCEPT结果是:1001、1002、1003数据查询目录1、单表查询2、连接查询3、嵌套查询4、集合查询5、基于派生表的查询一个select,from后面只有一张表一个select,from后面多张表,按条件连接多个select,分为父查询和子查询多个select,平等的基于派生表(查询表)的查询SELECT查询块不仅可以嵌套在WHERE子句中,还可以出现在FROM子句中。SELECT[ALL|DISTINCT][TOPn|PERCENT]<输出列表>]…FROM数据源列表[WHERE<条件表达式>][GROUPBY<分组表达式>[HAVING<条件表达式>]][ORDERBY<排序表达式>[ASC|DESC]]三种表:基本表、查询表、视图表嵌套查询:SELECTName,sex,BirthDayFROMStudentWHEREBirthDay=(SELECTMAX(BirthDay)FROMStudent)

基于派生表(查询表)的查询【例题5-40】查找年龄最小的学生的姓名、性别和出生日期,请用基于派生表的查询实现。(例题5-33的另一种写法)SELECT

Name,sex,BirthDayFROMStudent,(SELECTMAX(BirthDay)BirthFROMStudent)mWHEREBirthDay=Birth

基于派生表(查询表)的查询【例题5-36】查询每个学生超过他自己选修课程的平均成绩的课程号。嵌套查询:(相关子查询)SELECTSno,CnoFROMSCs1WHEREGrade>(SELECTavg(Grade)FROMSCWHERESno=s1.Sno)问题:

能否改为基于派生表的查询?基于派生表(查询表)的查询【例题5-36】查询每个学生超过他自己选修课程的平均成绩的课程号。嵌套查询:(相关子查询)SELECTSno,CnoFROMSCs1WHEREGrade>(SELECTavg(Grade)FROMSCWHERESno=s1.Sno)基于派生表的查询:SELECTSC.Sno,CnoFROMSC,(SELECTSno,avg(Grade)pjcjFROMSCgroupbySno)cjWHERESC.sno=cj.snoandGrade>pjcj

嵌套查询:SELECTCno课程号,Cname姓名,hours学时FROMCourseWHEREhours>(SELECTavg(hours)FROMCourse)改为基于派生表的查询

基于派生表(查询表)的查询【例题5-34】查询比平均学时高的课程的课程号、课程名和学时。操作练习实验10多种方式多表查询

(1)查询库存量低于100的商品订货信息,包括商品编号、订货时间、订货数量、客户编号,并按照商品编号、订货时间排序。(2)查询某月(自己指定)订货超过三次的商品

温馨提示

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

最新文档

评论

0/150

提交评论