《2022年数据库第三章习题.pdf》由会员分享,可在线阅读,更多相关《2022年数据库第三章习题.pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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、DELETE 6、SQL 语言的数据操纵语句包括SELECT,INSERT,UPDATE 与 DELETE 等。其中最重要的 ,也就是使用最频繁的语句就是( )。A、SELECT B、INSERT C、UPDATE D、DELETE 7、SQL 语言具有两种使用方式 ,分别称为交互式SQL 与( )。A、提示式 SQL B、用户式 SQL C、嵌入式 SQL D、解释式 SQL 8、SQL 语言中 ,实现数据检索的语句就是( )。A、S
3、ELECTB、INSERT C、UPDATE D、DELETE 9、下列 SQL 语句中 ,修改表结构的就是 ( )。A、ALTER B、CREATE C、UPDATE D 、DELETE 10.在 SQL 中,用户可以直接操作的就是 ( )。A 基本表B 视图C 存储文件D 基本表与视图11.在 SQL 的查询语句中 ,对应关系代数中“投影”运算的语句就是( )。A WHERE B FROM C SELECT D HAVING 12.在 SELECT 语句中 ,需对分组情况满足的条件进行判断时,应使用 ( )。A WHERE B GROUP BY C ORDER BY D HAVING13.
4、SQL 中,与“NOT IN”等价的操作符就是 ( )。A =ANY B ANY C =ALL D ALL 14.视图建立后 ,在数据字典中存放的就是 ( )。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 12 页 - - - - - - - - - - 数据库第三章习题A 查询语句B 组成视图的表的内容C 视图的定义D 产生视图的表的定义第 15 到第 18题基于这样的三个表即学生表S、课程表 C 与学生选课表 SC,它们的结构如下 : S(S#,SN,SEX,AGE,DEPT) C(C#
5、,CN) SC(S#,C#,GRADE) 其中:S#为学号 ,SN 为姓名 ,SEX 性别,AGE 为年龄 ,DETP 为系别,C#为课程号 ,CN为课程名 ,GRADE 为成绩。15、检索所有比 “ 王华” 年龄大的学生姓名、 年龄与性别。 正确的 SELECT 语句就是( )。A、SELECT SN, AGE, SEX FROM 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
6、WHERE SN= 王华)D、SELECT SN, AGE, SEX FROM S WHERE AGE王华、 AGE 16、检索选修课程 “C2”的学生中成绩最高的学生的学号。正确的SELECT 语句就是( )。A、SELECT S# FROM SC WHEREC#=C2 AND GRADE = (SELECT GRADE FROM SC WHERE C#=C2)B、SELECT S# FROM SC WHERE C#=C2 AND GRADE IN (SELECT GRADE FROM SC WHEREC#=C2)C、SELECT S# FROM S C WHERE C#= C2 AND G
7、RADE 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、SELECT 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#
8、, SC、GRADE FROM S, SC WHERE S、S#=SC、S# D、SELECT S、SN, SC、C#, SC、GRADE FROM S, SC 18.检索选修四门以上课程的学生总成绩(不统计不及格的课程 ),并要求按总成绩的降序排列出来。正确的SELECT 的语句就是 ( )。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 12 页 - - - - - - - - - - 数据库第三章习题A、 SELECT S#, SUM (GRADE) FROM SC WHERE GRAD
9、E=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 DESC C、 SELECT S#, SUM (GRADE) FROM SC WHERE GRADE=60 HA VING COUNT (*)=4 GROUP BY S# ORDER BY 2 DESC D、 SELECT S#, SUM (GRADE) FROM SC WHERE GRADE=60 ORDER
10、BY 2 DESC GROUP BY S# HAVING COUNT (*)=4 19. 假 定 学 生 关 系 就 是S(S#,SNAME,SEX,AGE), 课 程 关 系 就 是C(C#,CNAME,TEACHER), 学生选课关系就是SC(S#,C#,GRADE)。要查找选修“COMPUTER” 课程的: “ 女” 学生姓名 ,将涉及到关系 ( )。A、S B、SC, C C、S, SC D 、S,C,SC 20.下面的数据库的表中,若职工表的主关键字就是职工号,部门表的主关键字就是部门号 ,SQL 操作( )不能执行。职工表部门表职工号职工名部门号工资001 李红01 580 005
11、 刘军01 670 025 王芳03 720 038 张强02 650 A. 从 职 工 表 中 删 除 行 ( 025, 王芳, 03,720) B. 将行( 005, 乔兴, 04,750)插入到职工表中C. 将职工号为 001的工资改为 700 D. 将职工号为 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, 曾华 ,
12、男,23) B、( 1031, 曾华,NULL,NULL)C、(NUL L, 曾华, 男, 23) D、(1031,NULL , 男 ,23) 22.数据库中建立索引的目的就是为了( )。A 加快建表速度B 加快存取速度C 提高安全性D 节省存储空间23.视图就是数据库系统三级模式中的( )。A 外模式B 模式C 内模式D 模式映像24.下列说法不正确的就是 ( )。A 基本表与视图一样 ,都就是关系部门号部门名主任01 人事处高平02 财务处蒋华03 教务处许红04 学生处杜琼精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - -
13、- - - - -第 3 页,共 12 页 - - - - - - - - - - 数据库第三章习题B 可以使用 SQL 对基本表与视图进行操作C 可以从基本表或视图上定义视图D 基本表与视图中都存储数据二、综合题1、已知关系 R 如图所示R A B C 97 97 97 98 98 98 99 99 b1 b2 b3 b1 b2 b3 b1 b2 84 92 98 72 84 95 88 94 图 关系 R 试用 SQL 语言实现下列操作 : (1) 按属性 A 分组,求出每组中在属性 C上的最大值与最小值 ,且将它们置于视图 RVE 中。Create view RVE(A,CMAX,CMI
14、N) As Select max(C),min(C) From R Group by A; (2) 在视图 RVE 中查询属性 A=98的记录。Select * From RVE Where A=98 ; 2.已知学生表 S 与学生选课表 SC 其关系模式如下 : S(SNO,SN,SD, PROV);SC(SNO,CN,GR),其中 SNO 为学号 ,SD 为系名 ,PROV 为省区,CN 为课程名 ,GR 为分数。试用 SQL 语言实现下列操作 : (1) 查询“信息系”的学生来自哪些省区。Select DISTINCT PROV From S Where SD=信息系 ; (2) 按分数
15、降序排序 ,输出“英语系”学生选修了“计算机”课程的学生的姓精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 12 页 - - - - - - - - - - 数据库第三章习题名与分数。Select SN,GR From S,SC Where S、SNO=SC、SNO AND SD=英语 AND CN=计算机Group by GR DESC; 3.设 有 学 生表S(SNO,SN)(SNO 为 学 生号 ,SN 为 姓 名) 与 学 生 选 修 课 程 表SC(SNO,CNO,CN,G)(CNO
16、 为课程号 ,CN 为课程名 ,G 为成绩 ),试用 SQL 语言完成以下各操作 : (1)创建一个视图 V-SSC(SNO,SN,CNO,CN,G)。Create view V-SSC(SNO,SN,CNO,CN,G) AS Select S、SNO, S、SN, SC、CNO, SC、CN, SC、G From S, SC Where S、SNO=SC、SNO (2)从视图 V-SSC上查询平均成绩在90 分以上的 SNO 与平均分。Select SNO,AVG(G) From V-SSC Group by SNO Having AVG(G) 4.设有关系模式 : S(SN,SNAME,C
17、ITY) 其中 ,S 代表供应商 ,SN,代表供应商号 ,SNAME 为供应商名字,CITY 为供应商所在城市 ,主关键字为 SN; P(PN,PNAME,COLOR,WEIGHT) 其中 P代表零件,PN代表零件号 ,PNAME 代表零件名,COLOR 为零件颜色 ,WEGHT 为零件重量 ,主关键字为 PN; J(JN,JNAME,CITY) 其中 J 表示工程,JN 为工程编号 ,JNAME 为工程名 ,CITY 为工程所在城市 ,主关键字为 JN。如下图所示表示供应商(S)-零件 (P)-工程(J)数据库表 ,写出实现以下各题功能的SQL 语句:精品资料 - - - 欢迎下载 - -
18、- - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 12 页 - - - - - - - - - - 数据库第三章习题S (1) 取出工程的全部细节。Select * From J (2) 取出所在城市为上海的所有工程的全部细节。Select * From J Where CITY=上海 ; (3) 取出重量最轻的零件代号。Select PN From P Where WEIGHT= (Select MIN (WEIGHT) From P ); (4) 取出为工程 J1 提供零件的供应商代号。Select SN From SPJ Whe
19、re JN= J1 ; (5) 取出为工程 J1 提供零件 P1的供应商代号。Select SN From SPJ Where JN= J1 AND PN= P1 ; (6) 取出由供应商 S1提供零件的工程名称。Select J 、JNAME From SPJ, J Where SPJ 、JN=J、JN AND SPJ、SN=S1; (7) 取出供应商 S1提供的零件的颜色。Select Distinct P、COLOR From SPJ, P Where SPJ 、PN=P、PN AND SPJ、SN= S1 ; (8) 取出为工程 J1 或 J2 提供零件的供应商代号。Select Di
20、stinct SN From SPJ SN SNAME CITY S1 S2 S3 S4 S5 上海北京北京上海南京P PN PNAME COLOR WEIGHT 红绿蓝红蓝绿12 18 20 13 11 15 J JN JNAME CITY J1 J2 J3 J4 J5 J6 J7 JN1 JN2 JN3 JN4 JN5 JN6 JN7 上海广州南京南京上海武汉上海S(SN,SNAME,CITY) P(PN,PNAME,COLOR,WEIGHT) J(JN,JNAME,CITY) SPJ(SN,PN,JN,QTY) SPJ SN PN JN QTY S1 S1 S2 S2 S2 S2 S2
21、S2 S2 S2 S3 S3 S4 S4 S5 S5 S5 S5 S5 S5 S5 S5 S5 S5 P1 P1 P3 P3 P3 P3 P3 P3 P3 P3 P3 P4 P6 P6 P2 P2 P5 P5 P6 P1 P3 P4 P5 P6 J1 J4 J1 J2 J3 J4 J5 J6 J7 J2 J1 J2 J3 J7 J2 J4 J5 J7 J2 J4 J4 J4 J4 J4 200 700 400 200 200 500 600 400 800 100 200 500 300 300 200 100 500 100 200 1000 1200 800 400 500 精品资料 -
22、- - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 12 页 - - - - - - - - - - 数据库第三章习题Where JN= J1 OR JN= J2 ; (9) 取出为工程 J1 提供红色零件的供应商代号。Select Distinct SPJ 、SN From SPJ, P Where SPJ 、PN=P、PN AND SPJ、JN=J1 AND P、COLOR=红 ; (10) 取出为所在城市为上海的工程提供零件的供应商代号。Select DISTINCT SPJ、SN From J, SPJ
23、 Where J、JN=SPJ 、JN AND J、CITY= 上海 ; (11) 取出为所在城市为上海或北京的工程提供红色零件的供应商代号。Select SPJ 、SN From P, J, SPJ Where J、JN=SPJ、JNO AND P、PN=SPJ 、PN AND P、COLOR=红 AND (J、CITY=上海 OR J、CITY=北京 ); (12) 取出供应商与工程所在城市相同的供应商提供的零件代号。Select DISTINCT SPJ、PN From S, J, SPJ Where J、 JN=SPJ 、 JN AND S、 SN=SPJ、 SN AND J、 CIT
24、Y=S、 CITY (13) 取出上海的供应商提供给上海的任一工程的零件的代号。Select SPJ 、PN From S, J, SPJ Where J、JN=SPJ、JN AND S、SN=SPJ、SN AND J、CITY=上海AND S、CITY= 上海 ; (14) 取出由供应商 S1提供零件的工程的代号。Select Distinct SPJ 、JN From S,P,SPJ Where S、SN=SPJ 、SN AND P、PN=SPJ 、PN AND S、SN=S1; (15) 取出所有这样的一些 二元组 ,使得第 1 个城市的供应商为第2 个城市的工程提供零件。Select
25、Distinct S、CITY,J、CITY From S, J, SPJ Where S、SN=SPJ 、SN AND J、JN=SPJ 、JN ; (16) 把零件 P2的重量增加 5,颜色改为黄色。UPDATE P SET WEIGHT=WEIGHT+5, COLOR= 黄Where PN=P2; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 12 页 - - - - - - - - - - 数据库第三章习题(17) 将没有供货的所有工程项目从J 表中删除。Delete From J
26、Where JN not in ( Select * From SPJ); (18) 查询提供全部零件的供应商名。Select SNAME From S Where SNO IN ( SELECT SNO FROM SPJ); (19) 查询这样的工程项目号 :该工程项目使用P1 零件的平均使用量大于工程项目 J1 使用的任何一种零件的最大数量。SELECT JNO FROM SPJ WHERE SPJ、PNO=P1 GROUP BY JNO HAVING AVG (QTY)ALL (SELECT QTY FROM SPJ WHERE SPJ、JNO =J1); (20)定义一个视图 ,它由所
27、有这样的工程项目(工程项目号与所在城市名称)组成:它们由供应商 S1供货且使用零件P1。CREAT VIEW JN,JCITY AS Select J 、JN,J、CITY From J, SPJ Where J、JN=SPJ 、JN AND SPJ、SN= S1 AND SPJ、PN= P1 ; 5.假设有如下 4 个样本表 : student (学生信息表 ) NO NAME SEX BIRTHDAY CLASS 108 105 107 101 109 103 曾华匡明王丽李军王芳陆军男男女男女男09/01/77 10/02/75 01/23/76 02/20/76/ 02/10/75 0
28、6/03/74 95033 95031 95033 95033 95031 95031 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 12 页 - - - - - - - - - - 数据库第三章习题teacher (教师信息表 ) NO NAME SEX BIRTHDAY PROF DEPART 804 856 825 831 李成张旭王萍刘冰男男女女12/02/58 03/12/69 05/05/72 08/14/77 副教授讲师助教助教计算机系电子工程系计算机系电子工程系course
29、(课程表 ) score ( 成绩表 ) CNO CNAME TNO 3-105 3-245 6-166 9-888 计算机导论操作系统数字电路高等数学825 804 856 100 (1) 列出至少有 2 名男生的班号。Select CLASS From student Where SEX= 男GROUP BY CLASS HAVING COUNT(*)2 (2) 显示 student表中不姓“王”的同学记录。SELECT * FROM STUDENT WHERE NAME NOT LIKE王% ;(3) 显示 student表中每个学生的姓名与年龄。SELECT NAME, 2017-YE
30、AR(birthday) FROM STUDENT; (4) 显示 student表中最大与最小的birthday 日期值。SELECT NAME,MAX(BIRTHDAY),MIN(BIRTHDAY) FROM STUDENT;(5) 以班号与年龄从大到小的顺序显示student表中的全部记录。SELECT * FROM STUDENT ORDER BY CLASS,2017-YEAR(BIRTHDAY)DESC (6) 显示“男”教师及其所上的课程。SELECT TEACHER、NAME,COURSE 、NAME FROM TEACHER,COURSE WHERE TEACHER 、NO=
31、COURSE、TNO AND TEACHER 、SEX= 男;NO CNO DEGREE 103 105 3-245 3-245 86 75 Student(NO,NAME,SEX,BIRTHDAY ,CLASS) Teacher(NO,NAME,SEX,BIRTHDAY ,PROF,DEPART) Course(CNO,CNAME,TNO) Score(NO,CNO,DEGREE) 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 12 页 - - - - - - - - - - 数据库第三章
32、习题(7) 列出最高分同学的no、cno与 degree列。SELECT NO,CNO,DEGREE FROM SCORE WHERE DEGREE= (SELECT MAX(DEGREE) FROM SCORE) (8) 列出与“李军”同性别的所有同学的name 。SELECT NAME FROM STUDENT WHERE SEX= (SELECT SEX FROM STUDENT WHERE NAME=李军);(9) 列出与“李军”同性别并同班的同学name 。SELECT NAME FROM STUDENT WHERE SEX = (SELECET SEX FROM STUDENT W
33、HRER NAME=李军)AND CLASS= (SELECT CLASS FROM STUDENT WHERE NAME=李军);(10) 列出所有选修“计算机导论”课程的“男”同学的成绩表。SELECT STUDENT、NO,COUSE、CNO,SCORE、DEGREE FROM STUDENT,COURSE,SCORE WHERE STUDENT 、NO=SCORE、NO AND COURSE 、CNO=SCORE、CNO AND COURSE、 CNAME= 计 算 机 导 论 AND STUDENT 、SEX= 男;6、设职工 -社团数据库有三个基本表: 职工 (职工号 ,姓名,年龄
34、,性别); 社会团体 (编号,名称,负责人号 ,活动地点 ); 参加 (职工号 ,编号,参加日期 ); 试用 SQL 语句完成下列操作 :精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 12 页 - - - - - - - - - - 数据库第三章习题1)建立下列两个视图。社团负责人 (编号,名称,负责人职工号 ,负责人姓名 ,负责人性别 ); 参加人情况 (职工号 ,姓名,社团编号 ,社团名称 ,参加日期 ) CREATE VIEW 社团负责人 (编号 ,名称 ,负责人职工号 ,负责人姓名
35、 ,负责人性别 ) AS SELECT 编号 ,名称 ,负责人 , 姓名 , 性别FROM 社会团体 ,职工WHERE 社会团体、负责任号=职工、职工号CREATE VIEW 参加人情况 (职工号 ,姓名 ,社团编号 ,社团名称 ,参加日期 ) AS SELECT 参加、职工号,职工、姓名 ,社会团体、编号,社会团体、名称,参加。参加日期FROM 职工 ,社会团体 ,参加WHERE 职工、职工号 =参加、职工号AND 参加、编号 =社会团体、编号; 2)查找参加唱歌队或篮球队的职工号与姓名。SELECT 职工号 ,姓名FROM 职工,社会团体 ,参加WHERE 职工、职工号 =参加、职工号AN
36、D 参加、编号 =社会团体、编号AND 社会团体、名称 = 唱歌队 OR 社会团体、名称 = 篮球队 ;3)查找没有参加任何团体的职工情况。SELECT * FROM 职工WHERE NOT EXISTS (SELECT * FROM 参加WHERE 参加、职工号 =职工、职工号 );4)查找参加了全部社会团体的职工情况。SELECT * FROM 职工WHERE NOT EXISTS (SELECT * FROM 参加WHERE NOT EXISTS (SELECT* FROM 社会团体WHERE 参加、职工号 =职工、职工号AND 精品资料 - - - 欢迎下载 - - - - - - -
37、 - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 12 页 - - - - - - - - - - 数据库第三章习题参加、编号 =社会团体、编号); 5)查找至少参加了职工号为“1001”的职工所参加的全部社会团体的职工号。SELECT 职工号FROM 职工WHERE NOT EXISTS( SELECT * FROM 参加参加 1 WHERE 参加 1、职工号 = 1001 AND NOT EXISTS(SELECT * FROM 参加、参加2 WHERE 参加 2、编号 =参加 1、编号AND 参加 2、职工号 =职工、职工号 )6)求每个社会团体的参加人数。SELECT COUNT( 职工号 ) FROM 参加GROUP BY 编号7)把对“社会团体”与“参加”两个表的数据查瞧、插入与删除数据的权力赋给用户李平 ,并允许她将此权力授予其她用户。GRANT SELECT,INSERT,DELECT ON 社会团体 ,参加TO 李平WITH GRANT OPTION; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 12 页 - - - - - - - - - -