文档库 最新最全的文档下载
当前位置:文档库 › 《数据库系统及应用》期中试题

《数据库系统及应用》期中试题

《数据库系统及应用》期中试题

一、用Transact-SQL语句定义数据库

1、创建名为School的数据库,该数据库包含二个大小为2MB的数据文件(文件名为:<你

的姓名>_school_dat1和<你的姓名>_school_dat2)和一个大小为1MB的事务日志文件(文件名为:<你的姓名>_school_log)。限制数据文件大小为5MB、日志文件为2MB。

对于所有文件,允许20%的文件增长。请将创建数据库的Transact-SQL脚本存为<你的姓名>_1_01.sql文件。

2、修改数据文件<你的姓名>_school_dat1,增加其大小至3MB,并允许按0.5MB(512KB)的

增量增至最大大小6MB;删除数据文件<你的姓名>_school_dat2;添加一个新的1MB的数据文件(文件名为:<你的姓名>_school_dat3),允许它以1MB增量增至磁盘被充满。

请将Transact-SQL脚本存为<你的姓名>_1_02.sql文件。

二、用Transact-SQL语句在School数据库中定义表

1、根据所给的学生表建立表名为<你的姓名>_student的表,T-SQL脚本存为<你的姓

名>_2_01.sql文件。要求:

(1)设置学号列数据类型为char(11),主键约束,约束名为pk_xh;

(2)设置身份证号码列唯一约束,约束名为un_xh;

(3)设置检查约束,名为ck_sfzid,条件为身份证号码列只能输入15或17个数字字符。(4)其它列根据学生表的数据定义。

2、根据所给的课程表用Transact-SQL语句建立表名为<你的姓名>_course的表,

Transact-SQL脚本存为<你的姓名>_2_02.sql文件。要求:

(1)设置课程代号列数据类型为char(5),主键约束,约束名为pk_kcdh。

(2)设置周学时列默认值为3,学分默认值为2。

(3)设置检查约束,约束名为ck_cc,条件为周学时数大于等于学分数。

(4)在<你的姓名>_course表的课程名列上创建一个非聚集索引inx_course_kcm。

(5)其它列根据课程表的数据定义。

3、根据所给的成绩表建立表名为<你的姓名>_grade的表,Transact-SQL脚本存为<你的姓

名>_2_03.sql文件。要求:

(1)参考学生表和课程表的设置,考察并设置成绩表的主键约束,约束名为pk_id。

(2)设置学号列外键约束并级联删除和级联更新,约束名为fk_xh。

(3)设置课程代号列外键约束并级联删除和级联更新,约束名为fk_kcdh。

(4)设置平时和期中列的默认值为0。

(5)其它列根据课程表的数据定义。

4、修改表的定义,Transact-SQL脚本存为<你的姓名>_2_04.sql文件。要求:

(1)删除<你的姓名>_student表的特长列;添加出生日期列,允许为空,并要求输入的值不能大于当前日期。

(2)新建<你的姓名>_grade表的ck_cj约束,要求平时、期中和期末的平均成绩不大于100。

三、用Transact-SQL语句在School数据库中操作表

1、将附表所提供给的学生表(特长列已删除,增加了出生日期列)、课程表和成绩表的数

据插入到已建的相应表中。Transact-SQL脚本存为<你的姓名>_3_01.sql文件。

2、修改学生表的学号列,在学号前加两位“19”,在第四位后加入二位“00”。例如:学

号“9607039”改为“199********”;Transact-SQL 脚本存为<你的姓名>_3_02.sql 文件。

3、追加你自己的自然情况资料到<你的姓名>_student 表中,追加你自己《计算机基础

(一)》,《英语(一)》,《体育》课程的平时,期中,期末成绩到<你的姓名>_grade 表

中。Transact-SQL 脚本存为<你的姓名>_3_03.sql 文件。

4、创建显示学号、姓名、籍贯、家庭住址和奖励列的查询,要求:地址列的标题显示为

“家庭住址”籍贯为“云南”,并且获得过奖励,或者家庭住址在“江岸小区”,且住在“4单元”的学生。结果按学号降序排序。Transact-SQL 脚本存为<你的姓名>_3_04.sql 文件。

5、创建显示云南籍学生所选修的课程的课程代号、课程名和学分的查询,要求:

Transact-SQL 脚本存为<你的姓名>_3_05.sql 文件。

6、创建一个计算总评分的用户自定义函数summ(ps,qz,qm), T-SQL 脚本存为<你的姓

名>_3_06.sql 文件。要求:

(1) ps 表示平时;qz 表示期中;qm 表示期末

(2) 计算公式:summ(ps,qz,qm)=ps*10%+qz*30%+qm*60%

7、创建列出每名学生的姓名、选修的课程名、总评分和是否获得学分的视图,Transact-SQL

脚本存为<你的姓名>_3_07.sql 文件。要求:

(1) 视图的名称为<你的姓名>_view1。

(2) 新增“是否获得学分”列,当总评分不小于85分时,该列的值为“√”,否则

为“×”。

(3) 按学号升序排序。

8、创建查询,Transact-SQL 脚本存为<你的姓名>_3_08.sql 文件。要求:

(1) 计算并显示每一门课程的课程名、最高总评分及对应的学生姓名。 (2) 按课程名升序排序。

(3) 将查询生成表<你的姓名>_report 。

9、创建并调用存储过程,Transact-SQL 脚本存为<你的姓名>_3_09.sql 文件。要求:

(1) 存储过程为<你的姓名>_proc ,完成模糊输入学生的姓名。输出该学生选修的

课程门数、总周学时数、总学分数和加权平均分。

(2) 计算加权平均分的公式:

∑∑=N

=1

门课程学分

第门课程学分

第门课程总评分第i i x i i N

i 1

(3) 以自己的姓名为参数,调用存储过程。

10、 创建在<你的姓名>_grade 表上的触发器,Transact-SQL 脚本存为<你的姓

名>_3_10.sql 文件。要求:

(1) 当在<你的姓名>_grade 表上进行插入、删除和更新成绩的操作时,能级联操作

<你的姓名>_report 表。

注意事项:

1、所有标识<你的姓名>之处,均必须用你的姓名的汉语拼音缩写替

代,否则成绩无效。如:chj(常俊的汉语拼音缩写)替代<你的姓

名>。

2、将所有的sql脚本文件合并为学号_姓名_期中.sql脚本文件(注意

加注释),且能正确执行通过。

3、上机考时,请提交合并为学号_姓名_期中.sql的脚本文件。

附表:

相关文档
相关文档 最新文档