2023年數據庫應用技術案例_第1頁
2023年數據庫應用技術案例_第2頁
2023年數據庫應用技術案例_第3頁
2023年數據庫應用技術案例_第4頁
2023年數據庫應用技術案例_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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(getdat(yī)e())-year(birthday)年齡,birthday出生日期FROMstud_infoWHEREgender=N'男'ORDERBYbirthdayASCSEstudentGOSELECTsubstring(stud_id,5,2)專業(yè)編號,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=''/*查詢與學號為“”的學生同在計算機應用技術專業(yè)(學號stud_id中第5位和第6位為“專業(yè)編號”)學習的所有學生的學號、姓名、性別及電話號碼*/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='')/*查詢所學專業(yè)同為“計算機控制技術”或年齡為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'北京市海淀區(qū)','','100080',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'趙明','08-06-1986',N'男',N'上海市浦東區(qū)','','202300',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'王剛','01-02-1986',N'男',N'天津市南開區(qū)','','300000',560);INSERTINTO"STUD_INFO"("STUD_ID","NAME","BIRTHDAY","GENDER","ADDRESS","TELCODE","ZIPCODE","MARK")VALUES('',N'陳紅','10-25-1986',N'女',N'武漢市漢口區(qū)','','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'廣州市海珠區(qū)','','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'專業(yè)',N'王二毛');INSERTINTOstaffroom_infoVALUES('0102',N'計算機網絡',N'專業(yè)',N'李四沖');INSERTINTOstaffroom_infoVALUES('0103',N'計算機軟件',N'專業(yè)',N'趙一生');INSERTINTOstaffroom_infoVALUES('0104',N'計算機管理',N'專業(yè)',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'網絡互聯(liá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記錄計算機工程系各個專業(yè)的學生的平均入學成績的語句:*/USEstudentGOSELECTsubstring(stud_id,5,2)專業(yè)編號,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查詢與學號為“”的學生同在計算機應用技術專業(yè)(學號stud_id中第5位和第6位為“專業(yè)編號”)學習的所有學生的學號、姓名、性別及電話號碼*/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查詢所學專業(yè)同為“計算機控制技術”或年齡為21歲的所有學生的姓名*/USEstudentGOSELECTstud_id,nameFROMstud_infoWHEREsubstring(stud_id,5,2)='03'UNIONSELECTstud_id,nameFROMstud_infoWHEREDATEDIFF(year,birthday,getdate())=21第6章案例/*6.1針對表stud_info創(chuàng)建一個簡樸視圖*/USEstudentGOCREATEVIEWstud_view2ASSELECTstud_id,name,address,telcode,zipcodeFROMstud_infoselect*fromstud_view2/*6.2使用WITHENCRYPTION加密選項為表stud_info創(chuàng)建視圖*/USEstudentGO/*查看stud_info表中的所有數據。*/SELECT*FROMstud_infoGO/*基于stud_info,創(chuàng)建視圖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”)學生的視圖,并規(guī)定進行修改和插入操作時仍需保證視圖只有計算機系的學生*/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列上創(chuàng)建名為stud_id_index的聚集索引。*/USEstudentGOCREATECLUSTEREDINDEXstud_id_indexONstud_grade(stud_id)GO7.2/*在數據庫student中的stud_grade表中course_id列上創(chuàng)建名為CourseIndex的非聚集索引*/USEstudentGOCREATENONCLUSTEREDINDEXCourseIndexONstud_grade(course_id)GO7.3/*用系統(tǒng)存儲過程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列上所創(chuàng)建的聚集索引stud_id_index*/USEstudentGODROPINDEXstud_grade.stud_id_indexGO第八章示例/*8.1針對教師基本信息表teacher_info,創(chuàng)建一個名稱為teacher_proc1的存儲過程,該存儲過程的功能是從數據表teacher_info中查詢所有男教師的信息*/USEstudentGOCREATEPROCEDUREteacher_proc1ASSELECT*FROMteacher_infoWHEREgender=N'男'GO/*8.2執(zhí)行存儲過程teacher_proc1*/USEstudentGOEXECUTEteacher_proc1GO/*8.3針對教師基本信息表teacher_info,創(chuàng)建一個名稱為teacher_proc2的存儲過程,執(zhí)行存儲過程將完畢向數據表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使用參數名傳送參數值的方法來執(zhí)行存儲過程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,創(chuàng)建一個名稱為teacher_proc3的存儲過程,執(zhí)行存儲過程時將向數據表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@startdat(yī)edatetime,@enddatedatetime,@recordcountintOUTPUTASIF@startdat(yī)eISNULLor@enddateISNULLBEGINRAISERROR('NULLvalueareinvalid',5,5)RETURNENDSELECT*FROMstud_infoWHEREbirthdayBETWEEN@startdateAND@enddateSELECT@recordcount=@@ROWCOUNTGO/*8.8執(zhí)行stud_proc2存儲過程,返回出生日期在1986年1月1日與1986年12月31日的學生記錄的條數*/USEstudentGODECLARE@recordnumberint/*聲明為局部變量,用來存放輸出參數的值*/EXECstud_proc2'01-01-1986','12-31-1986',@recordnumberOUTPUTPRINT'Theordercountis:'+STR(@recordnumber)/*8.9在創(chuàng)建一個按照性別記錄人數的存儲過程stud_proc3,規(guī)定輸入性別的值后,返回相應性別的學生人數,但需保證其在每次被執(zhí)行時都被重編譯解決*/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--執(zhí)行所定義的存儲過程: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上創(chuàng)建一個teacher_trigger1觸發(fā)器,當執(zhí)行INSERT操作該觸發(fā)器被觸發(fā)(即向所定義觸發(fā)器的表中插入數據時將觸發(fā)其觸發(fā)器)*/USEstudentGOCREATETRIGGERteacher_trigger1ONteacher_infoFORINSERTASRAISERROR('unauthorized',10,1)--當用戶向表teacher_info中插入數據時將觸發(fā)觸發(fā)器,但是數據仍能被插入表中,--如向表中加入如下記錄內容:INSERTINTOteacher_infoVALUES('010111',N'柴目火',N'男','55',N'政工師','',2119,'')/*8.13在數據庫student的表teacher_info上建立一個名為teacher_trigger3的觸發(fā)器,該觸發(fā)器將被操作UPDATE所激活,該觸發(fā)器將不允許用戶修改表的name列(這里將不使用INSTEADOF而是通過ROLLBACKTRANSACTION子句恢復本來數據的方法來實現列不被修改)*/USEstudentGOCREATETRIGGERteacher_trigger3ONteacher_infoFORUPDATEASIFUPDATE(name)BEGINRAISERROR('Unauthorized!',10,1)ROLLBACKTRANSACTIONEND--建好觸發(fā)器后試著執(zhí)行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執(zhí)行更新操作,成功則提交事務,失敗則取消

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論