数据库名词解释+数据库原理及应用总复习题+中南大学数据库历年考题 联系客服

发布时间 : 星期六 文章数据库名词解释+数据库原理及应用总复习题+中南大学数据库历年考题更新完毕开始阅读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