第3章 关系数据库标准语言SQL(习题集) 联系客服

发布时间 : 星期六 文章第3章 关系数据库标准语言SQL(习题集)更新完毕开始阅读

第三章 习题集

一、名词解释

1、视图:

2、基本表:

二、选择题

1、SQL语言是( B )的语言,容易学习 。

A.过程化 B.非过程化 C.格式化 D.导航式 2、在视图上不能完成的操作是( C ) 。

A.更新视图 B.查询

C.在视图上定义新的表 D.在视图上定义新的视图

3 、SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、

DROP、ALTER语句是实现哪种功能( C )。

A.数据查询 B.数据操纵 C.数据定义 D.数据控制 4、SQL语言中,删除一个视图的命令是( B )。

A.DELETE B.DROP C.CLEAR D.REMOVE 5、SQL语言中的视图VIEW是数据库的( A )

A.外模式 B.模式 C.内模式 D.存储模式 6、若要在基本表S中增加一列CN(课程名),可用 ( C )。 A、ADD TABLE S(CN CHAR(8))

B、ADD TABLE S ALTER(CN CHAR(8)) C、ALTER TABLE S ADD(CN CHAR(8)) D、ALTER TABLE S(ADD CN CHAR(8)) 7、SQL查询语言的一种典型是: select x1,x2,﹒﹒﹒,xn

from A1,A2,﹒﹒﹒,Am

where F

其中xi (i=1,2, ﹒﹒﹒,n)、Aj(j=1,2, ﹒﹒﹒,m)、F分别是( A )。 A、字段名、目标表名、逻辑表达式 B、字段名、目标表名,数值表达式 C、目标表名、字段名、逻辑表达式 D、目标表名、字段名、数值表达式

8、下面列出的关于“视图”的选项中,不正确的是( C )。 A、视图是外模式 B、视图是虚表

C、使用视图可以加快查询语句的执行速度 D、使用视图可以简化查询语句的编写

三、填空题

1、SQL的中文全称是_结构化查询语言_。

2 、SQL语言除了具有数据查询和数据操纵功能之外,还具有_数据定义__和_数据控制_的功能,它是一个综合性的功能强大的语言。

3、在关系数据库标准语言SQL中,实现数据检索的语句命令是_select__。

4、在SQL语言的结构中,_表_有对应的物理存储,而_视图_没有对应的物理存储。 5、视图是从_表或视图_中导出的表,数据库中实际存放的是视图的___定义__。

四、简答题

1、试述SQL语言的特点。

2、什么是基本表?什么是视图?两者的区别和联系是什么?

3、试述视图的优点。

五、综合题

一)设有关系S(S#,SNAME,SAGE ,SEX),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,SEX是学生的性别 C#是课程号,CNAME是课程名称,GRADE是成绩。 1、用SQL语句创建S表,声明“S#”为主码,“SNAME”不能为空,“SEX” 的取值为男或女。

CREATE TABLE Student

(Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) UNIQUE,

Ssex CHAR(2) check(Ssex=男or Ssex=女), Sage SMALLINT);

2、用SQL语句修改C表中的列CNAME为 CNAME char(40)。

ALTER TABLE C

ALTER COLUMN CNAME char(40);

3、用SQL语句向雇员表S中插入一个学生信息(具体信息自定)。

INSERT

INTO Student (Sno,Sname,Ssex,Sage)

VALUES ('200215128','陈冬','男',18);

4、分别用关系代数表达式和SQL语句查询出所有女同学的姓名、年龄信息。

SELECT SNAME,SAGE FROM S

WHERE S. SSEX =‘女’; R1=σSSEX =‘女’ (S) R2=πSNAME,SAGE (R1)

5、分别用关系代数表达式和SQL语句查询出选修了“数据库系统概论”课程的学生的学号,学生的姓名以及成绩信息。

SELECT S#,SNAME,GRADE FROM S,SC

WHERE S. S# =C.S# AND CNAME=“数据库系统概论”;

R1=σCNAME=“数据库系统概论”(C) C R2=S R3=Πc#,SNAME,GRADE (R2)

6、用SQL语句使用嵌套查询,查询出没有选修1号课程的学生学号和姓名。

SELECT S#,Sname,

FROM Student

WHERE NOT EXISTS (SELECT * FROM SC

WHERE Sno = Student.Sno AND Cno='1');

7、用SQL语句创建一个视图F S,用于检索所有女同学的相关情况,视图中包括下列字段:

F S#,SNAME,CNAME,SAGE,GRADE。

CREATE VIEW F_S(F S#,SNAME,CNAME,SAGE,GRADE) AS

SELECT S#,SNAME,CNAME,SAGE,GRADE FROM S,C

WHERE Ssex=‘女’ AND S.S#=C.S#;

二)假定使用的关系“学生”、“班”、“系”的定义如下: 学生(学号 int,姓名 char(8),年龄 int,班号 int)

班 (班号 int,班级名称 char(20),系号char(3),入学年度 char(8)) 系 (系号 char(3),系名 char(20))

完成以下任务: (1)、创建“学生”表,声明“学号”为主码,“姓名”不能为空,“班号”为外码。

create table 学生

(学号 int primary key, 姓名 char(8) not null,

年龄 int,

班号 int,

foreign key (班号) references 班(班号) );

(2)、分别用关系代数表达式和SQL语句查询出年龄小于20岁的学生姓名。

π姓名(σ年龄<20(学生))

Select 姓名

From 学生

Where 年龄<20 ;

(3)、分别用关系代数表达式和SQL语句查询计算机系2007年度入学的学生姓名和年龄。

π姓名,年龄(σ系名=’计算机系’ and 入学年度=’2007年度’((系

Select 姓名,年龄

班) 学生))

From 系,班,学生

Where 系.系号=班.系号 and 班.班号=学生.班号 and 系名=’计算机系’ and 入学年度=’2007年度’;

(4)、将系号为“006”的系更名为“生物工程系”。

update 系 set 系名=’生物工程系’ from 系

where 系号=’006’

(5)、使用嵌套查询,查询出系名为“建筑工程系”的所有班级信息。

select *

from 班

where 系号 in (select 系号

from 系

where 系名=’建筑工程系’);

(6)创建计算机系学生的视图V11,并要求进行修改和插入操作时仍需保证该视图只有计算机系的学生。 create view V11 as

Select 学生.* From 系,班,学生

Where 系.系号=班.系号 and 班.班号=学生.班号 and 系名=’计算机系’ With check option ;