发布时间 : 星期六 文章数据库名词解释+数据库原理及应用总复习题+中南大学数据库历年考题更新完毕开始阅读e923f0896529647d2728522e
4. 数据完整性的分类有哪些?通过哪些约束可以实现,各举一个例子。 答案:数据完整性分为实体完整性、域完整性、参照完整性。
主键、唯一约束、索引可以实现实体完整性,check约束、默认值、空/非空可以实现域完整性、外键可以实现参照完整性。 5. 表和视图有何区别?
答案:(1)视图具有表的特性,视图所对应的数据也包括若干行和列,可以对其进行查询、修改和删除等操作;
(2)视图是一个虚表,其对应的数据并不实际地存储在视图对象中,而是存储在视图所引用的表中,数据库中只存储视图的定义(即一条SELECT语句)。 6. 简述存储过程和触发器的主要区别?
答案:存储过程和触发器都是SQL Server中的数据库对象,但二者的区别主要体现在以下几方面: (1) 存储过程的存在独立于表,触发器则与表紧密结合。
(2) 存储过程需要用户使用EXECUTE命令调用执行;而触发器,当系统满足一定条件时会自动执行。
四 、分析与设计题(4) 1. 请依据下表内容完成题目要求。(40分) 1.建立数据库student。(2分)
2.按照图表中给出的表定义,请在student数据库中创建学生表。(4分) 3.查询学生表中女同学的基本信息。(2分)
4.查询成绩表中选修了课程号为‘002’的所有学生的学号及成绩,并按成绩降序排列。 (3分) 5.查询成绩表中课程号为‘003’课程的成绩最高分。(2分)
6.查询所有学生的学号、姓名、所选课程的课程名称及相应成绩(4分) 7.查询学生表中各系的的学生人数,结果显示系别和人数两列。(3分)
8.向成绩表成绩中插入一行数据,列值分别为:(’20090101’,’003’,89 ) (2分) 9.修改课程表中 ‘数据结构’课程的学分,将其学分改为6 。 (2分) 10.删除学生表中姓张的学生记录(2分)
11.根据学生表创建视图View1,视图包含计算机系所有学生的基本信息。(3分) 12.查询视图View1所包含的数据。(2分) 13.创建存储过程Proc1,使其完成如下功能:根据任意输入的学生学号,查询成绩表中该学生的学号、课程号及成绩。(使用输入参数)(5分)
14.执行第13小题中创建的存储过程Proc1,执行时输入的学生学号为‘20090101’(2分) 15、删除成绩表。(2分)
21
2. 答案:
1.(2分)create database student 2. (4分)
create table 学生表
( 学号char(8) primary key, 姓名char(6) not null,
性别char(2) default ’男’,
年龄int check(年龄 between 15 and 25), 系别 char(30) null )
3.(2分)select * from学生表 where 性别='女'
4.(3分)select 学号,成绩 from 成绩表 where 课程号=’002’order by 成绩 desc 5.(2分)select max(成绩) as ‘最高分’ from 成绩表 where 课程号=’003’ 6.(4分)select 学生表.学号,姓名,课程名,成绩 from 学生表,成绩表, 课程表 where学生表.学号=成绩表.学号 and 成绩表.课程号=课程表.课程号
7.(3分)select 系别,count(*)as ‘人数’from 学生表 group by 系别 8.(2分)insert into 成绩表 values(‘20090101’,’003’,89) 9. (2分)update 成绩表 set 学分=6 where 课程名=’数据结构’ 10. (2分)delete from 学生表 where 姓名 like ‘张%’ 11. (3分) create view view1 as
select 学号,姓名 from 学生表 where 系别=’计算机系’ 12. (2分) select * from view1
13. (5分)create procedure proc1 @xm char(8) as
select * from 成绩表 where 姓名=@xm
14. (2分) execute proc1 ‘20090101’ 15. (2分) drop table 成绩表 2. 完成如下所要求所用的操作命令:(共40分)
1、创建一个存放在D:\\SQL路径下Test数据库,该数据库的主数据文件逻辑名称为Test_data,物理文件名为
Test_data.mdf,初 始大小为4MB,最大尺寸为10MB,增长速度为10%;数据库的日志文件逻辑名称为Test_log,物理文件名为Test_log.ldf,初始大小 为1MB,最大尺寸为5MB,增长速度为1MB。 (4分) 2、依据表结构创建score表。(3分) 3、查看表中所的的数据行。(2分)
4、查看表中姓名、SQL 两列数据,并按成绩降序排列。。(2分) 5、查看表中姓王学生的基本信息。(3分)
6、查看所有学生的学号、姓名及总分(三门课相加)。(2分) 7、向score表中插入一行数据,值分别为:(2分) (1005 , ‘赵强’, 64, 82 , 69)
8、修改表中姓名为王英的数据,使VB的值改为:85 (2分) 9、创建视图xs1,使其包含学号、姓名、SQL三列。(3分)
10、创建存储过程pjf,用它来按姓名查询score表中任一学生的平均成绩。 (4分) 11、执行第10小题中创建的存储过程pjf。 (2分)
12、建立触发器tr1p,防止用户对score表有删除、修改及插入操作。(4分) 13、显示score中各门课的平均值。(3分) 14、删除score表中姓王的所有数据行。(2分)
22
15、删除test数据库 。(2分)
3. 答案:1、(4分) create database test on --建立主数据文件 (
name = test_data, --逻辑文件名
filename='d:\\sql\\test_data.mdf', --物理文件路径和名字 size=4mb, --初始大小
maxsize= 10mb, --最大容量 filegrowth = 10% --增长速度 )
log on --建立日志文件 (
name=test_log,
filename='d:\\sql\\test_log.ldf', size=1mb,
maxsize = 5mb, filegrowth = 1mb )
2、(3分)
create table score
( 学号char(8) primary key, 姓名char(6) not null,
sql float check(sql between 0 and 100), asp float check(asp between 0 and 100), vb float check(asp between 0 and 100) )
3、(2分)select * from score
4、(2分) select姓名,sql from score order by sql
5、(2分)select * from score where 姓名 like ‘王%’ 6、(2分)select 学号,姓名,sql+asp+vb as 总分 from score
7、(2分)insert into score values(1005,‘赵强’,64,82,69)8、(2分)update score set vb=85 where 姓名=‘王英’
9、(3分)create view xs1 as select 学号,姓名,sql from score
23
10、(5分)create procedure pjf @xm char(8)
as select avg(asp+vb+sql) ‘平均分’ from score where姓名=@xm 11、(2分)execute pjf
12、(4分)create trigger tr1 on score for delete,update,insert as
Print’不允许执行上述操作’ Rollback transaction Return go
13、(3分)select avg(sql),avg(asp),avg(vb) from score 14、(2分)delete from score where 姓名 like ‘王%’ 15、(2分)drop database test 3. 完成如下所要求所用的操作命令:(共40分)
有一表名为”图书信息表”的表,依据此表内容完成以下题目要求:
1、创建一个存放在D:\\SQL路径下的Book数据库,该数据库的主数据文件逻辑名称为Book_data,物理文件名为
Book_data.mdf, 初始大小为4MB,最大尺寸为10MB,增长速度为10%;数据库的日志文件逻辑名称为Book_log,物理文件名为Book_log.ldf,初始大 小为1MB,最大尺寸为5MB,增长速度为1MB。 (5分) 2、依据图1的内容,创建“图书信息表”。(4分) 3、向表中插入一行数据,列值分别为:(3分)
(’1006’,’数据库原理’,’王珊’,’高等教育出版社’,25,20,null) 4、查看表中所有的数据行(2分) 5、显示表中单价的最大值(3分)
6、查看表中单价大于30且库存量小于10的数据行(3分)
7、查看表中的书号、书名及总金额列(由单价*库存量计算得出)(3分) 8、修改表中书名为‘多媒体技术’的库存量,使其库存量为38(3分) 9、根据表创建视图AA,使该视图包含书号、书名及单价(3分)
10、创建存储过程xxx,使其完成如下功能:查询表中高等教育出版社出版的图书的数目。 (4分) 11、执行第8小题中创建的存储过程XXX。(2分) 12、删除表中作者姓张的数据行(3分) 13、删除该图书表(2分)
24