1、数据库第三章习题第3章 SQL语言习题一、单项选择题1、SQL语言就是( )得语言,易学习。A.过程化 B、非过程化 C、格式化 D、导航式2、SQL语言就是( )语言。A、层次数据库 B、网络数据库 C、关系数据库 D、非数据库3、SQL语言具有( )得功能。 A、关系规范化、数据操纵、数据控制 B数据定义、数据操纵、数据控制C、数据定义、关系规范化、数据控制 D、数据定义、关系规范化、数据操纵4、关于SQL语言,下列说法正确得就是( )。 A 数据控制功能不就是SQL语言得功能之一 B SQL采用得就是面向记录得操作方式,以记录为单位进行操作 C SQL就是非过程化得语言,用户无须指定存取
2、路径 D SQL作为嵌入式语言语法与独立得语言有较大差别5、对表中数据进行删除得操作就是( )。 A、DROP B、ALTER C、UPDATE D、DELETE6、SQL语言得数据操纵语句包括SELECT,INSERT,UPDATE与DELETE等。其中最重要得,也就是使用最频繁得语句就是( )。 A、SELECT B、INSERT C、UPDATE D、DELETE7、SQL语言具有两种使用方式,分别称为交互式SQL与( )。 A、提示式SQL B、用户式SQL C、嵌入式SQL D、解释式SQL8、SQL语言中,实现数据检索得语句就是( )。 A、SELECT B、INSERT C、UP
3、DATE D、DELETE9、下列SQL语句中,修改表结构得就是( )。 A、ALTER B、CREATE C、UPDATE D 、DELETE10.在SQL中,用户可以直接操作得就是( )。 A 基本表 B 视图 C 存储文件 D 基本表与视图11.在SQL得查询语句中,对应关系代数中“投影”运算得语句就是( )。 A WHERE B FROM C SELECT D HAVING12.在SELECT语句中,需对分组情况满足得条件进行判断时,应使用( )。 A WHERE B GROUP BY C ORDER BY D HAVING13.SQL中,与“NOT IN”等价得操作符就是( )。 A
4、 =ANY B ANY C =ALL D ALL14.视图建立后,在数据字典中存放得就是( )。 A 查询语句 B 组成视图得表得内容C 视图得定义 D 产生视图得表得定义第15到第18题基于这样得三个表即学生表S、课程表C与学生选课表SC,它们得结构如下:S(S#,SN,SEX,AGE,DEPT)C(C#,CN)SC(S#,C#,GRADE)其中:S#为学号,SN为姓名,SEX性别,AGE为年龄,DETP为系别,C#为课程号,CN为课程名,GRADE为成绩。15、检索所有比“王华”年龄大得学生姓名、年龄与性别。正确得SELECT语句就是( )。A、SELECT SN, AGE, SEX FR
5、OM S WHERE AGE(SELECT AGE FROM S WHERE SN=王华) B、SELECT SN, AGE, SEX FROM S WHERE SN=王华 C、SELECT SN,AGE,SEX FROM S WHERE AGE(SELECT AGE WHERE SN=王华)D、SELECT SN, AGE, SEX FROM S WHERE AGE王华、AGE16、检索选修课程“C2”得学生中成绩最高得学生得学号。正确得SELECT语句就是( )。 A、SELECT S# FROM SC WHEREC#=C2 AND GRADE= (SELECT GRADE FROM SC
6、 WHERE C#=C2) B、SELECT S# FROM SC WHERE C#=C2 AND GRADE IN(SELECT GRADE FROM SC WHEREC#=C2) C、SELECT S# FROM SC WHERE C#=C2 AND GRADE NOT IN(SELECT GRADE FROM SC WHERE C#=C2) D、SELECT S# FROM SC WHERE C#=C2 AND GRADE=ALL (SELECT GRADE FROM SC WHERE C#=C2)17、检索学生姓名及其所选修课程得课程号与成绩。正确得SELECT语句就是( )。 A、S
7、ELECT S、SN,SC、C#,SC、GRADE FROM S WHERE S、S#=SC、S#B、SELECT S、SN, SC、C#, SC、GRADE FROM SC WHERE S、S#=SC、GRADE C、SELECT S、SN, SC、C# , SC、GRADE FROM S, SC WHERE S、S#=SC、S# D、SELECT S、SN, SC、C#, SC、GRADE FROM S, SC 18.检索选修四门以上课程得学生总成绩(不统计不及格得课程),并要求按总成绩得降序排列出来。正确得SELECT得语句就是( )。 A、SELECT S#, SUM (GRADE)
8、FROM SC WHERE GRADE=60 GROUP BY S# ORDER BY 2 DESC HAVING COUNT (*)=4 B、SELECT S#, SUM (GRADE) FROM SC WHERE GRADE=60 GROUP BY S# HAVING COUNT (*)=4 ORDER BY 2 DESCC、 SELECT S#, SUM (GRADE) FROM SC WHERE GRADE=60 HAVING COUNT (*)=4 GROUP BY S# ORDER BY 2 DESC D、 SELECT S#, SUM (GRADE) FROM SC WHERE
9、GRADE=60 ORDER BY 2 DESC GROUP BY S# HAVING COUNT (*)=419.假定学生关系就是S(S#,SNAME,SEX,AGE),课程关系就是C(C#,CNAME,TEACHER),学生选课关系就是SC(S#,C#,GRADE)。要查找选修“PUTER”课程得:“女”学生姓名,将涉及到关系( )。A、S B、SC, C C、S, SC D 、S,C,SC20.下面得数据库得表中,若职工表得主关键字就是职工号,部门表得主关键字就是部门号,SQL操作( )不能执行。 职工表 部门表职工号职工名部门号工资001李红01580005刘军01670025王芳 0
10、3720038张强02650部门号部门名主任01人事处 高平02财务处蒋华 03教务处许红04学生处杜琼A. 从职工表中删除行(025,王芳,03,720) B. 将行(005,乔兴,04,750)插入到职工表中C. 将职工号为001得工资改为700D. 将职工号为038得部门号改为0321.若用如下得SQL语句创建一个student表:CREATE TABLE student(NO CHAR(4) NOT NULL, NAME CHAR(10) NOT NULL, SEX CHAR(2), AGE INT),可以插到student表中得就是( )。A、(1031,曾华,男,23) B、(10
11、31,曾华,NULL,NULL)C、(NULL,曾华,男,23) D、(1031,NULL ,男,23)22.数据库中建立索引得目得就是为了( )。 A 加快建表速度 B 加快存取速度 C 提高安全性 D 节省存储空间23.视图就是数据库系统三级模式中得( )。 A 外模式 B 模式 C 内模式 D 模式映像24.下列说法不正确得就是( )。 A 基本表与视图一样,都就是关系 B 可以使用SQL对基本表与视图进行操作 C 可以从基本表或视图上定义视图 D 基本表与视图中都存储数据二、综合题1、已知关系R如图所示 RA BC9797979898989999b1b2b3b1b2b3b1b28492
12、987284958894 图 关系R试用SQL语言实现下列操作:(1) 按属性A分组,求出每组中在属性C上得最大值与最小值,且将它们置于视图RVE中。Create view RVE(A,CMAX,CMIN)AsSelect max(C),min(C)From RGroup by A;(2) 在视图RVE中查询属性A=98得记录。Select *From RVEWhere A=98;2.已知学生表S与学生选课表SC其关系模式如下:S(SNO,SN,SD, PROV);SC(SNO,CN,GR),其中SNO为学号,SD为系名,PROV为省区,CN为课程名,GR为分数。试用SQL语言实现下列操作:(
13、1) 查询“信息系”得学生来自哪些省区。Select DISTINCT PROVFrom SWhere SD=信息系;(2) 按分数降序排序,输出“英语系”学生选修了“计算机”课程得学生得姓名与分数。Select SN,GRFrom S,SCWhere S、SNO=SC、SNO AND SD=英语 AND CN=计算机Group by GR DESC;3.设有学生表S(SNO,SN)(SNO为学生号,SN为姓名)与学生选修课程表SC(SNO,CNO,CN,G)(CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各操作:(1)创建一个视图V-SSC(SNO,SN,CNO,CN,G)
14、。Create view V-SSC(SNO,SN,CNO,CN,G)ASSelect S、SNO, S、SN, SCO, SC, SC、GFrom S, SCWhere S、SNO=SC、SNO(2)从视图V-SSC上查询平均成绩在90分以上得SNO与平均分。Select SNO,AVG(G)From V-SSCGroup by SNOHaving AVG(G)4.设有关系模式:S(SN,SNAME,CITY)其中,S代表供应商,SN,代表供应商号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN;P(PN,PNAME,COLOR,WEIGHT)其中P代表零件,PN代表零件号
15、,PNAME代表零件名,COLOR为零件颜色,WEGHT为零件重量,主关键字为PN;J(JN,JNAME,CITY)其中J表示工程,JN为工程编号,JNAME为工程名,CITY为工程所在城市,主关键字为JN。如下图所示表示供应商(S)-零件(P)-工程(J)数据库表,写出实现以下各题功能得SQL语句:SPJSNPNJNQTYS1S1S2S2S2S2S2S2S2S2S3S3S4S4S5S5S5S5S5S5S5S5S5S5P1P1P3P3P3P3P3P3P3P3P3P4P6P6P2P2P5P5P6P1P3P4P5P6J1J4J1J2J3J4J5J6J7J2J1J2J3J7J2J4J5J7J2J4J
16、4J4J4J420070040020020050060040080010020050030030020010050010020010001200800400500SNSNAMECITYS1S2 S3S4S5上海北京北京上海南京 S PPNPNAMECOLORWEIGHT红绿蓝红蓝绿121820131115J JNJNAMECITYJ1J2J3J4J5J6J7JN1JN2JN3JN4JN5JN6JN7上海广州南京南京上海武汉上海(1) 取出工程得全部细节。Select *From J(2) 取出所在城市为上海得所有工程得全部细节。Select *From JWhere CITY=上海;(3) 取
17、出重量最轻得零件代号。Select PNFrom PWhere WEIGHT=(Select MIN (WEIGHT)From P );(4) 取出为工程J1提供零件得供应商代号。Select SNFrom SPJWhere JN=J1;(5) S(SN,SNAME,CITY)P(PN,PNAME,COLOR,WEIGHT)J(JN,JNAME,CITY)SPJ(SN,PN,JN,QTY)取出为工程J1提供零件P1得供应商代号。Select SNFrom SPJWhere JN=J1 AND PN=P1;(6) 取出由供应商S1提供零件得工程名称。Select J、JNAMEFrom SPJ,
18、 JWhere SPJ、JN=J、JN AND SPJ、SN=S1;(7) 取出供应商S1提供得零件得颜色。Select Distinct P、COLORFrom SPJ, PWhere SPJ、PN=P、PN AND SPJ、SN=S1;(8) 取出为工程J1或J2提供零件得供应商代号。Select Distinct SNFrom SPJWhere JN=J1 OR JN=J2;(9) 取出为工程J1提供红色零件得供应商代号。Select Distinct SPJ、SNFrom SPJ, PWhere SPJ、PN=P、PN AND SPJ、JN=J1 AND P、COLOR=红;(10)
19、取出为所在城市为上海得工程提供零件得供应商代号。Select DISTINCT SPJ、SNFrom J, SPJWhere J、JN=SPJ、JN AND J、CITY=上海;(11) 取出为所在城市为上海或北京得工程提供红色零件得供应商代号。Select SPJ、SNFrom P, J, SPJWhere J、JN=SPJ、JNO AND P、PN=SPJ、PN AND P、COLOR=红AND (J、CITY=上海OR J、CITY=北京);(12) 取出供应商与工程所在城市相同得供应商提供得零件代号。Select DISTINCT SPJ、PNFrom S, J, SPJ Where
20、J、JN=SPJ、JN AND S、SN=SPJ、SN AND J、CITY=S、CITY(13) 取出上海得供应商提供给上海得任一工程得零件得代号。Select SPJ、PN From S, J, SPJWhere J、JN=SPJ、JN AND S、SN=SPJ、SN AND J、CITY=上海 AND S、CITY=上海;(14) 取出由供应商S1提供零件得工程得代号。Select Distinct SPJ、JNFrom S,P,SPJWhere S、SN=SPJ、SN AND P、PN=SPJ、PN AND S、SN=S1;(15) 取出所有这样得一些二元组,使得第1个城市得供应商为第
21、2个城市得工程提供零件。Select Distinct S、CITY,J、CITYFrom S, J, SPJWhere S、SN=SPJ、SN AND J、JN=SPJ、JN ;(16) 把零件P2得重量增加5,颜色改为黄色。UPDATE PSET WEIGHT=WEIGHT+5, COLOR=黄Where PN=P2;(17) 将没有供货得所有工程项目从J表中删除。Delete From JWhere JN not in( Select *From SPJ);(18) 查询提供全部零件得供应商名。Select SNAME From SWhere SNO IN (SELECT SNOFROM
22、 SPJ);(19) 查询这样得工程项目号:该工程项目使用P1零件得平均使用量大于工程项目J1使用得任何一种零件得最大数量。SELECT JNOFROM SPJWHERE SPJ、PNO=P1GROUP BY JNOHAVING AVG (QTY)ALL(SELECT QTYFROM SPJWHERE SPJ、JNO =J1);(20)定义一个视图,它由所有这样得工程项目(工程项目号与所在城市名称)组成:它们由供应商S1供货且使用零件P1。CREAT VIEW JN,JCITYASSelect J、JN,J、CITYFrom J, SPJWhere J、JN=SPJ、JN AND SPJ、SN
23、=S1 AND SPJ、PN=P1;5.假设有如下4个样本表: student (学生信息表)NONAMESEXBIRTHDAYCLASS108105107101109103曾华匡明王丽李军王芳陆军男男女男女男09/01/7710/02/7501/23/7602/20/76/02/10/7506/03/74950339503195033950339503195031teacher (教师信息表)NONAMESEXBIRTHDAYPROFDEPART804856825831李成张旭王萍刘冰男男女女12/02/5803/12/6905/05/7208/14/77副教授讲师助教助教计算机系电子工程系
24、计算机系电子工程系 course (课程表) score (成绩表)CNOCNAMETNO3-1053-2456-1669-888计算机导论操作系统数字电路高等数学825804856100NOCNODEGREE1031053-2453-2458675(1) Student(NO,NAME,SEX,BIRTHDAY,CLASS)Teacher(NO,NAME,SEX,BIRTHDAY,PROF,DEPART)Course(CNO,CNAME,TNO)Score(NO,CNO,DEGREE)列出至少有2名男生得班号。Select CLASSFrom studentWhere SEX=男 GROUP
25、 BY CLASSHAVING COUNT(*)2(2) 显示student表中不姓“王”得同学记录。SELECT *FROM STUDENTWHERE NAME NOT LIKE王%;(3) 显示student表中每个学生得姓名与年龄。SELECT NAME, 2017-YEAR(birthday)FROM STUDENT;(4) 显示student表中最大与最小得birthday日期值。SELECT NAME,MAX(BIRTHDAY),MIN(BIRTHDAY)FROM STUDENT;(5) 以班号与年龄从大到小得顺序显示student表中得全部记录。SELECT *FROM STUD
26、ENTORDER BY CLASS,2017-YEAR(BIRTHDAY)DESC(6) 显示“男”教师及其所上得课程。SELECT TEACHER、NAME,COURSE、NAMEFROM TEACHER,COURSEWHERE TEACHER、NO=COURSE、TNO AND TEACHER、SEX=男;(7) 列出最高分同学得no、cno与degree列。SELECT NO,CNO,DEGREEFROM SCOREWHERE DEGREE=(SELECT MAX(DEGREE)FROM SCORE)(8) 列出与“李军”同性别得所有同学得name。SELECT NAMEFROM STU
27、DENTWHERE SEX= (SELECT SEX FROM STUDENT WHERE NAME=李军);(9) 列出与“李军”同性别并同班得同学name。SELECT NAMEFROM STUDENTWHERE SEX = (SELECET SEX FROM STUDENT WHRER NAME=李军)AND CLASS=(SELECT CLASSFROM STUDENTWHERE NAME=李军);(10) 列出所有选修“计算机导论”课程得“男”同学得成绩表。SELECT STUDENT、NO,COUSEO,SCORE、DEGREEFROM STUDENT,COURSE,SCOREWHERE STUDENT、NO=SCORE、NO AND COURSEO=SCOREO AND COURSEAME=计算机导论 AND STUDENT、SEX=男;6、设职工-社团数据库有三个基本表:职工(职工号,姓名,年龄,性别);社会团体(编号,名称,负责人号,活动地点);参加(职工号,编号,参加日期);试用SQL语句完成下列操作: 1)建立下列两个视图。社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别);参加人情况(职工号,姓名,社团编号,社团名称,参加日期)CREATE VIEW 社团负责人(编号,名称,负责人职工号,负责人姓名,负责人性别)ASSELECT 编号,名称,负
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1