发布时间 : 星期六 文章第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 ;