《数据库系统概论(第四版)第三章课堂练习题.ppt》由会员分享,可在线阅读,更多相关《数据库系统概论(第四版)第三章课堂练习题.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1第三章 SQL 语言习题211、查询选修、查询选修33门以上课程的学生总成绩门以上课程的学生总成绩(不统计不不统计不 及格的课程及格的课程),),并要求按总成绩的降序排列。并要求按总成绩的降序排列。正确的正确的SELECTSELECT语句是语句是。BSELECT SELECT SNO,SUM(SCORE)SNO,SUM(SCORE)FROM Score FROM ScoreWHERE SCORE=60 WHERE SCORE=60GROUP BY SNO GROUP BY SNO ORDER BY 2 DESC ORDER BY 2 DESC HAVING COUNT(*)=3 HAVING
2、 COUNT(*)=3SELECT SELECT SNO,SUM(SCORE)SNO,SUM(SCORE)FROM Score FROM ScoreWHERE SCORE=60 WHERE SCORE=60ORDER BY 2 DESC ORDER BY 2 DESC GROUP BY SNO GROUP BY SNO HAVING COUNT(*)=3 HAVING COUNT(*)=3SELECT SELECT SNO,SUM(SCORE)SNO,SUM(SCORE)FROM Score FROM ScoreWHERE SCORE=60 WHERE SCORE=60HAVING COUNT
3、(*)=3 HAVING COUNT(*)=3GROUP BY SNO GROUP BY SNO ORDER BY 2 DESC ORDER BY 2 DESC SELECT SELECT SNO,SUM(SCORE)SNO,SUM(SCORE)FROM Score FROM ScoreWHERE SCORE=60 WHERE SCORE=60GROUP BY SNO GROUP BY SNO HAVING COUNT(*)=3 HAVING COUNT(*)=3ORDER BY 2 DESC ORDER BY 2 DESCA BD C322、查询选修课程、查询选修课程“3-1053-105”
4、的学生中成绩最高的的学生中成绩最高的 学生学号。正确的学生学号。正确的SELECTSELECT语句是语句是。DSELECT SNO FROM Score SELECT SNO FROM ScoreWHERE CNO=WHERE CNO=3-105 3-105 AND SCORE=AND SCORE=(SELECT SCORE(SELECT SCORE FROM Score FROM Score WHERE CNO=WHERE CNO=3-105 3-105)SELECT SNO FROM Score SELECT SNO FROM ScoreWHERE CNO=WHERE CNO=3-105
5、3-105 AND SCORE=ALL AND SCORE=ALL(SELECT SCORE(SELECT SCORE FROM Score FROM Score WHERE CNO=WHERE CNO=3-105 3-105)SELECT SNO FROM Score SELECT SNO FROM ScoreWHERE CNO=WHERE CNO=3-105 3-105 AND SCORE NOT IN AND SCORE NOT IN(SELECT SCORE(SELECT SCORE FROM Score FROM Score WHERE CNO=WHERE CNO=3-105 3-1
6、05)SELECT SNO FROM Score SELECT SNO FROM ScoreWHERE CNO=WHERE CNO=3-105 3-105 AND SCORE IN AND SCORE IN(SELECT SCORE(SELECT SCORE FROM Score FROM Score WHERE CNO=WHERE CNO=3-105 3-105)A BD C433、设有职工关系模式如下:、设有职工关系模式如下:people(pno,pname,sex,job,wage,dptno)people(pno,pname,sex,job,wage,dptno)职工职工(职工号职工号
7、,职工姓名职工姓名,性别性别,职业职业,工资工资,所在部门号所在部门号),请写出下列查询使用的请写出下列查询使用的SQLSQL语句:语句:(11)查询工资比所在部门平均工资高的所有职工信息。)查询工资比所在部门平均工资高的所有职工信息。(22)查询工资高于)查询工资高于“张三张三”工资的所有职工信息。工资的所有职工信息。SELECT*SELECT*FROM People x FROM People xWHERE wage WHERE wage(SELECT AVG(wage)(SELECT AVG(wage)FROM People y FROM People y WHERE x.dptno=y
8、.dptno)WHERE x.dptno=y.dptno)SELECT*SELECT*FROM People FROM People WHERE wage WHERE wage(SELECT wage(SELECT wage FROM People FROM People WHERE pname=WHERE pname=张三 张三)544、以下、以下SQLSQL操作,操作,不能执行。(其中职工不能执行。(其中职工号和部门号为主码)号和部门号为主码)职工号 职工号 职工名 职工名 部门号 部门号 工资 工资001 001李红 李红 01 01 580 580005 005刘军 刘军 01 01
9、670 670025 025王芳 王芳 03 03 720 720038 038张强 张强 02 02 650 650AA、从职工表中删除行、从职工表中删除行(025025,王芳王芳,0303,720),720)BB、将行、将行(005005,乔星乔星,0404,750),750)插入到职工表中插入到职工表中CC、将职工号为、将职工号为“001001”的工资改为的工资改为700700DD、将职工号为、将职工号为“038038”的部门改为的部门改为0303EE、将职工号为、将职工号为“001001”的部门改为的部门改为0505部门号 部门号 部门名 部门名 主任 主任01 01人事处 人事处 高
10、平 高平02 02财务处 财务处 姜华 姜华03 03教务处 教务处 许虹 许虹04 04学工处 学工处 杜琼 杜琼B E655、若用如下的、若用如下的SQLSQL语句创建一个表语句创建一个表studentstudent:则可以插入到则可以插入到student student 表中的是表中的是。AA、(10311031,王海王海,男男,20),20)BB、(10311031,王海王海,NULL,NULL),NULL,NULL)CC、(NULL,(NULL,王海王海,男男,2020)DD、(10311031,NULL,NULL,男男,23),23)BCREATE TABLE Student(Sn
11、o CHAR(4)NOT Null,Sname CHAR(8)NOT Null,Ssex CHAR(2),Sage INT)7(1 1)实现)实现R R T T 的 的SQL SQL 语句是 语句是。(2 2)实现)实现 DWH=100 DWH=100(R)(R)的 的SQL SQL 语句是 语句是。(3 3)实现)实现 XM,XB XM,XB(R)(R)的 的SQL SQL 语句是 语句是。(4 4)实现)实现 XM,XB XM,XB(XB=XB=女 女(R)(R)的 的SQL SQL 语句是 语句是。(5 5)实现)实现R S R S 的 的SQL SQL 语句是 语句是。(6 6)实现)
12、实现 XM,XB,DWM XM,XB,DWM(XB=XB=男 男(R S)(R S)的 的SQL SQL 语句 语句 是 是。66、设有如下关系表、设有如下关系表RR,SS和和TT:R(BH,XM,XB,DWH)R(BH,XM,XB,DWH)S(DWH,DWM)S(DWH,DWM)T(BH,XM,XB,DWH)T(BH,XM,XB,DWH)8(1 1)SELECT*FROM R UNION SELECT*FROM T SELECT*FROM R UNION SELECT*FROM T(2 2)SELECT*FROM R WHERE DWH=SELECT*FROM R WHERE DWH=100
13、 100(3 3)SELECT XM,XB FROM R SELECT XM,XB FROM R(4 4)SELECT XM,DWH FROM R SELECT XM,DWH FROM RWHERE XB=WHERE XB=女 女(5 5)SELECT R.BH,R.XM,R.XB,R.DWH,S.DWM SELECT R.BH,R.XM,R.XB,R.DWH,S.DWM FROM R,S FROM R,SWHERE R.DWH=S.DWH WHERE R.DWH=S.DWH(6 6)SELECT R.XM,R.XB,S.DWM SELECT R.XM,R.XB,S.DWM FROM R,S
14、FROM R,SWHERE R.DWH=S.DWH AND R.XB=WHERE R.DWH=S.DWH AND R.XB=男 男 o 5.假设选课关系如下图所示,执行以下SQL语句:o SELECTCOUNT(DISTINCT 学号)FROM 选课WHERE 成绩70o 查询结果中包含的元组数目是()。o A)1B)2C)3D)4o 选课9学号 课程号 成绩20001 DB 9020001 GIS 8020002 DB null20002 GIS 6520003 DB 98o 9.SQL 的SELECT 语句中,“HAVING 条件表达式”用来筛选满足条件的()。o A)列 B)行C)关系D
15、)分组10o 12.在嵌入式SQL 中,为了把集合操作转换成单记录处理方式,引进了以下哪个概念()。o A)宿主语言 B)游标o C)DDL 语言D)DML 语言11o 14.下列SQL 语句中,能够实现“收回用户LI对学生表(STUD)中学号(Sno)的修改权”这一功能的是()。o A)REVOKEUPDATE(Sno)ONTABLEFROMLIo B)REVOKEUPDATE(Sno)ONTABLEFROMPUBLICo C)REVOKEUPDATE(Sno)ONSTUDFROMLIo D)REVOKEUPDATE(Sno)ONSTUDFROMPUBLIC12o 1.SQL 以同一种语法格
16、式,提供_ 和_ 两种使用方式。13o 五、综合题(共20 分,每小题4 分)o 假设有如下学生-教师-课程信息数据库(其中加下划线的是主码),试完成下列各小题:o Student(Sno,Sname,Sage,Ssex,Sclass)(学生信息表)o 各属性分别代表学号、姓名、年龄、性别、所在班级o Course(Cno,Cname,Tno)(课程信息表)o 各属性分别代表课程号、课程名、授课教师编号o SC(Sno,Cno,Grade)(选课表)o 各属性分别代表学号、课程号、成绩o 1)试用关系代数表示下列查询语句:o(1)查询所有男生的姓名和学号;o(2)查询学号为012091001
17、选修的所有课程的课程号;o 2)试为下列查询要求写出SQL 表达式:o(3)试用SQL 语句统计女生的人数;o(4)查询012092 班学生的学号、姓名、年龄、性别;o(5)查询选修了“数据库原理”课程且成绩高于90 分的学生学号和成绩。14o(1)查询所有男生的姓名和学号;o 答:(1)Sname,Sno(Ssex=男(Student)o(2)查询学号为012091001 选修的所有课程号;答:(2)Cno(Sno=012091001(SC)o(3)试用SQL 语句统计女生的人数;o SELECTCOUNT(*)FROMStudentWHERESsex=女o(4)查询012092 班学生的学
18、号、姓名、年龄、性别;o SELECTSno,Sname,Sage,SsexFROMStudentWHERESclass=012092o(5)查询选修了“数据库原理”课程且成绩高于90 分的学生学号和成绩。o SELECTSno,GradeFROMSC,CourseWHERESC.Cno=Course.CnoandCname=数据库原理andGrade=9015三、问答题(每题6 分,共30 分)o 4.简述视图的作用。1617书P127 第5 题o设有一个设有一个SPJSPJ数据库,包括数据库,包括SS,PP,JJ,SPJSPJ四四个关系模式:个关系模式:nS(SNO,SNAME,STATU
19、S,CITY)S(SNO,SNAME,STATUS,CITY)nP(PNO,PNAME,COLOR,WEIGHT)P(PNO,PNAME,COLOR,WEIGHT)nJ(JNO,JNAME,CITY)J(JNO,JNAME,CITY)nSPJ(SNO,PNO,JNO,QTY)SPJ(SNO,PNO,JNO,QTY)o关系中的具体数据见书关系中的具体数据见书P75P75四个表。四个表。o试用试用SQLSQL语言完成下列各项操作。语言完成下列各项操作。18 11、找出所有供应商的姓名和所在城市。找出所有供应商的姓名和所在城市。22、找出所有零件的名称、颜色、重量。找出所有零件的名称、颜色、重量。3
20、3、找出使用供应商找出使用供应商S1S1所供应零件的工程号码。所供应零件的工程号码。44、找出工程项目找出工程项目J2J2使用的各种零件的名称及其数量。使用的各种零件的名称及其数量。55、找出上海厂商供应的所有零件号码。找出上海厂商供应的所有零件号码。66、找出使用上海产的零件的工程名称。找出使用上海产的零件的工程名称。77、找出没有使用天津产的零件的工程号码。找出没有使用天津产的零件的工程号码。88、把全部红色零件的颜色改成蓝色。把全部红色零件的颜色改成蓝色。99、由由S5S5供给供给J4J4的零件的零件P6P6改为由改为由S3S3供应,请作必要的供应,请作必要的 修改。修改。1010、从供
21、应商关系中删除从供应商关系中删除S2S2的记录,并从供应情况关系的记录,并从供应情况关系 中删除相应的记录。中删除相应的记录。1111、请将请将(S2(S2,J6J6,P4P4,200)200)插入供应情况关系。插入供应情况关系。1911、找出所有供应商的姓名和所在城市。找出所有供应商的姓名和所在城市。SELECT SNAME,CITY SELECT SNAME,CITY FROM S FROM S22、找出所有零件的名称、颜色、重量。找出所有零件的名称、颜色、重量。SELECT PNAME,COLOR,WEIGHTSELECT PNAME,COLOR,WEIGHT FROM P FROM P
22、33、找出使用供应商找出使用供应商S1S1所供应零件的工程号码。所供应零件的工程号码。SELECT JNOSELECT JNO FROM SPJ FROM SPJ WHERE SNO=WHERE SNO=S1S1 2044、找出工程项目找出工程项目J2J2使用的各种零件的名称及其数量。使用的各种零件的名称及其数量。SELECT P.PNAME,SPJ.QTYSELECT P.PNAME,SPJ.QTY FROM P,SPJ FROM P,SPJ WHERE P.PNO=SPJ.PNO AND SPJ.JNO=WHERE P.PNO=SPJ.PNO AND SPJ.JNO=J2J255、找出上海
23、厂商供应的所有零件号码。找出上海厂商供应的所有零件号码。SELECT DISTINCT PNO SELECT DISTINCT PNO FROM SPJ FROM SPJ WHERE SNO IN(SELECT SNO WHERE SNO IN(SELECT SNO FROM S FROM S WHERE CITY=WHERE CITY=上海上海)2166、找出使用上海产的零件的工程名称。找出使用上海产的零件的工程名称。SELECT JNAMESELECT JNAME FROM J,SPJ,S FROM J,SPJ,S WHERE J.JNO=SPJ.JNO AND SPJ.SNO=S.SNO
24、 WHERE J.JNO=SPJ.JNO AND SPJ.SNO=S.SNO AND S.CITY=AND S.CITY=上海上海 SELECT JNAMESELECT JNAME FROM J FROM J WHERE JNO IN(SELECT JNO WHERE JNO IN(SELECT JNO FROM SPJ,S FROM SPJ,S WHERE SPJ.SNO=S.SNO WHERE SPJ.SNO=S.SNO AND S.CITY=AND S.CITY=上海上海)2277、找出没有使用天津产的零件的工程号码。找出没有使用天津产的零件的工程号码。SELECT JNO SELECT
25、 JNO FROM J FROM JWHERE NOT EXISTS WHERE NOT EXISTS(SELECT*(SELECT*FROM SPJ FROM SPJ WHERE SPJ.JNO=J.JNO WHERE SPJ.JNO=J.JNO AND SNO IN AND SNO IN(SELECT SNO(SELECT SNO FROM S FROM S WHERE CITY=WHERE CITY=天津 天津)SELECT JNO SELECT JNO FROM J FROM JWHERE NOT EXISTS WHERE NOT EXISTS(SELECT*(SELECT*FROM
26、SPJ,S FROM SPJ,S WHERE SPJ.JNO=J.JNO WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.SNO=S.SNO AND S.CITY=AND S.CITY=天津 天津)2377、找出没有使用天津产的零件的工程号码。找出没有使用天津产的零件的工程号码。SELECT JNO SELECT JNO FROM J FROM JWHERE JNO NOT IN WHERE JNO NOT IN(SELECT JNO(SELECT JNO FROM SPJ,S FROM SPJ,S WHERE SPJ.SNO=S.SNO WHERE
27、 SPJ.SNO=S.SNO AND S.CITY=AND S.CITY=天津 天津)SELECT JNO SELECT JNO FROM J FROM JWHERE NOT EXISTS WHERE NOT EXISTS(SELECT*(SELECT*FROM SPJ,S FROM SPJ,S WHERE SPJ.JNO=J.JNO WHERE SPJ.JNO=J.JNO AND SPJ.SNO=S.SNO AND SPJ.SNO=S.SNO AND S.CITY=AND S.CITY=天津 天津)2488、把全部红色零件的颜色改成蓝色。把全部红色零件的颜色改成蓝色。UPDATE PUPDA
28、TE P SET COLOR=SET COLOR=蓝蓝 WHERE COLOR=WHERE COLOR=红红99、由由S5S5供给供给J4J4的零件的零件P6P6改为由改为由S3S3供应,请作必要的供应,请作必要的 修改。修改。UPDATE SPJUPDATE SPJ SET SNO=SET SNO=S3S3 WHERE SNO=WHERE SNO=S5S5 AND JNO=AND JNO=J4J4 AND PNO=AND PNO=P6P6 251010、从供应商关系中删除从供应商关系中删除S2S2的记录,并从供应情况关系的记录,并从供应情况关系 中删除相应的记录。中删除相应的记录。DELET
29、E DELETE DELETE DELETE FROM SPJ FROM SPJ FROM SFROM S WHERE SNO=WHERE SNO=S2S2 WHERE SNO=WHERE SNO=S2S21111、请将请将(S2(S2,J6J6,P4P4,200)200)插入供应情况关系。插入供应情况关系。INSERT INTO SPJ(SNO,JNO,PNO,QTY)INSERT INTO SPJ(SNO,JNO,PNO,QTY)V ALUES(V ALUES(S2S2,J6J6,P4P4,200),200)INSERT INTOINSERT INTO V ALUES(V ALUES(S2S2,P4P4,J6J6,200),200)