1、关系数据库标准语言SQL练习题关系数据库标准语言SQL练习题第3章 关系数据库标准语言SQL一单项选择题SQL语言是的语言,易学习。A过程化 B非过程化 C格式化 D导航式B2SQL语言是语言。A层次数据库 B网络数据库 C关系数据库 D非数据库3SQL语言具有的功能。A关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制C数据定义、关系规范化、数据控制C数据定义、关系规范化、数据操纵4SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是。ASELECT BINSERT CUPDATE DDELETE5在关系代数运算
2、中,五种基本运算为。A并、差、选择、投影、自然连接 B并、差、交、选择、投影C并、差、选择、投影、乘积 D并、差、交、选择、乘积6 SQL语言中,实现数据检索的语句是。ASELECT BINSERT CUPDATE DDELETE7下列SQL语句中,修改表结构的是。AALTER BCREATE CUPDATE DINSERT第8到第11题基于这样的三个表,即学生表S、课程表C和学生选课表SC,他们的结构如下:S(S#,SN,SEX,AGE,DEPT); C(C#,CN); SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程CN为课
3、程名,GPADE为成绩。8检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是A。ASELECT SN,AGE,SEXFROM S WHERE AGE(SELECT AGE FROM S WHERE SN=“王华”)BSELECT SN,AGE,SEXFROM S WHERE SN=“王华”CSELECT SN,AGE,SEXFROM S WHERE AGE(SELECT AGE WHERE SN=“王华”)DSELECT SN,AGE,SEXFROM S WHERE AGE王华AGE9检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是D。ASELE
4、CT S# FORM SCWHERE C#=“C2”AND GRADE=(SELECT GRADE FORM SC WHERE C#=“C2”)BSELECT S# FORM SCWHERE C#=“C2”AND GRADE IN(SELECT GRADE FORM SC WHERE C#=“C2”)CSELECT S# FORM SCWHERE C#=“C2”AND GRADE NOT IN(SELECT GRADE FORM SC WHEREC#=“C2”)DSELECT S# FORM SCWHERE C#=“C2”AND GRADE=ALL(SELECT GRADE FORM SC W
5、HEREC#=“C2”)10检索学生姓名及其所选修课程号和成绩。正确的SELECT语句是C。SELECT SSN,SCC#,SCGRADEFROM S WHERE SS#=SCS#BSELECT SSN,SCC#,SCGRADEFROM S WHERE SS#=SCGRADECSELECT SSN,SCC#,SCGRADEFROM S,SC WHERE SS#=SCS#DSELECT SSN,SCC#,SCGRADEFROM SSC11检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是B。ASELECT S#,SUM(GRADE)FR
6、OM SC WHERE GRADE=60 GROUP BY S# ORDER BY 2 DESCHAVING COUNT(*)=4SELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 GROUP BY S# HAVING COUNT(*)=4ORDER BY 2 DESCSELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 HAVING COUNT(*)=4 GROUP BY S#ORDER BY 2 DESCSELECT S#,SUM(GRADE)FROM SC WHERE GRADE=60 ORDER BY 2 DESC GR
7、OUP BY S#HAVING COUNT(*)=412假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选修课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系D。AS BSC,C CS,SC DS,C,SC13如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作不能执行。职工表 部门表A从职工表中删除行(025,王芳,03,720)B将行(005,乔兴,04,750)插入到职工表中C将职工号为001工资改为700D将职工号为038部门号改为03B1
8、4若用如下的SQL语句创建一个student表:CREATE TABLE student(NO C(4) NOT NULL,NAME C(8) NOT NULL,SEX C(2),AGE N(2);可以插入到student表中的是。A(1031,曾华,男,23) B(1031,曾华,NULL,NULL)C(NULL,曾华,男,23) D(1031,NULL,男,23) SELECT B,D,E FROM H WHERE C=“C2”试给出: 视图。 对视图的查询结果。解:本题的结果如图所示。视图 对视图的查询结果ABCDEa1b1c1d1e1a2b2c2d2e2a3b3c2d2e2BDEb2d
9、2e2b3d2e28已知关系R如图所示。 RABC97b184a297b292a397b39898b17298b28498b39599b18899b294试用SQL语句实现下列操作: 按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RAE中。 在视图RAE中查询属性A“8”记录。解 CREATE VIEW RAE(A,CMAX,CMIN)AS SELECT A,MAX(C),MIN(C) FROM R GROUP BY A; SELECT * FROM RAE WHERE A=“98”9已知学生表S和学生选课表SC。其关系模式如下:S(SNO,SN,SD,PROV)SC(S
10、NO,CN,GR)其中:SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。试用SQL语言实现下列操作: 查询“信息系”的学生来自哪些省区。 按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。解: SELECT DISTINCT PROV FROM S WHERE SD=“信息系” SELECT SN,GR FROM S,SCWHERE SD=“英语系”AND CN=“计算机”AND SSNO=SCSNOORDWR BY GR DESC;10设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,
11、G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题: 建立一个视图V-SSC(SNO,SN,CNO,CN,G),并按CNO升序排序。 从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。解: CREATE VIEW V-SSC(SNO,SN,CNO,CN,G)AS SELECT SSNO,SSN,CNO,SCCN,SCGFROM S,SC WHERE SSNO=SCSNO ORDWR BY CNO SELECT SN,CN,GFROM V-SSC GROGP BY SNO HAVING AVG(G)9011设有关系模式:SB(SN,SNAME,CITY)其中:S
12、B表示供应商,SN为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN。PB(PN,PNAME,COLOR,WEIGHT)其中:P表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PN。JB(JN,JNAME,CITY)其中:JB表示工程,JN为工程编号,JNAME为工程名字,CITY为工程式所在城市,主关键字为JN。SPJB(SN,PN,JN,QTY)其中:SPJ表示供应关系,SN是为指定工程提供零件的供应商代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为SN,PN,JN,外关键
13、字为SN,PN,JN。如图所示表示供应商(S)零件(P)工程(J)数据库表,写出实现以下各题功能的SQL语句:(1)取出所有工程的全部细节: SELECT * FROM JB TO SCREEN; JN JNAME CITY-J1 JN1 上海J2 JN2 广州J3 JN3 南京J4 JN4 南京J5 JN5 上海J6 JN6 武汉J7 JN7 上海(2)取出所在城市为上海的所有工程的全部细节; SELECT * FROM JB WHERE CETY=“上海”TO SCREEN;JN JNAME CITY-J1 JN1J5 JN5J7 JN7(3)取出重量最轻的零件代号; SELECT PN
14、FROM PBWHERH WEIGHT= (SELECT MIN(WEIGHT) FROM PB)TO SCREEN;PNP5(4)取出为工程式1提供零件的供应商代号;SELECT SN FROM SPJB WHERE JN=“J1”TO SCREEN;SNS1S2S3(5)取出为工程J提供P的供应商代号;SELECT SN FROM SPJBWHERE JN=“J1”AND PN=“P1” TO SCREEN;SNS1(6)取出由供应商S提供零件的工程名称;SELECT JBJNAME FROM JB,SPJBWHERE JBJN=SPJBJN AND SPJBSN=“S1” TO SCRE
15、EN;JNAMEJN1JN4(7)取出供应商S1提供的零件的颜色;SELECT DISTINCT PBCOLOR FROM PB,SPJBWHERE PBPN=SPJBPN AND SPJBSN=“1”TO SCREEN;COLOR红(8)取出为工程J或J提供零件的供应商代号;SELECT DISTINCT SN FROM SPJBWHERE JN=“J1” OR JN=“J2”TO SCREEN;SNS1S2S3S5 (9)取出为工程提供红色零件的供应商代号;SELECT DISTINCT SPJBSN FROM SPJB,PBWHERE PBPN=SPJBPN AND SPJBJN=“J1
16、”AND PBCOLOR=“红” TO SCREEN;SNS1(10)取出为所在城市为上海的工程提供零件的供应商代号;SELECT DISTINCT SPJBSN FROM SPJB,JBWHERE SPJBJN=JBJN AND JBCITY=“上海”TO SCREEN;SNS1S2S3S4S5(11)取出为所在城市为上海或北京的工程提供红色零件的供应商代号;SELECT SPJBSN FROM PB,JB,SPJBWHERE SPJBPN=PBPN AND JBJN=SPJBJN AND PBCOLOR=红AND(JBCITY=“上海”OR JBCITY=“北京”TO SCREEN;SNS
17、1S4(12)取出供应商与工程所在城市相同的供应商提供的零件代号;SELECT DISTINCT SPJBPN FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITY=JBCITY TOSCREEN; PN P1 P2 P3 P4 P5 P6(13)取出上海的供应商提供给上海的任一工程的零件的代号;SELECT SPJBPN FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITY=“上海” ANDJBCITY=“上海” TO SCREEN; PN P1 P6(14)取
18、出至少由一个和工程式不在同一城市的供应商提供零件的工程代号;SELECT DISTINCT SPJBJN FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITYJBCITY TO SCREEN; JN J1 J2 J3 J4 J5 J6 J7(15)取出上海供应商不提供任何零件的工程的代号SELECT DISTINCT JN FROM SPJBWHERE JN NOT IN(SELECT DISTINCT SPJBJN FROM SB,SPJBWHERE SBSN=SPJBSN AND SBCITY=“上海”)TO SCREEN;
19、 JN J2 J5 J6(16)取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件;SELECT DISTINCT SPJBSN FROM PB,SPJBWHERE SPJBPN IN(SELECT SPJBPN FROM SPJB,SB,PBWHERE SBSN=SPJBSN AND PBPN=SPJBPN AND PBCOLOR=“红” TOSCREEN; SN S1 S2 S3 S4 S5(17)取出由供应商S1提供零件的工程的代号:SELECT DISTINCT SPJBJN FROM SB,PB,SPJBWHIERE SBSN=SPJBSN AND PBPN=S
20、PJBPN AND SBSN=“S1” TO SCREEN; JNJ1J4(18)取出所有这样的一些二元组,使得第1个城市的供应商为第2个城市的工程提供零件;SELECT DISTINCT SBCITY,JBCITY FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN TO SCREEN; CITY_A CITY_B-北京 广州北京 南京北京 上海北京 武汉南京 广州南京 南京南京 上海上海 南京上海 上海-(19)取出所有这样的三元组,使得第1个城市的供应商为第2个城市的工程提供指定的零件;SELECT DISTINCT SBCITY,SPJBP
21、N,JBCITY FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN TO SCREEN; CITY_A PN CITY_B- 北京 P3 广州 北京 P3 南京 北京 P3 上海 北京 P3 武汉 北京 P4 广州 北京 P5 广州 南京 P1 南京 南京 P2 广州 南京 P2 南京 南京 P3 南京 南京 P4 南京 南京 P5 南京 南京 P5 上海 南京 P6 广州 南京 P6 南京 上海 P1 南京 上海 P1 上海 上海 P6 南京 上海 P6 上海-(20)重复(19)题,但不检索两个CITY值相同的三元组。SELECT DISTI
22、NCT SBCITY,SPJBPN,JBCITY FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITYJBCITY TOSCREEN; CITY_A PN CITY_B- 北京 P3 广州 北京 P3 南京 北京 P3 上海 北京 P3 武汉 北京 P4 广州 北京 P5 广州 南京 P2 广州 南京 P5 上海 南京 P6 广州 上海 P1 南京 上海 P6 南京-12有样本表student、teacher、course 和score(如图),写出实现以下各题功能的SQL语句,并给出执行结果。Student score- -N
23、O NAME SEX BIRTHDAY CLASS NO CNO DEGREE108 曾华 男 09/01/77 95033 103 3-245 86105 匡明 男 10/02/75 95031 105 3-245 75107 王丽 女 01/23/76 95033 109 3-245 68101 李军 男 02/20/76 95033 103 3-105 92109 王芳 女 02/10/75 95031 105 3-105 88103 陆军 男 06/03/74 95031 109 3-105 76 101 3-105 64 101 3-105 91 101 3-105 78 101 6
24、-166 85 101 6-166 79 101 6-166 81teacher course- -NO NAME SEX BRITHDAY PROF DEPART CNO CNAME TNO804 李诚 男 12/02/58 副教授 计算机 3-103 计算机导论 825856 张旭 男 03/12/69 讲师 电子 3-245 操作系统 825825 王萍 女 05/05/72 助教 计算机 6-166 数字电路 825831 刘冰 女 08/14/77 助教 电子 9-888 高等数学 825 上列出至少有2名男生的班号。SELECT class FROM student WHERE s
25、ex=“男”GROUP BY class HAVING COUNT(*)=2 TO SCREEN;CLASS-9503195033- 屏幕显示student表中不姓“王”的同学记录。SELECT * FROM studen WHERE name not like “王%” TO SCREEN; NO NAME SEX BIRTHDAY CLASS- 108 曾华 男 09/01/76 95033 105 匡明 男 10/02/75 95031 101 李军 男 02/20/76 95033 103 陆君 男 06/03/74 95031- 屏幕显示student表示每个学生的姓名和年龄。SELECT name as “姓名”,year(date()-year(birthday)as“年龄”FROM student TO SCREEN; 姓名 年龄- 曾华 23 匡明 24 王丽 23 李军 23 王芳 24 陆君 25- 屏幕显示student表中最大和最小的birthday日期值。SELECT name,max(birthday),min(birthday) FROM student TO SCREEN;NAME MAX_BIRTHDAY MIN_BIRTHDAY-陆君 770901 740603-
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1