关系数据库与SQL语言练习 下载本文

第三章

一、选择题

在下列各题A),B),C),D)四个选项中选择一个正确的。 1.以下关于视图的描述中,不正确的是( )。

A)视图是外模式 B)使用视图可以加快查询语句的执行速度 C)视图是虚表 D)使用视图可以加快查询语句的编写 2.在SQL的SELECT语句中,能实现投影操作的是( )。 A)SELECT B)FROM C)WHERE D)GROUP BY

3.SQL集数据查询、数据操纵、数据定义和数据控制功能于一体,语句ALTER TABLE

实现下列哪类功能( )。

A)数据查询 B)数据操纵 C)数据定义 D)数据控制 4.下列SQL语句中, ( )不是数据操纵语句。 A)INSERT B)CREATE C)DELETE D)UPDATE

5.SQL使用( )语句为用户授予系统权限或对象权限。 A)SELECT B)CREATE C)GRANT D)REVOKE

6.SQL中,下列涉及空值的操作,不正确的是( )。 A)AGE IS NULL B)AGE IS NOT NULL C)AGE NULL D)NOT(AGE IS NULL) 7.若用如下的SQL语句创建了一个表S: CREATE TABLE S

(SNo CHAR(6) NOT NULL, SName CHAR(8)NOT NULL, SEX CHAR(2), AGE INTEGER)

现向S表插入如下行时,哪一行可以被插入( )? 。

A)('991001’,’李明芳’,女,’23') B)('990746',’张为,NULL,NULL) C)(NULL,’陈道一’,’男’,32) D)('992345',NULL,’女’,25)

8.假定学生关系是S(SNo,SName,Sex,Age),课程关系是C(CNo,CName,Teacher),

学生选课关系是SC(SNo,CNo,Grade)。要查找选修“数据库”课程的“男”学生姓名,将涉及的关系是( )。

A)S B)SC,C C)S,SC D)S,C,SC

9.在SQL中,修改数据表结构应使用的命令是( )。 A)ALTER B)CREATE C)CHANGE D)DELETE

10.已知学生、课程和成绩三个关系如下:学生(学号,姓名,性别,班级)、课程(课

程名称,学时,性质)、成绩(课程名称,学号,分数)。若打印学生成绩单,包括学号、姓名、课程名称、分数,应该对这些关系进行( )操作。

A)并 B)交 C)乘积 D)连接 二、填空题

1.SOL是 的缩写。

2.SQL的功能包括 、 、 和 四个部分。

3.SQL支持数据库的三级模式结构,其中 对应于视图和部分基本表,

对应于基本表, 对应于存储文件。

4.在SQL Server 2000中,数据库是由 文件和 文件组成的。

5.在SQL Server中可以定义 、 、 、 和 五

种类型的完整性约束。 ’

6.按照索引记录的存放位置,索引可分为 与 。

7.数据表之间的联系是通过表的字段值来体现的,这种字段称为 。 8.相关子查询的执行次数是由父查询表的 决定的。

9.视图是虚表,其数据不进行存储,只在数据库中存储其 。 10.在数据库中,权限可分为 和 。

11.在SQL中,关系模式称为 ,子模式称为 。

12.设有学生关系表S(No,Name,Sex,Age),其中,No为学号,Name为姓名,Sex 为性别,Age为年龄。根据以下问题,写出对应的SQL语句;

(1)向关系表S中增加一名新同学,该同学的学号是“990010”,姓名是“李国栋”,

性别是“男”,年龄是19岁 。

(2)向关系表中增加一名新同学,该同学的学号是“990011”,姓名是“王大友” 。 (3)从学生关系表s中,将学号为“990009”的同学的姓名改为“陈平” 。 (4)从学生关系表S中,删除学号为“990008”的同学 (5)从学生关系表S中,删除所有姓氏为“陈”的同学 。

13.建立一个学生表Student,它由学号SNo、姓名SName、性别SSex、年龄SAge、所 在系SDept五个属性组成,其中学号(假定其为字符型,长度为8个字符)属性不能为空。

CREATE TABLE Student

(SNo , SName CHAR(20), SSex CHAR(2), SAge INTEGER, SDept CHAR(16))

14.在“学生、选课、课程”数据库中的三个关系如下:S (SNo,SName,Sex,Age),SC(SNo,CNo,Grade),C(CNo,CName,Teacher)。查找选修“数据库技术”这门课程的学 生的学生名和成绩。使用连接查询的SQL语句是: SELECT SName,Grade FROM S,SC,C

WHERE CName='数据库技术’ AND S.SNo=SC.SNo

AND

15.建立一个学生表Student,它由学号SNo、姓名SName、性别SSex、年龄.SAge、所在系SDept五个属性组成,其中学号(假定其为字符型,长度为8个字符)属性不能为空。 Student表建立完成后,若要在表中增加年级SGrade项(设字段类型为字符型,长度为10), 其SQL命令为 三、根据题意,用SQL语言实现以下查询

1.设有以下两个数据表,各表中的结果及字段名如下:

图书(Book)包括书号(BNo)、类型(BTyp9)。书名(BName)、作者(BAuth)、单价

(BPrice)、出版社号(PNo)

出版社(Publish)包括出版社号(PNo)、出版社名称(PName)、所在城市(PCit),)、

电话(PTel)。

(1)在“高等教育出版社”出版、书名为“操作系统”的图书的作者名;

(2)查找为作者“张欣”出版全部“小说”类图书的出版社的电话:

(3)查询”电子工业出版社”出版的“计算机”类图书的价格,同时输出出版社名称及 图书类别;

(4)查找比“人民邮电出版社”出版的“高等数学”价格低的同名书的有关信息; (5)查找书名中有“计算机”一词的图书的书名及作者;

(6)在“图书”表中增加“出版时间”(BDate)项,其数据类型为日期型; (7)在“图书”表中以“作者”建立一个索引。

2.假设有一个书店,书店的管理者要对书店的经营状况进行管理,需要建立一个

数据库,其中包括两个表:

存书(书号,书名,出版社,版次,出版日期,作者,书价,进价,数量) 销售(日期,书号,数量,金额)

请用SQL实现书店管理者的下列要求: (1)建立存书表和销售表;

(2)掌握书的库存情况,列出当前库存的所有书名、数量、余额(余额=进价×数

量,即库存占用的资金);

(3)统计总销售额;

(4)列出每天的销售报表,包括书名、数量和合计金额(每一种书的销售总额); (5)分析畅销书,即列出本期(从当前日期起,向前30天)销售数量大于100的

书名、数量。

3.设有如下四个基本表S,C,SC,T,结构如图所示。 S S# 学号 S1 S2 S3 SN AGE 学生姓名 年龄 丁一 王二 张三 20 19 19 DEPT 所在系 计算机 计算机 外语 C C# CN 课程号 课程名称 C1 C2 C3 数据库 操作系统 微机原理 SC S# 学号 S1 S1 S2 C# GR 课程号 成绩 C1 C2 C3 80 89 59

T T# 教师号 T1 T2 T3 TN SAL 教师姓名 工资 王力 张兰 李伟 800 1200 700 COMM C# 职务津贴 所讲课程 300 150 Cl C2 C1 某教学数据库实例

(1)用SOL的DDL语言创建S表,S#为主键,SN不能为空。

(2)创建计算机系学生的视图,该视图的属性列由学号、姓名、课程号和任课教师号 组成。

(3)检索计算机系年龄在20岁以上的学生学号。 (4)检索姓王的教师所讲课程的课程号及课程名称。 (5)检索张三同学所学课程的成绩,列出SN,C#,GR。

(6)检索选修总收入超过1000元的教师所讲课程的学生姓名、课程号和成绩。

(7)检索没有选修c1课程且选修课程数为两门的学生的姓名和平均成绩,并按平均 成绩降序排列。

(8)检索选修和张三同学所选课程中任意一门相同的学生姓名,课程名。 (9)S1同学选修了C3,.将此信息插入SC表中。 (10)删除S表中没有选修任何课程的学生记录。

第四章

一、选择题

在下列A),B),C),D)四个选项中选择一个正确的。

B)是无损连接分解,但不是保持函数依赖的分解