综合实验一班级:::班级:电子信息工程::语句定义数据库:一、用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)在<你的>_student表的列上创建一个非聚集索引inx_sname。(4)其它列根据学生表的数据定义。
2、根据所给的课程表用Transact-SQL语句建立表名为<你的>_course的表,Transact-SQL脚本存为<你的>_2_02.sql文件。要求:(1)设置课程代号列数据类型为char(5),主键约束,约束名为pk_kcdh。(2)设置检查约束,约束名为ck_ccd,条件为课程代号的第一位只能是数字字符“0”到“4”(表示学年),,第二位只能是数字字符“0”“1”、(表示上下学期)。(3)设置周学时列默认值为3,学分默认值为2。(4)其它列根据课程表的数据定义。
3、根据所给的成绩表建立表名为<你的>_grade的表,Transact-SQL脚本存为<你的>_2_03.sql文件。要求:(1)参考学生表和课程表的设置,考察并设置成绩表的主键约束,约束名为pk_id。(2)设置列外键约束并级联删除和级联更新,约束名为fk_xh。(3)设置课程代号列外键约束并级联删除和级联更新,约束名为fk_kcdh。(4)设置检查约束,约束名为ck_gcj,条件为平时、期中和期末成绩的和不大于300。(5)其它列根据课程表的数据定义。
4、修改表的定义,Transact-SQL脚本存为<你的>_2_04.sql文件。要求:(1)删除<你的>_student表的特长列;添加出生日期列,允许为空,并要求输入的值不能大于当前日期。(2)增加<你的>_course表的检查约束ck_czx,条件为周学时数大于等于你的学分数。
数据库中操作表:三、用Transact-SQL语句在School数据库中操作表:
1、将所给的学生表(特长列已删除,增加了出生日期列)、课程表和成绩表的数据增加到已建的相应表中。Transact-SQL脚本存为<你的>_3_01.sql文件。
2、修改学生表的列,在前加两位“19”,在第四位后加入二位“10”。例如:“9607039”改为“19960710039”;即编码代表的含义为:前四位表示是年级,如:1996级;接着的三位表示专业,如:071;后四位表示编号,如:0039。Transact-SQL脚本存为<你的>_3_02.sql文件。
3、追加你自己的自然情况资料到<你的>_student表中,追加你自己《计算机基础(一),》《英语(一),》《体育》课程的平时,期中,期末成绩到<你的>_grade表中。Transact-SQL脚本存为<你的>_3_03.sql文件。
4、创建显示、、籍贯、家庭住址和奖励列的查询,要求:地址列的标题显示为“家庭住址”;查询条件是籍贯为“云南”,或者是家庭住址在“江岸小区”,且住在“4单元”的学生。结果按降序排序。Transact-SQL脚本存为<你的>_3_04.sql文件。
5、查询1998级并且姓“李”的学生的和。Transact-SQL脚本存为<你
的>_3_05.sql文件。
6、查询每名学生每门课程的总评分(总评分为平时占10%,期中占20%,期末,显示,课程代号和总评分。Transact-SQL脚本存为<你的姓占70%)名>_3_06.sql文件。
7、创建存储过程,查询各类学分(如:4,3)的课程数。Transact-SQL脚本存为<你的>_3_07.sql文件。
8、查询各学年的课程数,学时总数和学分总数。Transact-SQL脚本存为<你的姓名>_3_08.sql文件。9、查询选修了三门以上(含三门)课程的学生的。Transact-SQL脚本存为<你的>_3_09.sql文件。
∑第i门课程总评分×第i门课程学分
i=1N
N
∑第i门课程学分
i=1
createviewview1asselectdyk_student.as,count(dyk_grade.课程代号)as选修课程门数,sum(dyk_course.周学时)as总周学时,sum(dyk_course.学分)as总学分,sum((dyk_grade.平时*0.1+dyk_grade.期中*0.2+dyk_grade.期末*0.6)*dyk_course.学分)/sum(dyk_course.学分)as加权平均分fromdyk_studentinnerjoindyk_gradeondyk_student.=dyk_grade.innerjoindyk_courseondyk_grade.课程代号=dyk_course.课程代号groupbydyk_student.goselect*fromview1orderby加权平均分desc
11、创建统计课程选修人数、最高总评分和最低总评分的查询,Transact-SQL脚本存为<你的>_3_11.sql文件。要求:(1)所有选修该门课程的学生的总评分必须都及格。都及格。都及格(2)结果按选修人数降序排序;(3)将查询生成表<你的>_sum。
12、创建查询,Transact-SQL脚本存为<你的>_3_12.sql文件。要求:(1)计算并显示每一门课程的课程名、最高总评分及对应的学生。(2)按课程名升序排序。(3)将查询生成表<你的>_report。。
13、创建存储过程,Transact-SQL脚本存为<你的>_3_13.sql文件。要求:(1)通过输入参数学生(如“章山"),筛选出该学生的基本信息。(2)对不存在此学生的输入值,必须作一检测,打印信息“不存在此学生”。
14、为学生表创建触发器,Transact-SQL脚本存为<你的>_3_14.sql文件。要求:(1)当用户成功删除该表中的一条或多条记录时,触发器自动删除成绩表中与之有关的记录。(2)在创建触发器之前要判断是否有同名的触发器存在,若存在则删除之。
(3)
学生表
960703999070029801055身份证号码籍贯张昆李明王风530120169021101530120170060701530120171072501530120170122901530120168121101530120174050101530120175040702530120173021201530120172092801530120174092201530120174110901530120170080401安徽云南湖北湖南云南黑龙江江苏四川贵州云南云南江苏家庭住址江岸小区45幢3单元408江岸小区50幢2单元409白马小区15幢3单元101金星小区8幢3单元208静园小区12幢3单元109江岸小区40幢1单元612江岸小区30幢4单元222白马小区25幢3单元410金星小区55幢3单元214阳光小区55幢5单元112阳光小区2幢1单元444阳光小区8幢2单元808电话特长奖励处分无无无无无无无5033228唱歌、摔跤被评为三好学生5033226跳舞、篮球被评为三好学生41332243133218围棋象棋无被评为特优生无
9902006黄光美9704001960300196060059803011钱丽王迷赵人李游
2133227排球、足球
5033219唱歌、跳舞被评为红花少年50331234133124演讲集邮无
获集邮展览三等奖无因作弊受处分无无无
9908088孙客如960806698050269702033于云李春高城
3133177长跑、足球获省级长跑第二名313322231337893148212摄影围棋围棋获优秀作文奖无无
课程表
课程代号2051110101208011021811001201133041620327205213021311101210033021130232407114072230832108121071520111308023042340331406252031410811308192053410712201151022230412403164061220328课程名世界近代史大学语文计算机基础(一)高等代数英语(一)外国文学接口技术报刊编辑学中国民族史数论体育英语(二)概率统计数学分析国际投资学国际商法算法设计数字电路高等数学古代汉语计算机基础(二)电磁场理论传播心理学色谱学新闻学概论离散数学编译技术中国近代史政治经济学现代汉语解析几何近代物理实验当代新闻史配位化学现代新闻报道周学时学分4422434644234243222444333222244342323446432242432224443332222443422234
成绩表
9805026970203399070029801055990200697040019803011990808898050269702033990700298010559902006980301199080889805026980502697020339907002980105599020069704001980301196070399907002980105599020069704001960300196060059803011990808896080669907002980105599020069704001960300196060059803011990808896080669908088课程代号平时期中期末20801308021100120113110013041620327110012052130213111012100311101210031110121003205113023210101208011010130802208014071110715201111021830423403314062520314108113081910712201151022230412403164061220328108123083210101758091707880959090888870887882839080847685906085837875806783768278908085786670908095808789836586909391976965906584758582849678888750809060638172857692849682918771788867928282918555819090879676728472827884868392608182518886655285708476898297877980736087839387