数据库中SQL查询语句习题含的答案_第1页
数据库中SQL查询语句习题含的答案_第2页
数据库中SQL查询语句习题含的答案_第3页
数据库中SQL查询语句习题含的答案_第4页
数据库中SQL查询语句习题含的答案_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、.查询问题:设置培训数据库Education有三种茄子关系:学生关系S(SNO、SNAME、AGE、SEX、sdept);学习关系SC(SNO、CNO、grade);课程关系C(CNO,CNAME,CDEPT,TNAME)(1)检索计算机系全体学生的学号、名字、性别。(2)搜索学习课程编号为C2的学生学编号和名称。(3)选修课搜索名为“DS”的学生学号和名字。(4)检索选修课编号为C2或C4的学生学编号。(5)至少搜索选修课编号为C2和C4的学生学号。(6)检索不学C2课的学生的名字和年龄。(7)搜索学习所有课程的学生的名字。(8)学习的课程包括学生S3学习课程的学生学号。(1)检索计算机系全

2、体学生的学号、名字、性别。SELECT Sno、Sname、Sex开始sWheresdept= cs(2)搜索学习课程编号为C2的学生学编号和名称。2.SELECT S.Sno,Sname开始s,SCWHERE S.Sno=SC。SnoAnd o= C21.SELECT Sno,Sname开始sWHERE Sno IN(选择Sno起始scWhere cno= C2 )(3)检索选修课为“DS”的学生的学号和名字牙齿查询包含三个茄子属性(S和C表分别存储的学号、名称和学科课程名称),但是S和C表没有直接连接,必须通过SC表连接。C SC S基本想法:(1)首先,C表中“DS”课程的课

3、程编号Cno找出。(2)然后在SC表中,验证CNO是否等于第一步中给定Cno集合中的元素Cno。(3)最后,在S关系中,Sno在步骤2中选择与Sno集中的一个元素相同的元组,然后将Sno和Sname导入到结果表列中。SELECT Sno,Sname开始sWHERE Sno IN(选择Sno起始scWHERE Cno IN(选择Cno开始cwherec name= ds );(4)检索选修课编号为C2或C4的学生学编号。SELECT Sno起始scWhere cno= C2 或cno= C4(5)至少搜索选修课编号为C2和C4的学生学号。SELECT Sno开始sc x,SC Ywhere x

4、. SnO=y . SnO and x . cn o= C2 and y . cn o= C4 ;(6)检索不学C2课的学生的名字和年龄。2.SELECT Sname开始sWHERE NOT EXISTS(选择*起始scWHERE SC。Sno=S.Snoand cno= C2 );1.SELECT Sname开始sWHERE Sno NOT IN(选择Sno起始scwhere cno= C2 );(7)搜索学习所有课程的学生的名字。在表S中找到学生,要求牙齿学生学习所有课程。也就是说,在S表中寻找学生,C没有一门课,牙齿学生没有学。SELECT Sname开始sWHERE NOT EXIST

5、S(选择*开始cWHERE NOT EXISTS(选择*起始scwhere sc . SnO=s . SnO and sc . cn o=c . cn o);(8)学习的课程包括学生S3学习课程的学生学号。分析:没有这种课Y,学生S3选择了Y,其他学生没有选择。SELECT DISTINCT Sno开始sc as xWHERE NOT EXISTS(选择*开始sc as yWhere y.sno= S3 and not exists(选择*起始sc as zwhere z . SnO=x . SnO and z . cn o=y . cn o);设置教育数据库Education有三种茄子关系。

6、学生关系S(SNO、SNAME、AGE、SEX、sdept);学习关系SC(SNO、CNO、grade);课程关系C(CNO,CNAME,CDEPT,TNAME)查询问题:1:调查所有年龄在20岁以下的学生的姓名和年龄。2:请确认考试成绩不及格的学生的学号3: 20至23岁的学生姓名、序列和年龄调查。4:调查计算机系、数学系、信息系的学生名称、性别。5:查找学生名、性别,而不是计算机系、数学系、信息系6:确认所有姓“刘”的学生的名字、学号、性别。7:确认姓为“相关”,全名为3字汉字的学生的名字。8:确认姓不是“章”牙齿的所有学生的名字。9:检查DB_Design课程的课程编号。10:调查考试不

7、及格的学生的学号和课程编号。11:确认年龄为空的学生的学号和姓名。12:请确认计算机系20岁以下学生的学号和姓名。13:调查计算机系、数学系、信息系的学生名称、性别。14:查看参加C3课程的学生的学号和成绩,结果按分数降序排序。15:查看全体学生的情况,祖怀结果按相应学科升序排序,同一学科的学生按年龄降序排序。16:查询学生总数。17:查询选修课的学生人数。18:计算参加C1课程的学生的平均成绩。19:查询学习C3课程的学生的最高分数。20:查询每个课程编号及其选项科目数。21:查询计算机系修了3门以上课程的学生的学号。22:基本票S中按男生年龄(50人以上)划分的人数是多少?祖怀结果按人数升

8、序排序,人数按年龄降序排序。23:确认每个学生和选修课的情况。24:查询参加过C2课程,成绩超过90分的所有学生。25:查询每个学生选择的课程名称和成绩。26:请计算每个年龄的选修课的学生数。27:确认选择C2课程的学生的名字。28:查询长参等学科学习的学生学号、名字、学科。29:查询选修课名为“数据库”的学生学号和名字。30:查询长参等学科学习的学生学号、名字、学科。31:选修课查询名为“数据库”的学生学号和名字。检查选择32: C2课程的学生的姓名。33:查询未选择C2课程的所有学生的姓名。34:查询长参等学科学习的学生学号、名字、学科。35:确认选择所有课程的学生的名字。36:查询学习的

9、课程是否包括学生S3学习课程的学生学号(1)比较例1:调查20岁以下所有学生的姓名和年龄。SELECT Sname,Sage开始sWHERE Sage20 : (NOT age=20)例2:确认考试成绩不及格的学生的学号SELECT DISTINCT Sno起始scWHERE grade60;(2)确定范围例3:调查20至23岁的学生名称、系列和年龄。SELECT Sname、Sdept、Sage开始sWhere sage between 20和23:(3)确定集例4:计算机系,数学系,信息系的学生名,确认性别。SELECT Sname,Ssex开始sWhere sdeptin (cs , i

10、s , math );例5:调查计算机系、数学系、信息系以外的学生的名字、性别SELECT Sname,Ssex开始sWhere sdept not in (cs , is , math );(4)匹配字符例6:调查所有姓“刘”的学生的名字、学号和性别。SELECT Sname、Sno、Ssex开始swhere sname like“Yu %”;例7:调查姓为“相关”、全称为3字汉字的学生的名字。SELECT Sname开始sWhere snamelike 上司_ _ ;例8:查找姓不是“章”牙齿的所有学生的名字。SELECT Sname、Sno、Ssex开始sWhere sname not

11、like“章节%”;范例9:确认DB_Design课程的课程编号。SELECT Cno开始cwhere cname like“db u design”“escape”“;(5)与null值相关的查询例10:调查考试不及格的学生的学号和课程编号。SELECT Sno,Cno起始scWHERE Grade IS NULL;(不能使用=)有成绩的where grade is not null例11:了解年龄为空的学生的学号和名字。SELECT Sno,Sname开始sWHERE Sage IS NULL;(6)多条件祖怀例12:了解计算机系20岁以下学生的学号和名字。SELECT Sno,Sname

12、开始sWhere sdept= cs and sage 20例13:计算机系,数学系,信息系的学生名,确认性别。SELECT Sname,Ssex开始swhere sdept= cs or sdept= is or sdept= math );3、对查询结果排序例14:查询了参加C3课程的学生的学号和成绩,结果按分数降序排序。SELECT Sno,Grade起始scWhere cno= C3 ORDER BY Grade DESC例15:对于全体学生,祖怀结果按相应学科的升序排列,同一学科的学生按年龄的降序排列。SELECT *开始sORDER BY Sdep,Sage DESC;4.使用聚合

13、函数范例16:学生总数祖怀。选择Count)开始s例17:查看选修课的学生数。SELECT COUNT(DISTINCT Sno)起始sc例18:计算参加C1课程的学生的平均成绩。选择avg(级别)起始scWhere cno= C1例19:查询学习C3课程的学生的最高分数。Selectmax(评级)起始scWhere cno= C35、将查询结果分组实例20:查询每个课程编号和相应的预订人数。SELECT Cno,COUNT(Sno)起始sc组郑智薰cno牙齿SELECT语句基于Cno值(其中具有相同Cno值的所有元组都是一个组)对SC表进行分组,然后为每个聚合角色函数COUNT组获取该组中的

14、学生数。如果分组后需要按特定条件过滤组,并且最终仅输出指定的条件组,则可以使用HAVING短语指定过滤条件。例21:查询计算机系修了3门以上课程的学生的学号。SELECT Sno起始scWHERE Sdept=CS cs 组郑智薰SnOhaving count(*)3;WHERE子句和HAVING球体的根本区别在于作用对象不同。WHERE子句适用于基础表或视图,从中可以选择符合标准的元组。HAVING球体适用于允许您选择符合条件的组的组。例22:基本票S中按男生年龄(50人以上)划分的人数是多少?祖怀结果按人数升序排序,人数按年龄降序排序。SELECT Sage,COUNT(Sno)开始sWhere ssex=m按存储组HAVING COUNT(*) 50ORDER BY 2,Sage DESC:二、多表查询1、联接查询例23:查询每个学生和选修课的情况。

温馨提示

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

评论

0/150

提交评论