版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
selectUSEstudentGOSELECTstud_id,name,birthday,gender,markFROMstud_infoWHEREnameLIKEN'郑_'USEstudentGOSELECTteacher_id,name,tech_title,salaryFROMteacher_infoWHEREtech_titleIN(N'助教',N'讲师',N'副专家')USEstudentGOSELECTAVG(grade)FROMstud_gradeWHEREcourse_id=''USEstudentGOSELECTstud_id学号,name姓名,year(getdate())-year(birthday)年龄,birthday出生日期FROMstud_infoWHEREgender=N'男'ORDERBYbirthdayASCSEstudentGOSELECTsubstring(stud_id,5,2)专业编号,avg(mark)平均入学成绩FROMstud_infoWHEREsubstring(stud_id,3,2)='01'GROUPBYsubstring(stud_id,5,2)USEstudentGOSELECTtech_title,avg(age)FROMteacher_infoGROUPBYtech_titleHAVINGtech_title=N'讲师'USEstudentGOSELECTtech_title,salaryFROMteacher_infoWHEREtech_title=N'讲师'ORDERBYtech_titleCOMPUTEsum(salary)/*查询每个学生的学号、姓名、邮政编码等基本信息及其所选课程的成绩*/USEstudentGOSELECTstud_info.stud_id,stud_,stud_info.zipcode,stud_grade.gradeFROMstud_info,stud_gradeWHEREstud_info.stud_id=stud_grade.stud_id/*在FROM子句中定义内连接查询每门课程名称及其该门课的任课老师的姓名、编号*/USEstudentGOSELECTteacher_info.teacher_id,teacher_,lesson_info.course_nameFROMlesson_infoINNERJOINteacher_infoON(lesson_info.course_id=teacher_info.course_id)/*在stud_info与stud_grade中按学号stud_id进行等值连接,以查询所有参与考试的学生基本信息和成绩分数。*/USEstudentGOSELECT*FROMstud_infoINNERJOINstud_gradeONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id/*stud_info和stud_grade采用自然连接以限制结果集的冗余列数据*/USEstudentGOSELECTstud_grade.*,stud_info.telcode,stud_info.markFROMstud_gradeINNERJOINstud_infoONstud_grade.stud_id=stud_info.stud_idORDERBYstud_grade.stud_idUSEstudentGOINSERTINTOstud_info--为了说明方便,先在学生信息表中插入一条新记录VALUES('',N'王一明','03/03/1986',N'男',N'甘肃省兰州市','','590000',573)SELECTstud_info.stud_id,stud_,stud_grade.course_idFROMstud_infoLEFTOUTERJOINstud_gradeONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id,stud_info.name,stud_grade.course_id/*学生信息表stud_info右外连接学生成绩表stud_grade*/USEstudentGOSELECTstud_info.stud_id,stud_info.name,stud_grade.course_idFROMstud_gradeRIGHTOUTERJOINstud_infoONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id,stud_info.name,stud_grade.course_id/*教师信息表teacher_info全外连接课程信息表lesson_info*/USEstudentGOSELECTlesson_info.course_name,teacher_info.name,teacher_info.teacher_idFROMlesson_infoFULLOUTERJOINteacher_infoONlesson_info.course_id=teacher_info.course_idORDERBYlesson_info.course_name,teacher_info.name,teacher_info.teacher_id/*查询学生成绩表stud_grade中与学号为“”的学生所学的课程相同的学生的学号、姓名、课程号、成绩*/USEstudentGOSELECTa.stud_id,a.name,a.course_id,a.gradeFROMstud_gradea,stud_gradebWHEREa.course_id=b.course_idANDa.stud_id<>''ANDb.stud_id=''/*查询与学号为“”的学生同在计算机应用技术专业(学号stud_id中第5位和第6位为“专业编号”)学习的所有学生的学号、姓名、性别及电话号码*/USEstudentGOSELECTstud_id,name,gender,telcodeFROMstud_infoWHEREsubstring(stud_id,5,2)=(SELECTsubstring(stud_id,5,2)FROMstud_infoWHEREstud_id='')/*在学生成绩表中查询课程类型为“考试”的学生学号、姓名、成绩*/USEstudentGOSELECTstud_id,name,gradeFROMstud_gradeWHEREcourse_idIN(SELECTcourse_idFROMlesson_infoWHEREcourse_type=N'考试')/*查询课程号为“”的多媒体技术这门课的成绩在80至89分的学生的学号、姓名*/USEstudentGOSELECTstud_id,nameFROMstud_infoWHEREEXISTS(SELECT*FROMstud_gradeWHEREstud_grade.stud_id=stud_info.stud_idAND(gradeBETWEEN80AND89)ANDcourse_id='')/*查询所学专业同为“计算机控制技术”或年龄为21岁的所有学生的姓名*/USEstudentGOSELECTstud_id,nameFROMstud_infoWHEREsubstring(stud_id,5,2)='03'UNIONSELECTstud_id,nameFROMstud_infoWHEREDATEDIFF(year,birthday,getdate())=21STUDENTcreatedatabasestudentgoUSEstudentGOCREATETABLEteacher_info(teacher_idCHAR(6)NOTNULL,nameNVARCHAR(4)NOTNULL,genderNCHAR(1),ageINT,tech_titleNVARCHAR(5),telephoneVARCHAR(12),salaryDECIMAL(7,2),course_idCHAR(10));USEstudentGOCREATETABLEteach_schedule(course_idCHAR(10)NOTNULL,course_timeDATETIME,course_weekCHAR(2),room_idCHAR(6),deptcodeCHAR(2),teacher_idCHAR(6))USEstudentGOCREATETABLEstud_info(stud_idCHAR(10)NOTNULL,nameNVARCHAR(4)NOTNULL,birthdayDATETIME,genderNCHAR(1),addressNVARCHAR(20),telcodeCHAR(12),zipcodeCHAR(6),markDECIMAL(3,0))USEstudentGOCREATETABLEstud_grade(stud_idCHAR(10)NOTNULL,nameNVARCHAR(4)NOTNULL,course_idCHAR(10),gradeDECIMAL(4,1))USEstudentGOCREATETABLEstaffroom_info(jysh_idCHAR(4)notnull,jysh_nameNVARCHAR(10),jysh_typeNCHAR(2),jysh_leaderNVARCHAR(4))USEstudentGOCREATETABLEspecialty_code(speccodeCHAR(6),specnameNVARCHAR(10))USEstudentGOCREATETABLElesson_info(course_idCHAR(10)NOTNULL,course_nameNVARCHAR(12)NOTNULL,course_typeNCHAR(2)NOTNULL,course_timeINTNOTNULL,course_markDECIMAL(3,1))USEstudentGOCREATETABLEdept_code(deptcodeCHAR(2),deptnameNVARCHAR(10))USEstudentGOCREATETABLEclassroom_info(room_idCHAR(6)NOTNULL,room_nameNVARCHAR(8),room_typeNVARCHAR(5),room_deviceNVARCHAR(10),room_sizeDECIMAL(3,0))USEstudentGOINSERTINTOteacher_infoVALUES('010101',N'刘娜',N'女',34,N'讲师','',1418,'');INSERTINTOteacher_infoVALUES('010106',N'王吉林',N'男',32,N'讲师','',1418,'');INSERTINTOteacher_infoVALUES('010102',N'邵云鹏',N'男',45,N'专家','',1458,'');INSERTINTOteacher_infoVALUES('010104',N'赵一欧',N'女',26,N'助教','',1380,'');INSERTINTOteacher_infoVALUES('010105',N'王小悦',N'女',35,N'讲师','',1448,'');INSERTINTOteacher_infoVALUES('010103',N'孙乐多',N'男',27,N'助教','',1380,'');USEstudentGOINSERTINTOteach_scheduleVALUES('','08-30-2023','15','120703','01','010104');INSERTINTOteach_scheduleVALUES('','08-30-2023','15','120704','01','010101');INSERTINTOteach_scheduleVALUES('','08-30-2023','13','120705','01','010106');INSERTINTOteach_scheduleVALUES('','08-30-2023','10','120706','01','010105');INSERTINTOteach_scheduleVALUES('','08-30-2023','19','120707','01','010102');INSERTINTOteach_scheduleVALUES('','08-30-2023','14','120708','01','010103');USEstudentGOINSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'张源','12-05-1986',N'男',N'北京市海淀区','','100080',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'赵明','08-06-1986',N'男',N'上海市浦东区','','202300',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'王刚','01-02-1986',N'男',N'天津市南开区','','300000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'陈红','10-25-1986',N'女',N'武汉市汉口区','','430000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'孙强','06-07-1986',N'男',N'重庆市沙坪坝','','400000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'李伟','09-01-1986',N'男',N'北京市大兴县','','102600',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'钱昆','12-06-1986',N'男',N'广州市海珠区','','510000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'郑芳','08-09-1986',N'女',N'江苏省南京市','','210000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'袁飞','03-11-1986',N'男',N'湖南省长沙县','','410000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'孔荣','05-31-1986',N'男',N'云南省昆明市','','650000',600);USEstudentGOINSERTINTOstud_gradeVALUES('',N'张源','',90);INSERTINTOstud_gradeVALUES('',N'赵明','',89);INSERTINTOstud_gradeVALUES('',N'王刚','',87);INSERTINTOstud_gradeVALUES('',N'陈红','',91);INSERTINTOstud_gradeVALUES('',N'孙强','',83);INSERTINTOstud_gradeVALUES('',N'李伟','',86);INSERTINTOstud_gradeVALUES('',N'钱昆','',78);INSERTINTOstud_gradeVALUES('',N'郑芳','',95);INSERTINTOstud_gradeVALUES('',N'袁飞','',95);INSERTINTOstud_gradeVALUES('',N'孔荣','',83);INSERTINTOstud_gradeVALUES('',N'张军','',84);USEstudentGOINSERTINTOstaffroom_infoVALUES('0101',N'计算机应用',N'专业',N'王二毛');INSERTINTOstaffroom_infoVALUES('0102',N'计算机网络',N'专业',N'李四冲');INSERTINTOstaffroom_infoVALUES('0103',N'计算机软件',N'专业',N'赵一生');INSERTINTOstaffroom_infoVALUES('0104',N'计算机管理',N'专业',N'汪三洋');USEstudentGOINSERTINTOspecialty_codeVALUES('040101',N'计算机应用技术');INSERTINTOspecialty_codeVALUES('040102',N'计算机网络技术');INSERTINTOspecialty_codeVALUES('040103',N'计算机控制技术');INSERTINTOspecialty_codeVALUES('040104',N'多媒体技术');INSERTINTOspecialty_codeVALUES('040105',N'计算机软件技术');INSERTINTOspecialty_codeVALUES('040106',N'计算机通信技术');INSERTINTOspecialty_codeVALUES('040107',N'计算机管理技术');USEstudentGOINSERTINTOlesson_infoVALUES('',N'计算机导论',N'考察',30,1.5);INSERTINTOlesson_infoVALUES('',N'Java程序设计',N'考试',60,3.5);INSERTINTOlesson_infoVALUES('',N'微型计算机原理',N'考试',60,3.5);INSERTINTOlesson_infoVALUES('',N'IT市场营销',N'考察',30,1.5);INSERTINTOlesson_infoVALUES('',N'网络互联设备与配置',N'考察',60,2.0);INSERTINTOlesson_infoVALUES('',N'多媒体技术',N'考察',60,3.0);USEstudentGOINSERTINTOdept_codeVALUES('01',N'计算机工程系');INSERTINTOdept_codeVALUES('02',N'管理工程系');INSERTINTOdept_codeVALUES('03',N'机电工程系');INSERTINTOdept_codeVALUES('04',N'食品工程系');INSERTINTOdept_codeVALUES('05',N'轻化工程系');INSERTINTOdept_codeVALUES('06',N'通信工程系');INSERTINTOdept_codeVALUES('07',N'外语工程系');USEstudentGOINSERTINTOclassroom_infoVALUES('120703',N'微机组装与维护',N'实训',N'微机、投影仪',40);INSERTINTOclassroom_infoVALUES('120704',N'计算机网络',N'实验',N'互换机、路由器等',40);INSERTINTOclassroom_infoVALUES('120705',N'数据库',N'计算机机房',N'微机、投影仪',60);INSERTINTOclassroom_infoVALUES('120706',N'软件设计',N'计算机机房',N'微机、投影仪',60);INSERTINTOclassroom_infoVALUES('120707',N'多媒体',N'计算机机房',N'微机、投影仪',60);INSERTINTOclassroom_infoVALUES('120708',N'',N'普通',N'白板、投影仪',120);第五章教学案例/5.1*查询所有课程的具体信息。T-SQL语句:*/USEstudentGOSELECT*FROMlesson_info/5.2*在学生基本信息表中查询所有女生的学号、姓名、出生日期的语句:*/USEstudentGOSELECTstud_id学号,nameAS姓名,出生日期=birthdayFROMstud_infoWHEREgender=N'女'/5.3*查询学生的学号、姓名、考试成绩的语句:*/USEstudentGOSELECTstud_info.stud_id,stud_info.name,stud_grade.gradeFROMstud_info,stud_gradeWHEREstud_info.stud_id=stud_grade.stud_id/5.4*将学生的学号、姓名、性别的查询结果作为新建临时表的语句:*/USEstudentGOSELECTstud_id,name,genderINTOnew_stud_infoFROMstud_infoWHEREgender=N'男'/*5.5查询性别为“女”的学生的姓名、电话、地址和邮编的语句:*/USEstudentGOSELECTname,address,telcode,zipcodeFROMstud_infoWHEREgender=N'女'/*5.6列出姓“郑”、姓名为两个汉字的学生学号、姓名,性别,入学成绩的语句:*/USEstudentGOSELECTstud_id,name,birthday,gender,markFROMstud_infoWHEREnameLIKEN'郑_'/*5.7查询教师职称为“助教”,或为“讲师”,或为“副专家”的教师编号、姓名、职称及工资的语句:*/USEstudentGOSELECTteacher_id,name,tech_title,salaryFROMteacher_infoWHEREtech_titleIN(N'助教',N'讲师',N'副专家')/*5.8求“Java程序设计”课程平均成绩的语句:*/USEstudentGOSELECTAVG(grade)FROMstud_gradeWHEREcourse_id=''/*5.9查询所有男生学号、姓名和年龄,并按出生日期进行排列(升序)的语句:*/USEstudentGOSELECTstud_id学号,name姓名,year(getdate())-year(birthday)年龄,birthday出生日期FROMstud_infoWHEREgender=N'男'ORDERBYbirthdayASC/*5.10记录计算机工程系各个专业的学生的平均入学成绩的语句:*/USEstudentGOSELECTsubstring(stud_id,5,2)专业编号,avg(mark)平均入学成绩FROMstud_infoWHEREsubstring(stud_id,3,2)='01'GROUPBYsubstring(stud_id,5,2)/*5.11在教师信息表中,按职称分组记录“讲师”的平均年龄的语句:*/USEstudentGOSELECTtech_title,avg(age)FROMteacher_infoGROUPBYtech_titleHAVINGtech_title=N'讲师'/*5.12对teacher_info中职称为“讲师”的工资,生成汇总行和明细行的语句:*/USEstudentGOSELECTtech_title,salaryFROMteacher_infoWHEREtech_title=N'讲师'ORDERBYtech_titleCOMPUTEsum(salary)/*5.13查询每个学生的学号、姓名、邮政编码等基本信息及其所选课程的成绩*/USEstudentGOSELECTstud_info.stud_id,stud_,stud_info.zipcode,stud_grade.gradeFROMstud_info,stud_gradeWHEREstud_info.stud_id=stud_grade.stud_id/*5.14在FROM子句中定义内连接查询每门课程名称及其该门课的任课老师的姓名、编号*/USEstudentGOSELECTteacher_info.teacher_id,teacher_info.name,lesson_info.course_nameFROMlesson_infoINNERJOINteacher_infoON(lesson_info.course_id=teacher_info.course_id)/*5.15在stud_info与stud_grade中按学号stud_id进行等值连接,以查询所有参与考试的学生基本信息和成绩分数。*/USEstudentGOSELECT*FROMstud_infoINNERJOINstud_gradeONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id/*5.16stud_info和stud_grade采用自然连接以限制结果集的冗余列数据*/USEstudentGOSELECTstud_grade.*,stud_info.telcode,stud_info.markFROMstud_gradeINNERJOINstud_infoONstud_grade.stud_id=stud_info.stud_idORDERBYstud_grade.stud_id/*5.17学生成绩表stud_grade左外连接学生信息表stud_info*/USEstudentGOINSERTINTOstud_info--为了说明方便,先在学生信息表中插入一条新记录VALUES('',N'王一明','03/03/1986',N'男',N'甘肃省兰州市','','590000',573)SELECTstud_info.stud_id,stud_inf,stud_grade.course_idFROMstud_infoLEFTOUTERJOINstud_gradeONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id,stud_info.name,stud_grade.course_id/*5.18学生信息表stud_info右外连接学生成绩表stud_grade*/USEstudentGOSELECTstud_info.stud_id,stud_info.name,stud_grade.course_idFROMstud_gradeRIGHTOUTERJOINstud_infoONstud_info.stud_id=stud_grade.stud_idORDERBYstud_info.stud_id,stud_info.name,stud_grade.course_id/*5.19教师信息表teacher_info全外连接课程信息表lesson_info*/USEstudentGOSELECTlesson_info.course_name,teacher_info.name,teacher_info.teacher_idFROMlesson_infoFULLOUTERJOINteacher_infoONlesson_info.course_id=teacher_info.course_idORDERBYlesson_info.course_name,teacher_info.name,teacher_info.teacher_id/*5.20查询学生成绩表stud_grade中与学号为“”的学生所学的课程相同的学生的学号、姓名、课程号、成绩*/USEstudentGOSELECTa.stud_id,a.name,a.course_id,a.gradeFROMstud_gradea,stud_gradebWHEREa.course_id=b.course_idANDa.stud_id<>''ANDb.stud_id=''/*5.21查询与学号为“”的学生同在计算机应用技术专业(学号stud_id中第5位和第6位为“专业编号”)学习的所有学生的学号、姓名、性别及电话号码*/USEstudentGOSELECTstud_id,name,gender,telcodeFROMstud_infoWHEREsubstring(stud_id,5,2)=(SELECTsubstring(stud_id,5,2)FROMstud_infoWHEREstud_id='')/*5.22在学生成绩表中查询课程类型为“考试”的学生学号、姓名、成绩*/USEstudentGOSELECTstud_id,name,gradeFROMstud_gradeWHEREcourse_idIN(SELECTcourse_idFROMlesson_infoWHEREcourse_type=N'考试')/*5.23查询课程号为“”的多媒体技术这门课的成绩在80至89分的学生的学号、姓名*/USEstudentGOSELECTstud_id,nameFROMstud_infoWHEREEXISTS(SELECT*FROMstud_gradeWHEREstud_grade.stud_id=stud_info.stud_idAND(gradeBETWEEN80AND89)ANDcourse_id='')/*5.24查询所学专业同为“计算机控制技术”或年龄为21岁的所有学生的姓名*/USEstudentGOSELECTstud_id,nameFROMstud_infoWHEREsubstring(stud_id,5,2)='03'UNIONSELECTstud_id,nameFROMstud_infoWHEREDATEDIFF(year,birthday,getdate())=21第6章案例/*6.1针对表stud_info创建一个简朴视图*/USEstudentGOCREATEVIEWstud_view2ASSELECTstud_id,name,address,telcode,zipcodeFROMstud_infoselect*fromstud_view2/*6.2使用WITHENCRYPTION加密选项为表stud_info创建视图*/USEstudentGO/*查看stud_info表中的所有数据。*/SELECT*FROMstud_infoGO/*基于stud_info,创建视图stud_view3。*/CREATEVIEWstud_view3WITHENCRYPTIONASSELECTstud_idas学号,nameas姓名,addressas地址,telcodeas电话号码,zipcodeas邮政编码FROMstud_infoWHEREmark>=560GOsp_helptextstud_view3sp_helptextstud_view2/*查看新建视图stud_view3中的所有数据。*/SELECT*FROMstud_view3/*6.3建立计算机系(学号第3~4位为“01”)学生的视图,并规定进行修改和插入操作时仍需保证视图只有计算机系的学生*/CREATEVIEWstud_computerASSELECTstud_id,name,genderFROMstud_infoWHEREsubstring(stud_id,3,2)='01'WITHCHECKOPTIONSELECT*FROMstud_computer/*6.4建立课室(classroom_info)、教师(teacher_info)、课程(lesson_info)、课程安排表(teach_schedule)互相对照的视图(schedule_view)*/USEStudentGOCREATEVIEWschedule_viewASSELECTlesson.course_name,teacher.name,classroom.room_name,schedule.course_week,schedule.course_time,schedule.course_idFROMclassroom_infoclassroom,teacher_infoteacher,lesson_infolesson,teach_schedulescheduleWHEREclassroom.room_id=schedule.room_idANDteacher.teacher_id=schedule.teacher_idANDlesson.course_id=schedule.course_idSELECT*FROMschedule_view/*6.5修改视图stud_view2定义*/USEstudentGO/*显示修改前视图stud_view2的内容。*/SELECT*FROMstud_view2GOALTERVIEWstud_view2ASSELECTstud_id,name,gender,markFROMstud_infoWHEREmark<600GO/*显示修改后视图stud_view2的内容。*/SELECT*FROMstud_view2/*6.6查找视图teacher_view中职称为专家的教师编号和姓名*/USEstudentGOCREATEVIEWteacher_viewASSELECTteacher_id,name,tech_titleFROMteacher_infoWHEREsubstring(teacher_id,1,2)='01'GOSELECTteacher_id,nameFROMteacher_viewWHEREtech_title=N'专家'/*6.7在计算机系学生的视图(stud_computer)中找出性别为男的学生*/USEstudentGOSELECTstud_id,name,genderFROMstud_computerWHEREgender=N'男'/*6.8向计算机系教师视图teacher_view中插入一条记录(teacher_id:010108;name:李里;tech_title:副专家)*/USEstudentGOINSERTINTOteacher_viewVALUES('010108',N'李里',N'副专家')/*6.9将计算机系教师视图teacher_view中王小悦的职称改为“副专家”*/USEstudentGOUPDATEteacher_viewSETtech_title=N'副专家'WHEREname=N'王小悦'/*6.10删除计算机系教师视图teacher_view中李里教师的记录*/USEstudentGODELETEFROMteacher_viewWHEREname=N'李里'5、7章索引案例7.1/*在数据库student中的stud_grade表中stud_id列上创建名为stud_id_index的聚集索引。*/USEstudentGOCREATECLUSTEREDINDEXstud_id_indexONstud_grade(stud_id)GO7.2/*在数据库student中的stud_grade表中course_id列上创建名为CourseIndex的非聚集索引*/USEstudentGOCREATENONCLUSTEREDINDEXCourseIndexONstud_grade(course_id)GO7.3/*用系统存储过程sp_helpindex查看student数据库中stud_info表的索引信息*/USEstudentGOEXECsp_helpindexstud_infoGO7.4/*在student库中的stud_info表上查询所有男生的姓名和年龄,并显示查询解决过程中的磁盘活动记录信息。*/USEStudentGOSETSHOWPLAN_ALLOFFGOSETSTATISTICSIOONGOSELECTnameAS姓名,YEAR(GETDATE())-YEAR(birthday)AS年龄FROMstud_infoWHEREgender=N'男'GO/*删除student数据库stud_grade表中stud_id列上所创建的聚集索引stud_id_index*/USEstudentGODROPINDEXstud_grade.stud_id_indexGO第八章示例/*8.1针对教师基本信息表teacher_info,创建一个名称为teacher_proc1的存储过程,该存储过程的功能是从数据表teacher_info中查询所有男教师的信息*/USEstudentGOCREATEPROCEDUREteacher_proc1ASSELECT*FROMteacher_infoWHEREgender=N'男'GO/*8.2执行存储过程teacher_proc1*/USEstudentGOEXECUTEteacher_proc1GO/*8.3针对教师基本信息表teacher_info,创建一个名称为teacher_proc2的存储过程,执行存储过程将完毕向数据表teacher_info中插入一条记录,新记录的值由参数提供*/USEstudentGOCREATEPROCEDUREteacher_proc2(@nochar(6),@namnvarchar(8),@sexnchar(1),@ageint,@titlenchar(5),@telvarchar(12),@saladecimal(7),@numchar(10))ASINSERTINTOteacher_infoVALUES(@no,@nam,@sex,@age,@title,@tel,@sala,@num)GO/*8.4使用参数名传送参数值的方法来执行存储过程teacher_proc2,完毕向数据表teacher_info中插入一条记录*/USEstudentGOEXECUTEteacher_proc2@no='010108',@nam=N'黎铁烙',@sex=N'男',@age=51,@title=N'高讲',@tel='',@sala=1250.0,@num=''/*8.5针对教师基本信息表teacher_info,创建一个名称为teacher_proc3的存储过程,执行存储过程时将向数据表teacher_info中插入一条记录,新记录的值由参数提供,假如未提供职称tech_title的值时,由参数的默认值代替*/USEstudentGOCREATEPROCEDUREteacher_proc3(@nochar(6),@namnvarchar(4),@sexnchar(1),@ageint,@titlenchar(5)=N'无',@telvarchar(12),@saladecimal(7),@numchar(10))ASINSERTINTOteacher_infoVALUES(@no,@nam,@sex,@age,@title,@tel,@sala,@num)GOEXECUTEteacher_proc3@no='010110',@nam=N'张小波',@sex=N'女',@age=18,@tel='',@sala=1250.0,@num=''/*8.6在student数据库上新建一个名为stud_proc1的存储过程,该存储过程定义了两个日期时间类型的输入参数和一个字符型输入参数,返回所有出生日期在两个输入日期之间,性别与输入的字符型参数相同的学生信息,其中字符型输入参数指定的默认值为“女”*/USEstudentGOCREATEPROCstud_proc1@startdatedatetime,@enddatedatetime,@sexnchar(1)=N'女'ASIF(@startdateISNULLor@enddateISNULLor@sexISNULL)BEGINRAISERROR('NULLvalueareinvalid',5,5)RETURNENDSELECT*FROMstud_infoWHERE(birthdayBETWEEN@startdateAND@enddate)ANDgender=@sexGOEXECstud_proc1@startdate='1986-08-01',@enddate='1986-10-25'/*8.7在数据库student上新建一名为stud_proc2的存储过程,其功能是输入两个日期型数据,并使用输出参数返回这两个出生日期之间的所有学生人数*/USEstudentGOCREATEPROCEDUREstud_proc2@startdatedatetime,@enddatedatetime,@recordcountintOUTPUTASIF@startdateISNULLor@enddateISNULLBEGINRAISERROR('NULLvalueareinvalid',5,5)RETURNENDSELECT*FROMstud_infoWHEREbirthdayBETWEEN@startdateAND@enddateSELECT@recordcount=@@ROWCOUNTGO/*8.8执行stud_proc2存储过程,返回出生日期在1986年1月1日与1986年12月31日的学生记录的条数*/USEstudentGODECLARE@recordnumberint/*声明为局部变量,用来存放输出参数的值*/EXECstud_proc2'01-01-1986','12-31-1986',@recordnumberOUTPUTPRINT'Theordercountis:'+STR(@recordnumber)/*8.9在创建一个按照性别记录人数的存储过程stud_proc3,规定输入性别的值后,返回相应性别的学生人数,但需保证其在每次被执行时都被重编译解决*/USEstudentGOCREATEPROCEDUREstud_proc3(@in_sexnchar(2),@out_numINTOUTPUT)WITHRECOMPILEASBEGINIF@in_sex=N'男'SELECT@out_num=count(gender)FROMstud_infoWHEREgender=N'男'ELSESELECT@out_num=count(gender)FROMstud_infoWHEREgender=N'女'END--执行所定义的存储过程:DECLARE@man_numintEXECstud_proc3N'女',@man_numOUTPUTSELECT@man_num/*8.10查看数据库student中存储过程teacher_proc1的源代码*/EXECsp_helptextteacher_proc1/*8.11修改存储过程teacher_proc1,返回所有性别为“女”的学生学号、姓名、地址、电话等基本信息。并对存储过程指定重编译解决和加密选项*/USEstudentGOALTERPROCEDUREteacher_proc1WITHRECOMPILE,ENCRYPTIONASSELECTteacher_id,name,tech_title,telephoneFROMteacher_infoWHEREgender=N'女'GO/*8.12在数据库student的表teacher_info上创建一个teacher_trigger1触发器,当执行INSERT操作该触发器被触发(即向所定义触发器的表中插入数据时将触发其触发器)*/USEstudentGOCREATETRIGGERteacher_trigger1ONteacher_infoFORINSERTASRAISERROR('unauthorized',10,1)--当用户向表teacher_info中插入数据时将触发触发器,但是数据仍能被插入表中,--如向表中加入如下记录内容:INSERTINTOteacher_infoVALUES('010111',N'柴目火',N'男','55',N'政工师','',2119,'')/*8.13在数据库student的表teacher_info上建立一个名为teacher_trigger3的触发器,该触发器将被操作UPDATE所激活,该触发器将不允许用户修改表的name列(这里将不使用INSTEADOF而是通过ROLLBACKTRANSACTION子句恢复本来数据的方法来实现列不被修改)*/USEstudentGOCREATETRIGGERteacher_trigger3ONteacher_infoFORUPDATEASIFUPDATE(name)BEGINRAISERROR('Unauthorized!',10,1)ROLLBACKTRANSACTIONEND--建好触发器后试着执行UPDATE操作:UPDATEteacher_infoSETname=N'黄活新'WHEREteacher_id='010111'6、9章事务案例9.1/*将student数据库中学生基本信息表(stud_info)的学号stud_id由修改为*/USEstudentGOBEGINTRANstud_transaction--开始一个事务UPDATEstud_infoSETstud_id=''WHEREstud_id=''UPDATEstud_gradeSETstud_id=''WHEREstud_id=''COMMITTRANstud_transaction--提交事务9.2/*建立一个名为student_manager1事务,事务将为课程号最后两位为06的多媒体技术课程、所有学生成绩进行FLOOR(SQRT(grade)*10)解决*/USEstudentGODECLARE@trannameVARCHAR(20)SELECT@tranname='student_manager1'BEGINTRAN@trannameGOUPDATEstud_gradeSETgrade=FLOOR(SQRT(grade)*10)WHEREcourse_idLIKE'%06'GOCOMMITTRAN9.3/*使用事务解决方式对表stud_grade执行更新操作,成功则提交事务,失败则取消
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年注册岩土工程师考试岩土工程地质勘察知识点巩固习题
- 2026事业单位工勤技能-福建-福建假肢制作装配工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-甘肃-甘肃热力运行工三级(高级工)历年参考题库含答案详解
- 2026事业单位工勤技能-甘肃-甘肃堤灌维护工二级(技师)历年参考题库含答案详解
- 2026事业单位工勤技能-湖南-湖南食品检验工四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-湖南-湖南殡葬服务工五级(初级工)历年参考题库含答案详解
- 2026事业单位工勤技能-湖南-湖南印刷工一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-湖北-湖北药剂员四级(中级工)历年参考题库含答案详解
- 2026事业单位工勤技能-湖北-湖北放射技术员一级(高级技师)历年参考题库含答案详解
- 2026事业单位工勤技能-湖北-湖北公路养护工一级(高级技师)历年参考题库含答案详解
- 2025广东惠州市博罗县自然资源局招聘编外人员76人考试笔试备考题库及答案解析
- 办公室文秘工作日常管理方案
- 化学实验指导教材编写规定
- 旅游安全培训风险课件
- CN120192646A 一种pha纳米水性悬浮液及其制备方法与应用
- DB13T 5406-2021 耕地地力主要指标分级诊断
- 景区合作商家管理制度
- JG/T 191-2006城市社区体育设施技术要求
- 个人债务转让合同范例
- 《分数除法(二)》(教学设计)-2023-2024学年北师大版五年级数学下册
- 不停电作业推广方案
评论
0/150
提交评论