付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、完美WORD格式1.SELECT SnameFROM SWHERE Sno NOT IN(SELECT SnoFROM SCWHERE Cno= C2');查询问题:设教学数据库 Education有三个关系:学生关系 S (SNO SNAMEAGE SEX SDEPT;学习关 系 SC( SNO CNO GRADE;课程关系 C( CNQ CNAME CDEPT TNAME(1) 检索计算机系的全体学生的学号,姓名和性别;(2) 检索学习课程号为 C2的学生学号与姓名;(3) 检索选修课程名为“ DS'的学生学号与姓名;(4) 检索选修课程号为 C2或C4的学生学号;(5)
2、检索至少选修课程号为 C2和C4的学生学号;(6) 检索不学C2课的学生姓名和年龄;(7) 检索学习全部课程的学生姓名;(8) 查询所学课程包含学生 S3所学课程的学生学号.(5) 检索至少选修课程号为 C2和C4的学生学号;SELECT SnoFROM SC X, SC YWHERE X.Sno=Y.Sno AND X.Cno= ' C2' AND Y.Cno= 'C4';(6) 检索不学C2课的学生姓名和年龄;2.SELECT SnameFROM SWHERE NOT EXISTS(SELECT *FROM SCWHERE SC.Sno=S.SnoAND C
3、no= C2');专业整理知识分享2.SELECT S.Sno,Sname FROM S,SCWHERE S.Sno=SC.SnoAND SC.Cno= C2 ;(4) 检索选修课程号为 C2或C4的学生学号;SELECT SnoFROM SCWHERE Cno=' C2' OR Cno= ' C4'(1) 检索计算机系的全体学生的学号,姓名和性别;SELECT Sno Sn ame SexFROM SWHERE Sdept = ' CS ;(2) 检索学习课程号为 C2的学生学号与姓名;1.SELECT Sno,Sname FROM SWHER
4、E Sno IN(SELECT Sno FROM SCWHERE Cno= C2')(3) 检索选修课程名为“ DS'的学生学号与姓名 本查询涉及到学号、姓名和课程名三个属性,分别 存放在S和C表中,但S和C表没有直接联系,必须通 过SC表建立它们二者的联系.SC t S根本思路:(1) 首先在C表中找出“ DS'课程的课程号 Cno;(2) 然后在SC表中找出Cno等于第一步给出的 Cno集 合中的某个元素Cn o;(3) 最后在S关系中选出Sno等于第二步中Sno集合 中某个元素的元组,取出 Sno和Sname送入结果表列. SELECT Sno SnameFROM
5、 S WHERE Sno IN(SELECT Sno FROM SCWHERE Cno IN(SELECT Cno FROM C WHERE Cn ame=' DS);(7) 检索学习全部课程的学生姓名;在表S中找学生,要求这个学生学了全部课程.换言之, 在S表中找学生,在 C中不存在一门课程,这个学生没 有学.SELECT Sn ame FROM SWHERE NOT EXISTS(SELECT *FROM CWHERE NOT EXISTS(SELECT * FROM SCWHERESC.Sno=S.Sno ANDSC.Cno=C.Cno);(8) 查询所学课程包含学生 S3所学课
6、程的学生学号.分析:不存在这样的课程Y,学生S3选了 Y,而其他学生没有选.SELECT DISTINCT Sno FROM SC AS XWHERE NOT EXISTS(SELECT *FROM SC AS YWHERE Y.Sno= ' S3' AND NOT EXISTS(SELECT *FROM SC AS ZWHERE Z.Sno=X.Sno AND Z.Cno=Y.Cno); 设教学数据库Education有三个关系:学生关系 S (SNO SNAMEAGE SEX SDEP)学习关系 SC( SNO CNO GRADE;课程关系 C (CNO CNAME CDE
7、PT TNAME查询问题:1查所有年龄在 20岁以下的学生姓名及年龄.2:查测试成绩有不及格的学生的学号3:查所年龄在 20至23岁之间的学生姓名、系别及年 龄.4:查计算机系、数学系、信息系的学生姓名、性别.5:查既不是计算机系、数学系、又不是信息系的学生 姓名、性别6:查所有姓“刘的学生的姓名、学号和性别.7:查姓“上官且全名为3个汉字的学生姓名.8:查所有不姓“张的学生的姓名.9:查DB_Design课程的课程号.10:查缺考的学生的学号和课程号.11 :查年龄为空值的学生的学号和姓名.12:查计算机系20岁以下的学生的学号和姓名.13:查计算机系、数学系、信息系的学生姓名、性别.14:
8、查询选修了 C3课程的学生的学号和成绩,其结果 按分数的降序排列.15:查询全体学生的情况,查询结果按所在系升序排列, 对同一系中的学生按年龄降序排列.16:查询学生总人数.17:查询选修了课程的学生人数.18:计算选修了 C1课程的学生平均成绩.19:查询学习C3课程的学生最高分数.20:查询各个课程号与相应的选课人数.21:查询计算机系选修了 3门以上课程的学生的学号.22:求根本表 S中男同学的每一年龄组(超过 50人) 有多少人?要求查询结果按人数升序排列,人数相同按 年龄降序排列.23:查询每个学生及其选修课程的情况.24:查询选修了 C2课程且成绩在90分以上的所有学生.25:查询
9、每个学生选修的课程名及其成绩.26:统计每一年龄选修课程的学生人数.27:查询选修了 C2课程的学生姓名.28:查询与“张三在同一个系学习的学生学号、姓名 和系别.29:查询选修课程名为“数据库的学生学号和姓名.30 :查询与“张三在同一个系学习的学生学号、姓名 和系别.31 :查询选修课程名为“数据库的学生学号和姓名.32 :查询选修了 C2课程的学生姓名.33 :查询所有未选修 C2课程的学生姓名.34 :查询与“张三在同一个系学习的学生学号、姓名 和系别.35 :查询选修了全部课程的学生姓名.36 :查询所学课程包含学生S3所学课程的学生学号(1) 比拟例1:查所有年龄在 20岁以下的学
10、生姓名及年龄.SELECT Sn ame ,SageFROM SWHERE Sage<20; (NOT age>=20)例2:查测试成绩有不及格的学生的学号SELECT DISTINCT SnoFROM SCWHERE grade<60 ;(2) 确定范围例3:查所年龄在20至23岁之间的学生姓名、系别及 年龄.SELECT Sname , Sdept, SageFROM SWHERE Sage BETWEEN 20 AND 23;(3) 确定集合例4:查计算机系、数学系、信息系的学生姓名、性别.SELECT Sname ,SsexFROM SWHERE Sdept IN (
11、' CS ,'IS ' ,' MATH);例5 :查既不是计算机系、数学系、又不是信息系的学 生姓名、性别SELECT Sname , SsexFROM SWHERE Sdept NOT IN (' CS ,' IS ' ,' MATH);(4) 字符匹配例6:查所有姓“刘的学生的姓名、学号和性别.SELECT Sname , Sno, SsexFROM SWHERE Sname LIKE'文U % ;例7:查姓“上官且全名为 3个汉字的学生姓名.SELECT Sn ameFROM SWHERE Sname LIKE
12、39;上官 ';例&查所有不姓“张的学生的姓名.SELECT Sname , Sno, SsexFROM SWHERE Sname NOT LIKE '张 % ; 例9 :查DB_Design课程的课程号.SELECT CnoFROM CWHERE Cname LIKE ' DB_Design ' ESCAPE '';5涉及空值的查询例10:查缺考的学生的学号和课程号.SELECT Sno , CnoFROM SCWHERE Grade IS NULL ;不能用=代替有成绩的 WHERE Grade IS NOT NULLL ; 例11:
13、查年龄为空值的学生的学号和姓名.SELECT Sno , SnameFROM SWHERE Sage IS NULL ;6多重条件查询例12:查计算机系20岁以下的学生的学号和姓名.SELECT Sno , SnameFROM SWHERE Sdept= ' CS AND Sage<20;例13:查计算机系、数学系、信息系的学生姓名、 性别.SELECT Sname, SsexFROM SWHERE Sdept =' CS' OR Sdept = ' IS ' OR Sdept ='MATH;3、对查询结果排序例14:查询选修了 C3课程的
14、学生的学号和成绩,其结 果按分数的降序排列.SELECT Sno , GradeFROM SCWHERE Cno= ' C3'ORDER BY Grade DESC;例15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列.SELECT *FROM SORDER BY Sdep ,Sage DESC;4. 聚合函数的使用例16:查询学生总人数.SELECT COUNT *FROM S例17:查询选修了课程的学生人数.SELECT COUNT DISTINCT SnoFROM SC例18:计算选修了 C1课程的学生平均成绩.SELECT AVGFROM
15、 SCWHERE Cno=例19:查询学习SELECT MAXFROM SCWHERE Cno=Grade'C1';C3课程的学生最高分数.Grade'C3'5、对查询结果分组 例20:查询各个课程号与相应的选课人数.SELECT Cno , COUNTS noFROM SCGROUP BY Cno ;该SELECT语句对SC表按Cno的取值进行分组,所有 具有相同Cno值的元组为一组,然后对每一组作用聚合 函数COUN以求得该组的学生人数.如果分组后还要求按一定的条件对这些组进行筛选,最终只输出满足指定条件组,那么可以使用HAVING短语指定筛选条件.例21:
16、查询计算机系选修了 3门以上课程的学生的学号.SELECT SnoFROM SCWHERE Sdept= ' CSGROUP BY SnoHAVING COUNT * >3;WHERE子句与HAVING短语的根本区别在于作用对象不 同.WHERE?句作用于根本表或视图,从中选择满足条 件的元组.HAVING短语作用于组,从中选择满足条件的 组.例22:求根本表S中男同学的每一年龄组 超过50人 有多少人?要求查询结果按人数升序排列,人数相同按 年龄降序排列.SELECT Sage , COUN SnoFROM SWHERE Ssex='M'GROUP BY Sag
17、e HAVING COUNT* > 50ORDER BY 2 Sage DESC二、多表查询1、联接查询 例23:查询每个学生及其选修课程的情况.SELECTS.S no,S name,Sage,Ssex,Sdept,C no,GradeFROM S, SC完美WORD格式WHERE S.Sno=SC.Sno ;例24:查询选修了 C2课程且成绩在90分以上的所有学 生.SELECT S.Sno , SnameFROM S ,SCWHERE S.S no=SC.S noAND SC.Cno=' C2'AND SC.Grade > 90;例25:查询每个学生选修的课程
18、名及其成绩.SELECT S.Sno , Sname Cname SC.GradeFROM S,SC, CWHERE S.S no=SC.S no AND SC.C no=C.C no例26:统计每一年龄选修课程的学生人数.SELECT Sage ,COUN( DISTINCT S.Sno )FROM S,SCWHERE S.S no=SC.S noGROUP BY S ;由于要统计每一个年龄的学生人数,因此要把满足 WHER子句中条件的查询结果按年龄分组,在每一组中 的学生年龄相同.此时的SELECT子句应对每一组分开进行操作,在每一组中,年龄只有一个值,统计的人数 是这一组中的学生人数.1
19、嵌套查询(1) 带有IN谓词的子查询指父查询与子查询之间用IN进行联接,判断某个属性列值是否在子查询的结果中.例27:查询选修了 C2课程的学生姓名.SELECT Sn ameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno=' C2');例28:查询与“张三在同一个系学习的学生学号、 姓名和系别.分析:(1) 确定“张三所在的系;(2) 查找所有在 X系学习的学生.SELECT SdeptFROM SWHERE Sname='张三';SELECT Sno , Sname SdeptFROM SWHERE Sdept=
20、' X'把第一步查询嵌入到第二步查询中,用以构造第二步 查询的条件.SELECT Sno, Sname SdeptFROM SWHERE Sdept IN(SELECT Sdept FROM SWHERE Sname='张三');例29:查询选修课程名为“数据库的学生学号和姓名.本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系.C t SCT S根本思路:(1) 首先在C表中找出“ DB课程的课程号 Cno;(2) 然后在SC表中找出Cno等于第一步给出的 Cno集 合中的某个元素 Cno;(
21、3) 最后在S关系中选出Sno等于第二步中Sno集合 中某个元素的元组,取出 Sno和Sname送入结果表列.SELECT Sno , SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno IN(SELECT CnoFROM CWHERE Cname=' DB);联接查询方式(2)带有比拟运算符的子查询例30:查询与“张三在同一个系学习的学生学号、 姓名和系别.SELECT Sno , Sname SdeptFROM SWHERE Sdept =(SELECT SdeptFROM SWHERE Sname='张三');例3
22、1:查询选修课程名为“数据库的学生学号和姓名.SELECT Sno , SnameFROM SWHERE Sno IN(SELECT SnoFROM SCWHERE Cno =(SELECT CnoFROM CFROM S AS S1, S AS S2WHE专业整1Sdep=®分享eptAND S2.Sname='张三'WHERE Cname=' DB);(3) 带有EXISTS谓词的子查询(1)带有EXISTS谓词的子查询不返回任何实际数据, 它只产生逻辑值.例32:查询选修了 C2课程的学生姓名.1.SELECT Sn ameFROM SWHERE Sno IN(SELECT Sno FROM SC WHERE Cno=' C2');2.SELECT Sn ameFROM SWHERE EXISTS(SELECT *FROM SCWHERE SC.Sno=S.Sno AND Cno=' C2'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026幼儿园中华美食启蒙课件
- 市场部门业务拓展与管理指南
- 公务员考试面试题目及答案
- 健身与运动营养饮食指导手册
- 电商物流冷链运输全流程管控手册
- 辽宁2026执业药师考试-药学专业知识必刷题(含答案)
- 湖北2026电子商务师初级职业技能测试卷(含答案)
- 2025 高中阅读理解之信息筛选准确性课件
- 2025 高中议论文阅读理解之比喻论证效果强化课件
- 海南2026成人高考高起专语文预测试题(含答案)
- TSG 08-2026 特种设备使用管理规则
- 5.1《阿Q正传》课件+2025-2026学年统编版高二语文选择性必修下册
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 2023年中国兽医药品监察所第二批招聘应届高校毕业生等人员补充笔试备考题库及答案解析
- 奇妙的绳结综合实践
- CB/T 495-1995吸入口
- 压铸机常见故障分析课件
- 新译林版八年级下册英语全册单元检测卷及答案(含期中期末试卷)
- 人教版高中物理选择性必修三 第1章第1节 分子动理论的基本内容
- 硫酸稀释放热计算
- MOVIPRO与WCS3B
评论
0/150
提交评论