第3章 关系数据库标准语言SQL_第1页
第3章 关系数据库标准语言SQL_第2页
第3章 关系数据库标准语言SQL_第3页
第3章 关系数据库标准语言SQL_第4页
第3章 关系数据库标准语言SQL_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 关系数据库标准语言SQL一单项选择题SQL语言是的语言,易学习。A过程化 B非过程化 C格式化 D导航式B2SQL语言是语言。A层次数据库 B网络数据库 C关系数据库 D非数据库C3SQL语言具有的功能。A关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制C数据定义、关系规范化、数据控制C数据定义、关系规范化、数据操纵B4SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是。ASELECT BINSERT CUPDATE DDELETEA5在关系代数运算中,五种基本运算为。A并、差、选择、投影、自然连接 B

2、并、差、交、选择、投影C并、差、选择、投影、乘积 D并、差、交、选择、乘积C6 SQL语言中,实现数据检索的语句是。ASELECT BINSERT CUPDATE DDELETEA7下列SQL语句中,修改表结构的是。AALTER BCREATE CUPDATE DINSERTA第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为课程名,GPADE为成绩。8检索所有比“王华”年龄大的学生

3、姓名、年龄和性别。正确的SELECT语句是。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>王华AGEA9检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是。ASELECT S# FORM SCWHER

4、E 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 WHEREC#=“C

5、2”)D10检索学生姓名及其所选修课程号和成绩。正确的SELECT语句是。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 SSCC11检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT语句是。ASELECT S#,SUM(GRADE)FROM SC WHE

6、RE 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

7、 ORDER BY 2 DESC GROUP BY S#HAVING COUNT(*)>=4B12假定学生关系是S(S#,SNAME,SEX,AGE),课程关系是C(C#,CNAME,TEACHER),学生选修课关系是SC(S#,C#,GRADE)。要查找选修“COMPUTER”课程的“女”学生姓名,将涉及到关系。AS BSC,C CS,SC DS,C,SCD13如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,SQL操作不能执行。职工号职工名部门号工资001李红01580005刘军0l670025王芳03720038张强02650部门号部门名主任0l人事处高平

8、02财务处蒋华03教务处许红04学生处杜琼职工表 部门表A从职工表中删除行(025,王芳,03,720)B将行(005,乔兴,04,750)插入到职工表中C将职工号为001工资改为700D将职工号为038部门号改为03B14若用如下的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)B二、填

9、空题1SQL是。结构化查询语言2SQL语言的数据定义功能包括、和。定义数据库 定义基本表 定义视图 定义索引3视图是一个虚表,它是从中导出的表。在数据库中,只存放视图的,不存视图的。一个或几个基本表 定义 视图对应的数据4设有如下关系表R、S和:R(BH,XM,XB,DWH)S(DWH,DW)T(BH,XM,XB,DWH)实现RT的语句是。实现RT的语句是。实现RT的语句是。实现RT的语句是。实现RT的语句是。实现RT的语句是。SELECT * FROM R UNION SELECT * FROM TSELECT * FROM R WHERE DWH=100SELECT XM,XB FROM

10、RSELECT X,DWH FROM R WHERE XB=“女”SELECT RBH,RXM,RXB,RDWH,SDWH,SDWMFROM R,S WHERE RDWH=SDWHSELECT RXM,RXB,SDWMFROM R,S WHERE RDWH=SDWH AND RXB=“男”5设有如下关系表R:R(NO,NAME,SEX,AGE,CLASS)主关键字的NO。其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。写出实现下列的SQL语句。插入一个记录(25,“李明”“男”,21,“95031”);。插入“95031”班号为30、姓名为“郑和”的学生记录;。将

11、学号为10的学生姓名改为“王华”;。将所有“95101班号改为“95091”;。删除学号为的学生记录;。删除姓“王”的学生记录;。INSERT INTO R VALUES(25,“李明”,“男”,21,“95031”)INSERT INTO R(NO,NAME,CLASS)VALUES(30,“郑和”,“95031”)UPDATE R SET NAME=“王华” WHERE NO=10UPDATE R SET CLASS=“95091” WHERE CLASS=“95101”DELETE FROM R WHERE NO=20DELETE FROM R WHERE NAME LIKE “王%”习

12、题31叙述S语言支持的三级逻辑结构。答:S语言支持的三级逻辑结构如图1所示在概念层,对应概念模式的概念记录型的基本表。基本表是这样的一种表,它本身实际存在,在isual Foxpro中每个表在存储中可用一具存储文件来表示(在ORACLE中,多个表存储在一个文件夹中。一个基本表就是一个关系,它不是由其人表导出的表。基本表是使用CDEATE TABLE语句建立的。在外层,用户所看到的可以是基本表,也可以是视图。视图是一个虚拟表,它是由一个或几个基本表导出的表,它不直接存在于物理存储器上的表。视图是使用CDEATE VIEW语句建立的。在内层,基本表(或库)用一个存储文件来表示,即用一组类型相同的存

13、储记录值来表示。DBA可以对物理存储文件进行操作。2叙述使用SQL语言实现各种关系运算的方法。答:由Visual Foxpro支持的SQL语言没有提供关系的笛卡尔积、交和差运算。其全关系运算对应的SQL语句格式是:RS:SELECT语句(生成R) UNION SELECT语句(生成S)选择:SELECT * FROM <表> WHERE <指定选择的条件>投影:SELECT <投影字段列表> FROM<表>选择:SELECT <连接的字段列表> FROM <连接的两个表名> WHERE<连接条件>3设有如图所示

14、的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。其中各个属性的含义如下:A(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。试用SQL语言写出下列查询,并给出执行结果。 ABA#ANAMEWQTYCITY101韶山商店15长沙204前门百货商店89北京256东风商场501北京345铁道商店76长沙620第一百货商店413上海A#B#QTY10111051012421013251014104204361256124125629134511413452183454746204

15、125AB#BNAMEPRICE1毛笔212羽毛球7843收音机13254书包242B 找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。SELECT A#,ANAMEFROM A WHERE WQTY<=100 OR CITY=“长沙”; 找出供应书包的商店名。SELECT AANAME FROM A,B,ABWHERE AA#=ABA# AND BB#=ABB# AND BBNAME=“书包”; 找出至少供应代号为“256”的商店所供应的全部商品的商店名和所在城市。SELECT ANAME,CITY FROM A WHERE NOT EXSIST(SELECT * FO

16、RM AB F WHERE A#=“256” AND NOT EXSIST(SELECT * FROM AB S WHERE A#=AA# AND B#=FB#);4设有图书登记表TS,具有属性:BNO(图书编号),BC(图书类别),BNA(书名),AU(著者),PUB(出版社)。按下列要求用SQL语言进行设计。查询按出版社统计其出版图书总数。SELECT PUB,COUNT(BNO)FROM TS GROUP BY PUB5已知三个关系R、S和T如图所示。试用SQL语句实现如下操作: B S TABCa1b120a1b222a2b118a2b3a2ADEa1d115a2d218a1d224D

17、Fd2f2d3f3 将R、S和T三个关系按关联属性建立一个视图R-S-T。 对视图R-S-T按属性A分组后,求属性C和E的平均值。解: CREATE VIEW R-S-TAS SELECT RA,B,C,SD,E,FFROM R,S,T WHERE RA=SA AND SD=TD; SELECT AVG(C),AVG(E) FROM R-S-T GROUP BY A;6有关系R和S如图所示。 R SABa1b1a2B2a3b3ABa140a250a355试用SQL语句实现: 查询属性C>50时,R中与相关联的属性B之值。 当属性C=40时,将R中与之相关连的属性B值修改为b4。解: SE

18、LECT B FROM R,S WHERE RA=S AND C>50; UPDATE RSET B=“b4” WHERE A IN(SELECT AFROM S WHERE C=40)7已知R和S两个关系如图所示。 R SABCa1b1c1a2b2c2a3b3c2CDEc1d1e1c2d2e2c3d3e3执行如下SQL语句: CREATE VIEW H (A,B,C,D,)AS SELECT A,B,RC,D,E FROM R,S WHERE RC=SC; SELECT B,D,E FROM H WHERE C=“C2”试给出: 视图。 对视图的查询结果。解:本题的结果如图所示。视图

19、对视图的查询结果ABCDEa1b1c1d1e1a2b2c2d2e2a3b3c2d2e2BDEb2d2e2b3d2e28已知关系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=

20、“98”9已知学生表S和学生选课表SC。其关系模式如下:S(SNO,SN,SD,PROV)SC(SNO,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设有

21、学生表S(SNO,SN)(SNO为学生号,SN为姓名)和学生选修课程表SC(SNO,CNO,CN,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

22、SNO HAVING AVG(G)>9011设有关系模式:SB(SN,SNAME,CITY)其中:SB表示供应商,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是为指定工程提供零件的供应商

23、代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为SN,PN,JN,外关键字为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 JN

24、AME CITY-J1 JN1J5 JN5J7 JN7(3)取出重量最轻的零件代号; SELECT PN 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

25、FROM JB,SPJBWHERE JBJN=SPJBJN AND SPJBSN=“S1” TO SCREEN;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 DISTINC

26、T SPJBSN FROM SPJB,PBWHERE PBPN=SPJBPN AND SPJBJN=“J1”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 AN

27、D PBCOLOR=红AND(JBCITY=“上海”OR JBCITY=“北京”TO SCREEN;SNS1S4(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 AN

28、D SBCITY=“上海” ANDJBCITY=“上海” TO SCREEN; PN P1 P6(14)取出至少由一个和工程式不在同一城市的供应商提供零件的工程代号;SELECT DISTINCT SPJBJN FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITY<>JBCITY TO SCREEN; JN J1 J2 J3 J4 J5 J6 J7(15)取出上海供应商不提供任何零件的工程的代号SELECT DISTINCT JN FROM SPJBWHERE JN NOT IN(SELECT DISTINCT SP

29、JBJN FROM SB,SPJBWHERE SBSN=SPJBSN AND SBCITY=“上海”)TO SCREEN; 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

30、 DISTINCT SPJBJN FROM SB,PB,SPJBWHIERE SBSN=SPJBSN AND PBPN=SPJBPN AND SBSN=“S1” TO SCREEN; JNJ1J4(18)取出所有这样的一些<CITY,CITY>二元组,使得第1个城市的供应商为第2个城市的工程提供零件;SELECT DISTINCT SBCITY,JBCITY FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN TO SCREEN; CITY_A CITY_B-北京 广州北京 南京北京 上海北京 武汉南京 广州南京 南京南京 上海上海 南

31、京上海 上海-(19)取出所有这样的三元组<CITY,PN,CITY>,使得第1个城市的供应商为第2个城市的工程提供指定的零件;SELECT DISTINCT SBCITY,SPJBPN,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 上

32、海 南京 P6 广州 南京 P6 南京 上海 P1 南京 上海 P1 上海 上海 P6 南京 上海 P6 上海-(20)重复(19)题,但不检索两个CITY值相同的三元组。SELECT DISTINCT SBCITY,SPJBPN,JBCITY FROM SB,JB,SPJBWHERE SBSN=SPJBSN AND JBJN=SPJBJN AND SBCITY<>JBCITY TOSCREEN; CITY_A PN CITY_B- 北京 P3 广州 北京 P3 南京 北京 P3 上海 北京 P3 武汉 北京 P4 广州 北京 P5 广州 南京 P2 广州 南京 P5 上海 南京

33、P6 广州 上海 P1 南京 上海 P6 南京-12有样本表student、teacher、course 和score(如图),写出实现以下各题功能的SQL语句,并给出执行结果。Student score- -NO 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

34、/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-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 助

35、教 计算机 6-166 数字电路 825831 刘冰 女 08/14/77 助教 电子 9-888 高等数学 825 上列出至少有2名男生的班号。SELECT class FROM student WHERE sex=“男”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

温馨提示

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

评论

0/150

提交评论