《数据库设计与应用》期中试题1一、用Transact-SQL语句定义数据库(每题6分,共12分)1、创建名为School的数据库,该数据库包含二个大小为2MB的数据文件(文件名为:你的姓名_school_dat1和你的姓名_school_dat2)和一个大小为1MB的事务日志文件(文件名为:你的姓名_school_log)。限制数据文件大小为5MB、日志文件为2MB。对于所有文件,允许20%的文件增长。请将创建数据库的Transact-SQL脚本存为你的姓名_1_01.sql文件。解:dropdatabaseschoolgocreatedatabaseschoolonprimary(name='lts_school_dat1',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\lts_school_dat1.mdf',size=3MB,maxsize=5MB,filegrowth=20%),filegroupfgroup(name='lts_school_dat2',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\lts_school_dat2.ndf',size=2MB,maxsize=5MB,filegrowth=20%)logon(name='lts_school_log',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\lts_school_log.ldf',size=1MB,maxsize=2MB,filegrowth=20%)go《数据库设计与应用》期中试题22、修改数据文件你的姓名_school_dat1,增加其大小至3MB,并允许按0.5MB(512KB)的增量增至最大大小6MB;删除数据文件你的姓名_school_dat2;添加一个新的1MB的数据文件(文件名为:你的姓名_school_dat3),允许它以1MB增量增至磁盘被充满。请将Transact-SQL脚本存为你的姓名_1_02.sql文件。解:alterdatabaseschoolmodifyfile(name='lts_school_dat1',size=4MB,maxsize=6MB,filegrowth=512KB)goalterdatabaseschoolremovefile1_school_dat2goalterdatabaseschooladdfile(name='lts_school_dat3',filename='C:\ProgramFiles\MicrosoftSQLServer\MSSQL.1\MSSQL\Data\lts_school_dat3.ndf',size=1MB,maxsize=unlimited,filegrowth=1MB)go《数据库设计与应用》期中试题3二、用Transact-SQL语句在School数据库中定义表(每题6分,共30分)1、根据所给的学生表建立表名为你的姓名_student的表,T-SQL脚本存为你的姓名_2_01.sql文件。要求:(1)设置学号列数据类型为char(11),主键约束,约束名为pk_xh;(2)设置身份证号码列唯一约束,约束名为un_xh;(3)在你的姓名_student表的姓名列上创建一个非聚集索引inx_sname。(4)其它列根据学生表的数据定义。解:createtablelts_student(学号char(11)notnullconstraintpk_xhprimarykey,姓名char(20)notnull,身份证号intnotnullconstraintun_xhunique,籍贯char(20)notnull,家庭住址char(20)notnull,电话intnotnull,特长char(20),奖励char(40),处分char(40),)gocreateuniquenonclusteredindexinx_snameonlts_student(姓名)go2、根据所给的课程表用Transact-SQL语句建立表名为你的姓名_course的表,Transact-SQL脚本存为你的姓名_2_02.sql文件。要求:(1)设置课程代号列数据类型为char(5),主键约束,约束名为pk_kcdh。(2)设置检查约束,约束名为ck_ccd,条件为课程代号的第一位只能是数字字符“0”到“4”,(表示学年),第二位只能是数字字符“0”、“1”(表示上下学期)。(3)设置周学时列默认值为3,学分默认值为2。《数据库设计与应用》期中试题4(4)其它列根据课程表的数据定义。解:createtablelts_course(课程代码char(5)notnullconstraintpk_kcdhprimarykeyconstraintck_ccdcheck(char(0)in('0','1','2','3','4')andchar(1)in('0','1')),课程名char(40)notnull,周学时intnotnulldefault3,学分intnotnulldefault2)go3、根据所给的成绩表建立表名为你的姓名_grade的表,Transact-SQL脚本存为你的姓名_2_03.sql文件。要求:(1)参考学生表和课程表的设置,考察并设置成绩表的主键约束,约束名为pk_id。(2)设置学号列外键约束并级联删除和级联更新,约束名为fk_xh。(3)设置课程代号列外键约束并级联删除和级联更新,约束名为fk_kcdh。(4)设置检查约束,约束名为ck_gcj,条件为平时、期中和期末成绩的和不大于300。(5)其它列根据课程表的数据定义。解:createtablelts_grade(学号char(11)notnull,课程代号char(5)notnull,平时int,期中int,期末int)goaltertablelts_gradeaddconstraintpk_idprimarykey(学号,课程代号)goaltertablelts_gradeaddconstraintfk_xhforeignkey(学号)referenceslts_student(学号)onupdatecascadeondeletecascadegoaltertablelts_gradeaddconstraintfk_kcdhforeignkey(课程代号)referenceslts_course(课程代号)onupdatecascadeondeletecascadegoaltertablelts_grade《数据库设计与应用》期中试题5addconstraintck_gcjcheck((平时+期中+期末)=300)Go4、修改表的定义,Transact-SQL脚本存为你的姓名_2_04.sql文件。要求:(1)删除你的姓名_student表的特长列;添加出生日期列,允许为空,并要求输入的值不能大于当前日期。(2)增加你的姓名_course表的检查约束ck_czx,条件为周学时数大于等于学分数。解:altertablelts_studentdropcolumn特长goaltertablelts_studentadd出生日期smalldatetimenullcheck(出生日期=getdate())goaltertablelts_courseaddconstraintck_czxcheck(周学时=学分)go三、用Transact-SQL语句在School数据库中操作表(每题6分,共54分)1、将所给的学生表(特长列已删除,增加了出生日期列)、课程表和成绩表的数据增加到已建的相应表中。Transact-SQL脚本存为你的姓名_3_01.sql文件。解:--课程表:insertlts_coursevalues('20511','世界近代史',4,4)insertlts_course《数据库设计与应用》期中试题6values('10101','大学语文',2,2)insertlts_coursevalues('20801','计算机基础(一)',4,3)insertlts_coursevalues('10218','高等代数',4,4)insertlts_coursevalues('11001','英语(一)',6,6)insertlts_coursevalues('20113','外国文学',4,4)insertlts_coursevalues('30416','接口技术',4,3)insertlts_coursevalues('20327','报刊编辑学',2,2)insertlts_coursevalues('20521','中国民族史',3,2)insertlts_coursevalues('30213','数论',4,4)insertlts_coursevalues('11101','体育',2,2)insertlts_coursevalues('21003','英语(二)',4,4)insertlts_coursevalues('30211','概率统计',3,3)insertlts_coursevalues('30232','数学分析',2,2)insertlts_coursevalues('40711','国际投资学',2,2)insertlts_coursevalues('40722','国际商法',2,2)insertlts_coursevalues('30832','算法设计',4,4)insertlts_coursevalues('10812','数字电路',4,4)insertlts_coursevalues('10715','高等数学',4,4)insertlts_coursevalues('20111','古代汉语',3,3)insertlts_coursevalues('30802','计算机基础(二)',3,3)insertlts_coursevalues('30423','电磁场理论',3,3)insertlts_coursevalues('40331','传播心理学',2,2)insertlts_course《数据库设计与应用》期中试题7values('40625','色谱学',2,2)insertlts_coursevalues('20314','新闻学概论',2,2)insertlts_coursevalues('10811','离散数学',2,2)insertlts_coursevalues('30819','编辑技术',4,4)insertlts_coursevalues('20534','中国近代史',4,4)insertlts_coursevalues('10712','政治经济学',3,3)insertlts_coursevalues('20115','现代汉语',4,4)insertlts_coursevalues('10222','解析几何',2,2)insertlts_coursevalues('30412','近代物理实验',3,2)insertlts_coursevalues('40316','当代新闻史',2,2)insertlts_coursevalues('40612','配位化学',3,3)insertlts_coursevalues('20328','现代新闻报道',4,4)go--成绩表:insertlts_gradevalues('9805026','20801',75,87,82)insertlts_gradevalues('9702033','30802',80,89,91)insertlts_grad