数据库第三章习题 下载本文

第3章 SQL语言习题

一、单项选择题

1.SQL语言是()的语言,易学习。 A.过程化

B.非过程化

C.格式化

D.导航式

D.非数据库

2.SQL语言是()语言。 A.层次数据库

B.网络数据库

C.关系数据库

3.SQL语言具有()的功能。

A.关系规范化、数据操纵、数据控制 B数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操纵 4.关于SQL语言,下列说法正确的是()。

A 数据控制功能不是SQL语言的功能之一

B SQL采用的是面向记录的操作方式,以记录为单位进行操作 C SQL是非过程化的语言,用户无须指定存取路径 D SQL作为嵌入式语言语法与独立的语言有较大差别

B.ALTER

C.UPDATE

D.DELETE

5.对表中数据进行删除的操作是()。 A.DROP

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

B.INSERT

C.UPDATE

D.DELETE

D.解释式SQL

7.SQL语言具有两种使用方式,分别称为交互式SQL和()。 A.提示式SQL A.SELECT A.ALTER A 基本表 A WHERE A WHERE A =ANY

B.用户式SQL

C.嵌入式SQL

D.DELETE

8.SQL语言中,实现数据检索的语句是()。

B.INSERT

C.UPDATE

9.下列SQL语句中,修改表结构的是()。

B.CREATE

B 视图 B FROM

C.UPDATE

D .DELETE

D 基本表和视图 D HAVING

D HAVING

10.在SQL中,用户可以直接操作的是()。

C 存储文件 C SELECT

11.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。 12.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。

B GROUP BY C ORDER BY B <>ANY

C =ALL

13.SQL中,与“NOT IN”等价的操作符是()。

D <>ALL

14.视图建立后,在数据字典中存放的是()。 A 查询语句 C 视图的定义

B 组成视图的表的内容 D 产生视图的表的定义

1

第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 FROM S WHEREAGE>(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 SWHERE 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 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.SELECT S.SN,SC.C#,SC.GRADEFROM S WHERES.S#=SC.S#

B.SELECTS.SN, SC.C#, SC.GRADE FROM SC WHERES.S#=SC.GRADE C.SELECTS.SN, SC.C# , SC.GRADE FROM S, SC WHERES.S#=SC.S# D.SELECT S.SN,SC.C#, SC.GRADE FROM S, SC

18.检索选修四门以上课程的学生总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。正确的SELECT的语句是()。

A.SELECT S#, SUM (GRADE) 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 DESC

C. SELECT S#,SUM (GRADE) FROM SC WHERE GRADE>=60 HAVING

2

COUNT (*)>=4 GROUP BY S# ORDER BY 2 DESC

D. SELECT S#, SUM (GRADE) FROM SC WHERE GRADE>=60 ORDER 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 005 025 038 职工名 李红 刘军 王芳 张强 部门号 01 01 03 02 工资 580 670 720 650 部门号 01 02 03 04 部门名 人事处 财务处 教务处 学生处 主任 高平 蒋华 许红 杜琼 A. 从职工表中删除行(?025?,?王芳?,?03?,720)

B. 将行(?005?,?乔兴?,?04?,750)插入到职工表中 C. 将职工号为?001?的工资改为700 D. 将职工号为?038?的部门号改为?03?

21.若用如下的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.(?1031?,?曾华?,NULL,NULL) D.(?1031?,NULL ,?男?,23) C 提高安全性 D 节省存储空间 C 内模式

D 模式映像

C.(NULL,?曾华?,?男?,?23?) 22.数据库中建立索引的目的是为了()。

A 加快建表速度 A 外模式

B 加快存取速度 B 模式

23.视图是数据库系统三级模式中的()。 24.下列说法不正确的是()。

A 基本表和视图一样,都是关系

B 可以使用SQL对基本表和视图进行操作 C 可以从基本表或视图上定义视图 D 基本表和视图中都存储数据

二、综合题

1.已知关系R如图所示

3

R A B 97 97 97 98 98 98 99 99 图关系R

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

(1) 按属性A分组,求出每组中在属性C上的最大值和最小值,且将它们置

于视图RVE中。

Create view RVE(A,CMAX,CMIN) 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) 按分数降序排序,输出“英语系”学生选修了“计算机”课程的学生的姓

名和分数。 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为姓名)和学生选修课程表

4

C 84 92 98 72 84 95 88 94 b1 b2 b3 b1 b2 b3 b1 b2 SC(SNO,CNO,CN,G)(CNO为课程号,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,CITY)其中,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语句:

5