第三章 关系数据库标准语言SQL

更新时间:2023-12-09 19:59:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第三章 关系数据库标准语言SQL

一、单项选择题

1.SQL语言是 的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式

2.SQL语言是 语言。 A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库

3.SQL语言具有 的功能。 A.关系规范化、数据操纵、数据控制 B.数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵

4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是 。

A.SELECT B.INSERT C.UPDATE D.DELETE

5.SQL语言具有两种使用方式,分别称为交互式SQL和 。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 6.SQL语言中,实现数据检索的语句是 。 A.SELECT B.INSERT C.UPDATE D.DELETE

7.下列SQL语句中,修改表结构的是 。 A.ALTER B.CREATE C.UPDATE D.INSERT

第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

为课程名,GRADE为成绩。

8.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的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

WHERE SN=“王华”)

D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是 。 A.SELECT S# FORM SC WHERE C#=“C2” AND GRAD>= (SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN (SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)

10.检索学生姓名及其所选修课程的课程号和成绩。正确的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#,SC.GRADE FROM S,SC

WHERE S.S#=SC.S#

D.SELECT S.SN,SC.C#,SC.GRADE FROM S.SC 11.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排

列出来。正确的SELECT语句是 。

A.SELECT S#,SUM(GRADE)FROM SC WHERE GRADE>=60 GROUP BY S# ORDER BY 2 DESC

HAVING COUNT(*)>=4 WHERE C#=“C2” AND GRADE>= (SELECT GRADE FORM SC WHERE C#=“C2”) B.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE IN

(SELECT GRADE FORM SC WHERE C#=“C2”) C.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE NOT IN (SELECT GRADE FORM SC WHERE C#=“C2”) D.SELECT S# FORM SC

WHERE C#=“C2” AND GRADE>=ALL (SELECT GRADE FORM SC WHERE C#=“C2”)

12.假定学生关系是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

13.如下面的数据库的表中,若职工表的主关键字是职工号,部门表的主关键字是部门号,

SQL操作 不能执行。 A.从职工表中删除行(‘025’,‘王芳’,‘03’,720) B.将行(‘005,’,‘乔兴’,‘04’,750)插入到职工表中 C.将职工号为,‘001’的工资改为700 D.将职工号为,’038’的部门号改为‘03’ 14.若用如下的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)

二、填空题

1.SQL是 。

2.SQL语言的数据定义功能包括 ① 、 ② 、 ③ 和 ④ 。 3.视图是一个虚表,它是从 ① 中导出的表。在数据库中,只存放视图的 ② ,不存放视图的 ③ 。 4.设有如下关系表R、S和T: 以BH,XM,XB,DWH) S(DWH,DWM)

T(BH,XM,XB,DWH)

①实现R∪T的SQL语句是 。

②实现?DWH=‘100’(R)的SQL语句是 。

③实现∏XM,XB(R)的SQL语句是 。

④实现∏XM,DWH(?XB=‘女’(R))的SQL语句是 。 ⑤实现R?? S的SQL语句是 。

⑥实现∏XM,XB,DWM(?XB=‘男’(R?? S))的SQL语句是 。 5.设有如下关系表R:

R(No,NAME,SEX,AGE,CLASS) 主关键字是NO

其中NO为学号,NAME为姓名,SEX为性别,AGE为年龄,CLASS为班号。 写出实现下列功能的SQL语句。 ①插入一个记录(25,“李明”,“男”,21,“95031”); 。

②插入“95031”班学号为30、姓名为“郑和”的学生记录; 。 ③将学号为10的学生姓名改为“王华”; 。 ④将所有“95101”班号改为“95091”; 。 ⑤删除学号为20的学生记录; 。 ⑥删除姓“王”的学生记录; 。

三.简述与应用题

1.叙述SQL语言支持的三级逻辑结构。

2.叙述使用SQL语言实现各种关系运算的方法。

3.设有如下所示的三个关系,并假定这三个关系框架组成的数据模型就是用户子模式。 其中各个属性的含义如下:A#(商店代号)、ANAME(商店名)、WQTY(店员人数)、CITY(所在城市)、B#(商品号)、BNAME(商品名称)、PRICE(价格)、QTY(商品数量)。 试用SQL语言写出下列查询,并给出执行结果:

(1).找出店员人数不超过100人或者在长沙市的所有商店的代号和商店名。 (2).找出供应书包的商店名。

(3).找出至少供应代号为256的商店所供应的全部商品的商店名和所在城市。

4.设有图书登记表TS,具有属性:BNO(图书编号),BC(图书类别),BNA(书名),AU(著者),PUB(出版社)。按下列要求用SQL语言进行设计: (1).按图书馆编号BNO建立TS表的索引ITS。 (2).查询,按出版社统计其出版图书总数。 (3).删除索引ITS。

5.己知三个关系R(A,B,C)、S(A,D,E)和T(D,F),其中,名称相同的属性为关联属性,C、E为数值型属性。

试用SQL语句实现如下操作:

(1).将R、S和T三个关系按关联属性建立一个视图R-S-T; (2).对视图R-S-T按属性A分组后,求属性C和E的平均值。 6.设有关系R(A,B)和S(A,C),A为相同属性。 试用SQL语句实现:

(1).查询属性C>50时,R中相关联的属性B之值。

(2).当属性C=40时,将R中与之相关连的属性B值修改为b4。

7.已知R(A,B,C)和S(C,D,E)两个关系,如下图所示。 执行如下SQL语句:

(1).CREATE VIEW H(A,BC,C,D,E) AS SELECT A,B,R.C,D,E FROM R,S

WHERE R.C=S.C; (2).SELECT B,D,E FROM H

WHERE C=‘C2’ 试给出: (1).视图H;

(2).对视图H的查询结果。

R S

A B C C D E a1 b1 c1 c1 d1 e1 a2 b2 c2 c2 d2 e2 a3 b3 c3 c3 d3 e3

8.已知关系R如图所示。

A B C

97 b1 84

97 b2 92

97 b3 98

98 b1 72

98 b2 84

98 b3 95

99 b1 88

99 b2 94

试用SQL语句实现下列操作:

(1).按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置于视图RVE中。 (2).在视图RVE中查询属性A=‘98’的记录。

9.已知学生表S和学生选课表SC。其关系模式如下: S(SNo,SN,SD,PROV) SC(SNO,CN,GR)

其中,SNO为学号,SN为姓名,SD为系名,PROV为省区,CN为课程名,GR为分数。 试用SQL语言实现下列操作:

(1).查询“信息系”的学生来自哪些省区。

(2).按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓名和分数。 10.设有学生表S(SNO,SN)(SNO为学号,SN为姓名)和学生选课表SC(SNO,CNO,CN,G) (CNO为课程号,CN为课程名,G为成绩),试用SQL语言完成以下各题: (1).建立一个视图V-SSC(SN,SN,CN,CN,G),并按CNO升序排序;

(2).从视图V-SSC上查询平均成绩在90分以上的SN、CN和G。 11.设有关系模式:

SB(SN,SNAME,CITY) 其中,S表示供应商,SN为供应商代号,SNAME为供应商名字,CITY为供应商所在城市,主关键字为SN。

PB(PN,PNAME,COLOR,WEIGHT)

其中P表示零件,PN为零件代号,PNAME为零件名字,COLOR为零件颜色,WEIGHT为零件重量,主关键字为PN。 JB(JN,JNAME, CITY)

其中,J表示工程,JN为工程编号,JNAME为工程名字,CITY为工程所在城市,主关键字为JN。

SPJB(SN,PN,JN,QTY)

其中,SPJ表示供应关系,SN是为指定工程提供零件的供应商代号,PN为所提供的零件代号,JN为工程编号,QTY表示提供的零件数量,主关键字为(SN,PN,JN),外部关键字为SN,PN,JN。

写出实现以下各题功能的SQL语句: (1).取出所有工程的全部细节;

(2).取出所在城市为上海的所有工程的全部细节; (3).取出重量最轻的零件代号;

(4).取出为工程J1提供零件的供应商代号; (5).取出为工程J1提供零件P1的供应商代号; (6).取出由供应商S1提供零件的工程名称; (7).取出供应商S1提供的零件的颜色;

(8).取出为工程J1或J2提供零件的供应商代号; (9).取出为工程J1提供红色零件的供应商代号;

(10).取出为所在城市为上海的工程提供零件的供应商代号;

(11).取出为所在城市为上海或北京的工程提供红色零件的供应商代号; (12).取出供应商与工程所在城市相同的供应商提供的零件代号; (13).取出上海的供应商提供给上海的任一工程的零件的代号;

(14).取出至少由一个和工程不在同一城市的供应商提供零件的工程代号; (15).取出上海供应商不提供任何零件的工程的代号;

(16).取出这样一些供应商代号,它们能够提供至少一种由红色零件的供应商提供的零件; (17).取出由供应商S1提供零件的工程的代号;

(18).取出所有这样的一些〈CITY,CITY〉二元组,使得第1个城市的供应商为第2个 (19).取出所有这样的三元组〈CITY,PN CITY〉,使得第1个城市的供应商为第2个城市的 (20).重复(19)题,但不检索两个CITY值相同的三元组。

12.以下面的数据库为例,用SQL完成以下检索。关系模式如下:

仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE) 职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)

订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(SNO,SNO,ONO,DATE) 供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR) (1).检索在北京的供应商的名称。 (2).检索发给供应商S6的订购单号。

(3).检索出职工E6发给供应商S6的订购单号。

(4).检索出向供应商S3发过订购单的职工的职工号和仓库号。 (5).检索出目前与S3供应商没有联系的职工信息。 (6).检索出目前没有任何订购单的供应商信息。

(7).检索出和职工E1、E3都有联系的北京的供应商信息。 (8).检索出目前和华通电子公司有业务联系的每个职工的工资。 (9).检索出与工资在1220元以下的职工没有联系的供应商的名称。 (10).检索出向S4供应商发出订购单的仓库所在的城市。 (11).检索出在上海工作并且向S6供应商发出了订购单的职工号。 (12).检索出在广州工作并且只向S6供应商发出了订购单的职工号。 (13).检索出由工资多于1230元的职工向北京的供应商发出的订购单号。 (14).检索出仓库的个数。

(15).检索出有最大面积的仓库信息。 (16).检索出所有仓库的平均面积。

(17).检索出向S4供应商发出订购单的那些仓库的平均面积。 (18).检索出每个城市的供应商个数。

(19).检索出每个仓库中工资多于1220元的职工个数。 (20).检索出和面积最小的仓库有联系的供应商的个数。 (21).检索出工资低于本仓库平均工资的职工信息。

13.以下面的数据库为例,用SQL完成以下更新操作。关系模式如下:

仓库(仓库号,城市,面积)←→ WAREHOUSE(WMNO,CITY,SIZE) 职工(仓库号,职工号,工资)←→ EMPLOYEE(WHNO,ENO,SALARY)

订购单(职工号,供应商号,订购单号,订购日期)←→ ORDER(SNO,SNO,ONO,DATE) 供应商(供应商号,供应商名,地址)←→ SUPPLIER(SNO,SNAME,ADDR) (1).插入一个新的供应商元组(S9,智通公司,沈阳)。 (2).删除目前没有任何订购单的供应商。

(3).删除由在上海仓库工作的职工发出的所有订购单。 (4).北京的所有仓库增加100m2的面积。

(5).给低于所有职工平均工资的职工提高5%的工资。

本文来源:https://www.bwwdw.com/article/mwc5.html

Top