SQL数据库期末考试复习题 联系客服

发布时间 : 星期四 文章SQL数据库期末考试复习题更新完毕开始阅读37a0746e5727a5e9846a6138

授权子系统,它允许有特定存取权的用户有选择地和动态地把这些权限授予其它用户。

(1)视图:视图是从一个或几个基本表导出的表,某一用户可以定义若干视图。视图所对应的数据不实际存储在数据库中,数据库中只存储视图的定义。视图机制使系统具有三个优点:数据安全性、数据独立性和操作简便性。视图把用户可以使用的数据定义在视图中,这样用户就不能使用视图定义外的其它数据,从而保证了数据库的安全性。 10.SQL语言具有什么功能?

数据定义、数据操纵、数据控制和SQL语句嵌入

12、简述数据库概念设计的主要步骤。

进行数据抽象、设计局部概念模式、将局部概念模式综合成全局概念模式、对全局结构进行评审。

13. 举例说明什么是实体之间一对多联系?举例说明什么是实体之间一对一联系?举例说明什么是实体之间多对多联系?

14.在SQL语言的命令中,如何实现关系代数的选择、投影、联接运算? 15.在SQL语言中,如何实现关系数据模型的三类完整性约束? 16、有一个“学生-课程”数据库,数据库中包括三个表:

(1) “学生”表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,可记为: Student(Sno,Sname,Ssex,Sage,Sdept) Sno 为关键字。

(2) “课程”表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,可记为: Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。

(3) “学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,可记为: SC(Sno,Cno,Grade) (SNO, CNO) 为关键字。

完成下列操作:

(1)写出创建Student数据库的命令,该数据库的主数据文件逻辑名称为Student_data,物理文件名为Student.mdf,初始大小为1MB,最大尺寸为2MB,增长速度为1mb;数据库的日志文件逻辑名称为Student_log,物理文件名为Student.ldf,初始大小为1MB,最大尺寸为3MB,增长速度为10%。

Create database Student

On primary(name=Student_data,filename= 'd:\\ Student.mdf', size=1,maxsize=,filegrowth=1)

Log on(name=Student_log,filename='d:\\ Student.ldf', size=1,maxsize=3,filegrowth=10%)

(2)写出创建 “学生”表Student的命令,表Student是由学号Sno、姓名Sname、性别Ssex、年龄Sage、所在系Sdept五个属性组成,其中学号属性不能为空,并且其值是唯一的。

CREATETABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname CHAR(20), Ssex CHAR(1), Sage INT, Sdept CHAR(15));

13

(3).在student表中查询Sdept是‘计算机’的学生的所有信息,并按Sno降序排列。 select * from student where Sdept=’计算机’ order by Sno desc

(4).在以上三个表中查询Ccredit为5并且Grade大于60的学生的学号、姓名和性别。 select student.Sno,Sname,Ssex from student, course, sc

where (student.Sno=sc.Sno) and (course.Cno=sc.Cno) and (course.Ccredit=5) and (sc.Grade>60) (5). 建立一个由学生姓名和课号组成的视图name_cno。 create view name_cno(sname,cno) as

select sname,cno from student,sc

where student.sno=sc.sno

17.下列程序的运行结果有何区别。

(1)Select phone from authors where phone='415%'(只查找415%)

(2)select phone from authors where phone like '415%'(查找以415开头的所有记录)

20. 有一个电影资料库,数据库中含有三个数据表:电影信息、演员信息和电影_演员信息。各表构成见表1-表3。 表1 “电影信息”表 字段名 影片编号 片名 发行公司 发行时间 片长 类型 字段名 演员编号 姓名 性别 出生地 字段名

类型 int varchar(50) varchar(50) char(4) smallint char(4) 类型 int varchar(50) char(2) char(50) 类型 说明 采用自动编号,主键 记录发行的年份 默认值为90,计量单位为分钟 类型取值为“惊险”、“言情”、“喜剧”、“科幻”、“其他”之一 说明 采用自动编号,主键 取值为“男”或“女” 表2 “演员信息”表

表3 “电影_演员信息”表

说明 14

影片编号 演员编号 演员类型 int int char(4) 演员类型取值为“主角”或“配角” (1)请建立电影信息表,包括约束要求。 create table 电影信息

( 影片编号 int identity primary key, 片名 varchar(50), 发行公司 varchar(50), 发行时间 char(4),

片长 smallint default 90,

类型 char(4) check( 类型in('惊险','言情','喜剧','科幻','其他')))

(2) 为“电影_演员信息”表添加外键约束。

alter table 电影_演员信息

add foreign key(影片编号) references 电影信息(影片编号), foreign key(演员编号) references 演员信息(演员编号)

(3)检索出主演过“科幻”类电影的演员的姓名及电影片名。 select 姓名,片名from 电影信息d,演员信息y,电影_演员信息dy

where d.影片编号=dy.影片编号and dy.演员编号=y.演员编号and 类型='科幻' and演员类型=‘主演’

(4)检索出电影长度不小于平均长度的电影片名和发行公司。 select 片名,发行公司from 电影信息

where 片长>=(select avg(片长)from 电影信息)

21、请使用SQL命令完成以下数据定义或数据操纵 (1). 创建数据库“studentDB”,其主数据文件名称stu_data,物理文件保存在d:\\data下,名称为student.mdf,初始大小5M,最大50M,以1M速度增加;该数据库的日志文件是stu_log,保存在d:\\data下,名称为student.ldf,初始大小2M,以5%速度增加。(5分) Create database studentDB On Primary

(name=stu_data,filename=?d:\\data\\student.mdf?,size=5,maxsize=50,filegrowth=1) Log on

(name=stu_log,filename=?d:\\data\\student.ldf?,size=2, filegrowth=5%) (2)建立学生信息表student,包括约束。(5分) 字段名 数据类型 可否为空 Char(10) 学号 否

15

约束条件 主键 Varchar(20) 姓名 Char(2) 性别 Smalldatetime 出生日期 Create table student (学号 char(10) primary key, 姓名 varchar(20) not null ,

否 否 可 默认为“男”,取值只能为“男”或“女” 性别 char(2) not null default '男' check ( 性别 in ('男','女')), 出生日期 smalldatetime )

(3)为32题建立的student表的“姓名”属性创建非惟一的非聚集索引name_index。

create index name_index on student (姓名) (4) 为(3)题建立的student表输入以下数据。

insert [into] student values('0401332901','李勇','男','1995-5-19')

(5)将(3)题建立的student表中李勇的出生日期更改为1995-6-19。

update student set 出生日期='1995-6-19' where 姓名='李勇' (6)由(3)题建立的student表创建所有女生信息的视图。

create view female_stu as select * from student where 性别='女'

(7)删除(3)题建立的student表中学号为“0401332901”学生的数据。 Delete [from] student where 学号='040133290' 22、请使用SQL命令完成以下检索操作

已知有图书表、作者表和出版社表,各表字段定义如下: 图书(图书编号,书名,价格,出版社编号,种类) 作者(作者编号,姓名,性别,电话,城市,地址) 出版社(出版社编号,出版社名称,出版社地址) (1).检索出所有图书的种类(不能含有相同种类)。

Select distinct 种类 from图书 (2).检索出价格不在20至50元之间的图书的书名和价格。

Select书名,价格 from图书 where价格 not between 20 and 50 或 Select书名,价格 from图书 where价格< 20 or 价格>50

(3).检索出各类图书的最高价格。

Select max(价格) from 图书 group by 种类 (4).检索出图书编号以“C”开头,中间第3位为数字0-5的图书信息。 Select * from图书 where 图书编号 like ?C_[0-5]%? (5).检索出“北京”市或“上海”市男性作者的编号、姓名和地址。

Select 作者编号, 姓名, 地址 from 作者 where城市in (?北京? ,?上海?) and性别=? 男? (6).检索出“计算机”类图书的平均价格和种类,并以“平均价格”表示。

Select 种类,avg(价格) [as] ‘平均价格’from 图书 group by 种类 having 种类=?计算机? (7). 请按城市降序排列输出作者信息。

16