版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
..數(shù)據(jù)庫原理實驗報告學院計算機專業(yè)_____計算機科學與技術班級______7班學號3110006131姓名陳日燊指導教師明俊峰〔20XX11月計算機學院計科專業(yè)07班學號:3110006131姓名:陳日燊協(xié)作者:________教師評定:實驗__一__題目__數(shù)據(jù)庫及基本表的建立實驗__二__題目__設計數(shù)據(jù)完整性__實驗_三__題目__查詢數(shù)據(jù)庫_實驗_四_題目__創(chuàng)建和使用視圖、索引、存儲過程實驗平臺:實驗一數(shù)據(jù)庫及基本表的建立一、實驗目的1、掌握SQLSERVER的查詢分析器和企業(yè)管理器的使用;2、掌握創(chuàng)建數(shù)據(jù)庫和表的操作;二、實驗內(nèi)容和要求1、分別使用SQL語句、企業(yè)管理器〔EnterpriseManager創(chuàng)建數(shù)據(jù)庫;2、使用SQL語句、企業(yè)管理器〔EnterpriseManager創(chuàng)建數(shù)據(jù)庫表;三、實驗主要儀器設備和材料1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.數(shù)據(jù)庫管理系統(tǒng):SQLsever2000/2005;四、實驗方法、步驟及結果測試創(chuàng)建一個教學管理數(shù)據(jù)庫SC,其描述的信息有:學生信息、課程信息、教師信息、學生選課成績、授課信息、班級信息、系部信息、專業(yè)信息。創(chuàng)建:student表<學生信息表>、course表〔課程信息表>、teacher表〔教師信息表>、student_course表〔學生選課成績表>、teacher_course表〔教師上課課表等。題目1、創(chuàng)建數(shù)據(jù)庫:實現(xiàn)代碼及截圖:查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示CREATEDATABASESCON<NAME=SC_DAT,FILENAME='E:\SC.mdf',SIZE=30MB,FILEGROWTH=20%>LOGON<NAME=SC_LOG,FILENAME='E:\SC.ldf',SIZE=2MB,FILEGROWTH=1MB>實驗結果截圖顯示題目2、創(chuàng)建基本表創(chuàng)建各表的實現(xiàn)代碼及截圖:創(chuàng)建student表字段名代碼類型約束學號s_nochar<8>主鍵姓名snamechar<8>非空性別sexchar<2>出生日期sbirthdaySmalldatetime學生所在院系編號dnochar<6>外鍵專業(yè)代碼spnochar<8>外鍵班級編碼class_nochar<4><2>創(chuàng)建Course表字段名代碼類型約束課程編號cnochar<10>主鍵課程名稱cnamechar<20>非空專業(yè)代碼spnochar<8>外鍵課程類型編號ctnotinyint理論學時lecturetinyint實驗學時experimenttinyint開課學期semestertinyint課程學分credittinyint〔3創(chuàng)建student_course表字段名代碼類型約束學號s_nochar<8>主鍵,與student表中s_no外鍵關聯(lián),級聯(lián)刪除上課編號tcidsmallint主鍵學生成績scoretinyint<4>創(chuàng)建teacher表字段名代碼類型約束教師編號t_nochar<8>主鍵教師姓名t_namechar<8>非空性別t_sexchar<2>出生日期t_birthdaysmalldatetime教師所在院系編號dnochar<6>外鍵職稱tech_titlechar<10><5>創(chuàng)建系部表<department>字段名代碼類型約束院系編號dnochar<6>主鍵院系名稱dept_namechar<20>非空院系負責人headerchar<8><6>創(chuàng)建專業(yè)信息表<speciality>字段名代碼類型約束專業(yè)代碼spnochar<8>主鍵院系編號dnochar<6>外鍵,非空專業(yè)名稱spnamechar<20>非空<7>創(chuàng)建teacher_course表字段名代碼類型約束上課編號tcidsmallint主鍵教師編號t_nochar<8>外鍵專業(yè)代碼spnochar<8>外鍵班級編碼class_nochar<4>課程編號cnochar<10>非空,外鍵學期semesterChar<6>學年schoolyearChar<10><8>創(chuàng)建班級表<class>字段名代碼類型約束專業(yè)代碼spnochar<8>主鍵,與speciality表中spno外鍵關聯(lián),班級編碼class_nochar<4>主鍵,班負責人headerchar<8>查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示CREATETABLEdepartment<dnoCHAR<6>PRIMARYKEY,dept_nameCHAR<20>NOTNULL,headerCHAR<8>>;執(zhí)行結果:命令已成功完成。CREATETABLEspeciality<spnoCHAR<8>PRIMARYKEY,dnoCHAR<6>NOTNULL,FOREIGNKEY<dno>REFERENCESdepartment<dno>,spnameCHAR<20>NOTNULL>;執(zhí)行結果:命令已成功完成。CREATETABLEstudent<s_noCHAR<8>PRIMARYKEY,snameCHAR<8>NOTNULL,sexCHAR<2>,sbirthdaySmallint,dnoCHAR<6>,FOREIGNKEY<dno>REFERENCESdepartment<dno>,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>>;執(zhí)行結果:命令已成功完成。CREATETABLEcourse<cnoCHAR<10>PRIMARYKEY,cnameCHAR<20>NOTNULL,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint>;執(zhí)行結果:命令已成功完成。CREATETABLEstudent_course<s_noCHAR<8>,CONSTRAINTHLMFOREIGNKEY<s_no>REFERENCESstudent<s_no>,tcidsmallint,PRIMARYKEY<s_no,tcid>,scoretinyint>;執(zhí)行結果:命令已成功完成。CREATETABLEteacher<t_noCHAR<8>PRIMARYKEY,t_nameCHAR<8>NOTNULL,t_sexCHAR<2>,t_birthdaySmallint,dnoCHAR<6>,FOREIGNKEY<dno>REFERENCESdepartment<dno>,tech_titleCHAR<10>>;執(zhí)行結果:命令已成功完成。CREATETABLEteacher_course<tcidsmallintPRIMARYKEY,t_noCHAR<8>,FOREIGNKEY<t_no>REFERENCESteacher<t_no>,spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>,cnoCHAR<10>NOTNULL,FOREIGNKEY<cno>REFERENCEScourse<cno>,semesterCHAR<6>,schoolyearCHAR<10>>;執(zhí)行結果:命令已成功完成。CREATETABLEclass<spnoCHAR<8>,FOREIGNKEY<spno>REFERENCESspeciality<spno>,class_noCHAR<4>,PRIMARYKEY<spno,class_no>,headerCHAR<8>>;實驗結果截圖顯示Department表:Speciality表:Student表:Course表:student_course表:Teacher表:teacher_course表:Class表:題目3、查看各數(shù)據(jù)表之間的關系,生成數(shù)據(jù)庫關系圖。生成數(shù)據(jù)庫關系圖截圖顯示題目4、利用查詢分析器修改上述各表。<1>、用INSERT語句向各個表中插入數(shù)據(jù)錄入5條記錄。錄入時注意體會外鍵約束。實現(xiàn)代碼及截圖:查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示向DEPARTMENT表添加5條記錄USESCGOINSERTINTODEPARTMENTVALUES<'01','計算機學院','小明'>INSERTINTODEPARTMENTVALUES<'02','信息工程學院','小智'>INSERTINTODEPARTMENTVALUES<'03','外國語學院','小天'>INSERTINTODEPARTMENTVALUES<'04','藝術學院','小唯'>INSERTINTODEPARTMENTVALUES<'05','數(shù)學學院','小野'>向TEACHER表添加5條記錄INSERTINTOTEACHERVALUES<'js01','劉德華','男','1978-02-25','01',NULL>;INSERTINTOTEACHERVALUES<'js02','黎明','男','1982-05-15','02',NULL>;INSERTINTOTEACHERVALUES<'js03','梅艷芳','女','1987-04-07','03',NULL>;INSERTINTOTEACHERVALUES<'js04','鄧麗君','女','1985-07-08','04',NULL>;INSERTINTOTEACHERVALUES<'js05','張學友','男','1984-11-23','05',NULL>;向SPECIALITY表添加5條記錄USESCGOINSERTINTOSPECIALITYVALUES<'zy01','01','計算機科學與技術'>;INSERTINTOSPECIALITYVALUES<'zy02','01','軟件工程'>;INSERTINTOSPECIALITYVALUES<'zy03','01','網(wǎng)絡工程'>;INSERTINTOSPECIALITYVALUES<'zy04','02','操作系統(tǒng)'>;INSERTINTOSPECIALITYVALUES<'zy05','03','大學英語'>;INSERTINTOSPECIALITYVALUES<'zy06','04','大學物理'>;INSERTINTOSPECIALITYVALUES<'zy07','05','離散數(shù)學'>;INSERTINTO向STUDENT表添加5條記錄USESCGOINSERTINTOSTUDENTVALUES<'xh01','林俊杰','男','1991-05-01','01','zy01','0902'>;INSERTINTOSTUDENTVALUES<'xh02','陳奕迅','女','1991-07-10','04','zy06',NULL>;INSERTINTOSTUDENTVALUES<'xh03','柯南','男','1991-04-08','01','zy03','0901'>;INSERTINTOSTUDENTVALUES<'xh04','小純一郎','男','1991-07-15','02','zy04',NULL>;INSERTINTOSTUDENTVALUES<'xh05','娜美','女','1994-03-26','04','zy06',NULL>;INSERTINTOSTUDENTVALUES<'xh06','周杰倫','男','1991-07-03','03','zy05','0905'>;INSERTINTOSTUDENTVALUES<'xh07','周迅','女','1986-03-11','05','zy07',NULL>;INSERTINTOSTUDENTVALUES<'xh08','小嶋陽菜','女','1988-04-19','03','zy05','0902'>;向COURSE表添加5條記錄USESCGOINSERTINTOCOURSEVALUES<'kc01','數(shù)據(jù)庫','zy01',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc02','圖形學','zy01',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc03','C++編程','zy02',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc04','計算機網(wǎng)絡','zy03',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc05','工程繪圖','zy04',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc06','日語基礎','zy05',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc07','繪圖要領','zy06',NULL,NULL,NULL,NULL,NULL>INSERTINTOCOURSEVALUES<'kc08','離散數(shù)學','zy07',NULL,NULL,NULL,NULL,NULL>向CLASS表添加5條記錄USESCGOINSERTINTOCLASSVALUES<'zy01','0902','小東'>;INSERTINTOCLASSVALUES<'zy02','0901','小莉'>;INSERTINTOCLASSVALUES<'zy03','0901','小紅'>;INSERTINTOCLASSVALUES<'zy04','1003','小周'>;INSERTINTOCLASSVALUES<'zy05','0905','小陳'>;INSERTINTOCLASSVALUES<'zy06','0804','小天'>;INSERTINTOCLASSVALUES<'zy07','0904','小偉'>;向TEACHER_COURSE表添加5條記錄USESCGOINSERTINTOTEACHER_COURSEVALUES<01,'js01','zy01','0902','kc01',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<02,'js02','zy04','1003','kc05',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<03,'js03','zy05','0905','kc06',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<04,'js04','zy06','0804','kc07',NULL,NULL>INSERTINTOTEACHER_COURSEVALUES<05,'js05','zy07','0904','kc08',NULL,NULL>向STUDENT_COURSE表添加5條記錄USESCGOINSERTINTOSTUDENT_COURSEVALUES<'xh01',1,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh02',4,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh03',6,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh04',2,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh05',4,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh06',3,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh07',5,NULL>INSERTINTOSTUDENT_COURSEVALUES<'xh08',3,NULL>實驗結果截圖顯示〔插入數(shù)據(jù)的表格共8組〔共8個表<2>、用UPDATE語句更改student表中數(shù)據(jù);實現(xiàn)代碼:查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示USESCGOUPDATESTUDENTSETclass_no='0804'WHEREs_no='xh02'UPDATESTUDENTSETclass_no='1003'WHEREs_no='xh04'UPDATESTUDENTSETclass_no='0804'WHEREs_no='xh05'UPDATESTUDENTSETclass_no='0904'WHEREs_no='xh07'UPDATESTUDENTSETclass_no='0905'WHEREs_no='xh08'student表更改前后的內(nèi)容截圖顯示執(zhí)行前:執(zhí)行后:<3>、用DELETE語句刪除student表中數(shù)據(jù);實現(xiàn)代碼:查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示事先插入了一條記錄如右圖所示刪除記錄代碼:DELETEFROMSTUDENTWHEREs_no='xh09'student表更改前后的內(nèi)容截圖顯示刪除后五.實驗中出現(xiàn)的問題及解決方案插入數(shù)據(jù)的時候各種約束條件要很仔細的看清楚然后才可以進行數(shù)據(jù)的插入六、思考題說明數(shù)據(jù)庫中的表和數(shù)據(jù)文件的關系。答:表〔table為數(shù)據(jù)庫中數(shù)據(jù)存儲的基本單位,其數(shù)據(jù)按行、列存儲。每個表具有一表名和列的集合。每一列有一個列名、數(shù)據(jù)類型、寬度或精度、比例。一行是對應單個記錄的列信息的集合。數(shù)據(jù)文件存放著在數(shù)據(jù)庫中存儲的數(shù)據(jù),且一個數(shù)據(jù)庫只有一個數(shù)據(jù)文件。表作為數(shù)據(jù)庫中的數(shù)據(jù)存儲單位,存儲在數(shù)據(jù)文件中。數(shù)據(jù)庫中的日志文件能否單獨修改?答:可以。把對數(shù)據(jù)的修改寫到數(shù)據(jù)庫中和把表示這個修改的日子記錄寫到日志文件中是兩個不同的操作。有可能在這兩個操作之間發(fā)生某種故障,即這兩個操作只完成了其中一個。所以,可以單獨修改數(shù)據(jù)庫中的日志文件而不一定會修改數(shù)據(jù)。實驗二、設計數(shù)據(jù)完整性一、實驗目的1、掌握使用約束實現(xiàn)數(shù)據(jù)完整性的方法;2、掌握使用觸發(fā)器實現(xiàn)數(shù)據(jù)完整性的方法;二、實驗內(nèi)容和要求1、設置主鍵約束、設置唯一約束、設置外鍵約束、設置檢查約束、設置默認值約束;2、使用企業(yè)管理器創(chuàng)建觸發(fā)器、使用SQL語音創(chuàng)建觸發(fā)器;三、實驗主要儀器設備和材料1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.數(shù)據(jù)庫管理系統(tǒng):SQLsever2000/2003/2005;四、實驗方法、步驟及結果測試〔一、使用約束實現(xiàn)數(shù)據(jù)的完整性〔針對實驗一中的所建的基本表定義:student表、course表、student_course表、teacher表、department表、speciality表、teacher_course表、class表的主鍵。寫出相應的SQL語句。student表createtablestudent<s_nochar<8>,snamechar<8>notnull,sexchar<2>,sbirthdaysmalldatetime,dnochar<6>,spnochar<8>,class_nochar<4>,primarykey<s_no>>course表createtablecourse<cnochar<10>,cnamechar<20>notnull,spnochar<8>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint,primarykey<cno>>teacher表createtableteacher<t_nochar<8>,t_namechar<8>notnull,t_sexchar<2>,t_birthdaysmalldatetime,dnochar<6>,tech_titlechar<10>,primarykey<t_no>>teacher_course表createtableteacher_course<tcidsmallint,t_nochar<8>,spnochar<8>,class_nochar<4>,cnochar<10>,semesterchar<6>notnull,shcoolyearchar<10>,primarykey<tcid>>Student_course表createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyint,primarykey<s_no,tcid>,>Department表createtabledepartment<dnochar<6>,dept_namechar<20>notnull,headerchar<8>primarykey<dno>>Speciality表createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,primarykey<spno>>Class表createtableclass<spnochar<8>,class_nochar<4>,headerchar<8>,primarykey<spno,class_no>>定義以上各表的外鍵約束,并通過插入新的數(shù)據(jù)記錄來檢查外鍵約束。寫出相應的SQL語句,并將檢查執(zhí)行的結果截圖顯示。外鍵定義的SQL語句:檢查外鍵違約處理的結果截圖:student表createtablestudent<s_nochar<8>,snamechar<8>notnull,sexchar<2>,sbirthdaysmalldatetime,dnochar<6>,spnochar<8>,class_nochar<4>,foreignkey<dno>referencesdepartment<dno>,foreignkey<spno>referencesspeciality<spno>>student表course表createtablecourse<cnochar<10>,cnamechar<20>notnull,spnochar<8>,ctnotinyint,lecturetinyint,experimenttinyint,semestertinyint,credittinyint,constraintfk_course_spnoforeignkey<spno>referencesspeciality<spno>>course表teacher表createtableteacher<t_nochar<8>,t_namechar<8>notnull,t_sexchar<2>,t_birthdaysmalldatetime,dnochar<6>,tech_titlechar<10>,constraintfk_teacher_dnoforeignkey<dno>referencesdepartment<dno>>teacher表Speciality表createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,constraintfk_speciality_dnoforeignkey<dno>referencesdepartment<dno>>Speciality表Student_course表createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyint,constraintfk_student_course_s_noforeignkey<s_no>referencesstudent<s_no>ondeletecascade>Student_course表3、定義唯一約束為專業(yè)表Speciality的spname列建立唯一約束,并通過插入新的數(shù)據(jù)記錄對新建的唯一約束進行檢查,寫出相應的SQL語句,并將檢查的執(zhí)行結果截圖顯示。定義的SQL語句:createtablespeciality<spnochar<8>,dnochar<6>notnull,spnamechar<20>notnull,unique,constraintfk_speciality_dnoforeignkey<dno>referencesdepartment<dno>>檢查違約處理的結果截圖:4、定義檢查約束為student_course表的Score列設置檢查約束條件,并通過插入新的數(shù)據(jù)記錄來檢查約束。寫出相應的SQL語句,并將檢查執(zhí)行結果截圖顯示。定義的SQL語句:createtablestudent_course<s_nochar<8>,tcidsmallint,scoretinyintcheck<scorebetween0and100>,constraintfk_student_course_s_noforeignkey<s_no>referencesstudent<s_no>ondeletecascade>檢查違約處理的結果截圖:5、查看各表之間的關系,生成數(shù)據(jù)庫關系圖?!捕?、利用企業(yè)管理器,使用約束實現(xiàn)數(shù)據(jù)的完整性方法1、啟動企業(yè)管理器,利用表設計器分別定義:student表、course表、student_course表、teacher表、department表、speciality表、teacher_course表、class表的主鍵。2、表設計器中,單擊工具欄中的"表和索引屬性"按鈕,打開"屬性"對話框,在"關系"選項卡中定義外鍵約束?!矊嶒灲貓D3、在表設計器中,單擊工具欄中的"表和索引屬性"按鈕,打開"屬性"對話框,在"索引/鍵"選項中定義專業(yè)信息表speciality的spname字段唯一約束?!矊嶒灲貓D4、在表設計器中,單擊工具欄中的"表和索引屬性"按鈕,打開"屬性"對話框,在"CHECK約束"選項中,為student_course表中的score列設置檢查約束。例如:輸入表達式:score>=0andscore<=100。〔實驗截圖〔三、使用觸發(fā)器實現(xiàn)數(shù)據(jù)的完整性1、使用企業(yè)管理器創(chuàng)建觸發(fā)器在student表中創(chuàng)建觸發(fā)器,實現(xiàn)student和student_course表的級聯(lián)刪除。步驟:打開企業(yè)管理器,展開SC數(shù)據(jù)庫;在SC數(shù)據(jù)庫的列表中選擇"表"并展開;右擊想要創(chuàng)建觸發(fā)器的表,執(zhí)行"所有任務"/"管理觸發(fā)器"命令;在打開的"觸發(fā)器屬性"對話框中,在"名稱"下拉列表框中選擇"新建";在"文本"編輯框中,輸入創(chuàng)建觸發(fā)器的代碼;單擊"檢查語法"按鈕,檢查代碼的語法是否正確;單擊"確定"按鈕,則完成觸發(fā)器創(chuàng)建。檢查觸發(fā)器;在查詢分析器中,輸入相應的語句,并執(zhí)行,查看定義的觸發(fā)器是否起作用。定義觸發(fā)器的SQL語句:CREATETRIGGERdelete_stuON[dbo].[student]FORDELETEASDELETEFROMstudent_courseWHEREs_no=<SELECTs_noFROMDELETED>執(zhí)行結果截圖:實驗三、查詢數(shù)據(jù)庫一、實驗目的熟悉SQL語句的基本使用方法,學習如何編寫SQL語句來實現(xiàn)查詢二、實驗內(nèi)容和要求使用SQL查詢分析器查詢數(shù)據(jù),練習查詢語句的使用,掌握SELECT語句的完整結構,包括簡單查詢、嵌套查詢、連接查詢等基本實現(xiàn)方法。三、實驗主要儀器設備和材料1.計算機及操作系統(tǒng):PC機,Windows2000/xp;2.數(shù)據(jù)庫管理系統(tǒng):SQLsever2000/2005;四、實驗方法、步驟及結果測試實驗題目:1、對實驗一建立的數(shù)據(jù)庫表進行查詢簡單查詢:題目〔1、查詢?nèi)繉W生的學號、姓名、性別和出身年月日。實現(xiàn)代碼及查詢結果截圖:格式如下查詢分析器執(zhí)行情況:SQL語句及執(zhí)行結果顯示USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudent查詢結果截圖顯示題目〔2、查詢?nèi)w學生的學號、姓名和年齡實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSELECTs_no,sname,'sage:',year<getdate<>>-Year<sbirthday>FROMstudent查詢結果截圖顯示:題目〔3、查詢院系編號為‘01’〔計算機學院的全部學生的學號、姓名、性別和出身年月日。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREdno='01'查詢結果截圖顯示:題目〔4、查詢"計算機科學與技術"專業(yè)〔專業(yè)代碼為‘zy01’并且班級代碼為‘0902’的學生的學號、姓名和出生日期。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREspno='zy01'ANDclass_no='0902'查詢結果截圖顯示:題目〔5、查詢在‘1983/01/10’以后出生的計算機學院〔院系編號為‘01’學生的學號、姓名、性別和出身年月日。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentWHEREstudent.dno='01'ANDstudent.sbirthday>='1983-01-10'查詢結果截圖顯示:題目〔6、查詢?nèi)繉W生的學號、姓名、性別和出身日期結果按照出生日期的升序排列。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSELECTs_no,sname,sex,sbirthdayFROMstudentORDERBYsbirthdayASC查詢結果截圖顯示:連接查詢:題目〔1、查詢?nèi)繉W生的學號、姓名、性別、所在院系名稱和專業(yè)名稱實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSelectstudent.s_no,student.sname,student.sex,department.dept_name,speciality.spnamefromstudent,department,specialitywherestudent.dno=department.dnoandstudent.spno=speciality.spno查詢結果截圖顯示:題目〔2、查詢選修了課程1〔上課編號的學生的學號、姓名、專業(yè)名稱和這門課的成績實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOSelectstudent.s_no,sname,class_no,tcid,scorefromstudent,student_coursewherestudent.s_no=student_course.s_noANDstudent_course.tcid='1'查詢結果截圖顯示:題目〔3、查詢學生不及格的情況列出不及格學生的學號、姓名和不及格的課程名稱。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOselectstudent.s_no,sname,cname,scorefromstudentjoinstudent_courseon<student.s_no=student_course.s_no>joincourseon<student.spno=course.spno>selectstudent.s_no,sname,cnamefromstudentjoinstudent_courseon<student.s_no=student_course.s_no>joincourseon<student.spno=course.spno>wherescore<60查詢結果截圖顯示:嵌套查詢:題目〔1、查詢沒有選修了課程1的學生,列出學生的學號和姓名。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOselectstudent.s_no,snamefromstudentwherestudent.s_noin<selects_nofromstudent_coursewheretcid!=01>查詢結果截圖顯示:題目〔2、查詢每門課都是80分以上的學生的學號與姓名。實現(xiàn)代碼及查詢結果截圖:SQL語句:USESCGOselectstudent.s_no,snamefromstudentwherestudent.s_noin<selects_nofromstudent_coursewherescore>80>查詢結果截圖顯示:2、選用Northwind數(shù)據(jù)庫進行查詢題目〔1、對NothWind.Products表進行簡單查詢;在查詢分析器在窗口下用SELECT語句完成單表查詢:查詢所有Products的詳細記錄;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOSELECT*FROMProducts查詢結果截圖顯示:查詢單價〔UnitPrice小于20的Products;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOSELECT*FROMProductsWHEREUnitPrice<20查詢結果截圖顯示:查詢結果均小于20查詢Products中最高單價〔UnitPrice是多少;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOselectmax<unitprice>fromproducts查詢結果截圖顯示:題目〔2、在查詢分析器在窗口下用SELECT語句完成連接〔嵌套查詢:查詢所有被訂購過得Products的ProductsID和ProductName;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProductsWHEREProducts.ProductIDin<SELECTProductIDFROM[OrderDetails]>查詢結果截圖顯示:查詢所有被CustomerID為AROUT客和訂購過的ProductsID和ProductName;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProducts,[OrderDetails],OrdersWHEREOrders.CustomerID='AROUT'AND[OrderDetails].OrderID=Orders.OrderIDAND[OrderDetails].ProductID=Products.ProductID查詢結果截圖顯示:查詢所有被CustomerID為AROUT客和訂購過,且單價在20以上的ProductsID和ProductName;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOSELECTProducts.ProductID,ProductNameFROMProducts,[OrderDetails],OrdersWHEREOrders.CustomerID='AROUT'AND[OrderDetails].OrderID=Orders.OrderIDAND[OrderDetails].ProductID=Products.ProductIDANDProducts.UnitPrice>20查詢結果截圖顯示:查詢Products中單價〔UnitPrice最高的Products的資料;實現(xiàn)代碼及查詢結果截圖:SQL語句:USENorthwindGOselect*fromProductswhereUnitPrice=<selectmax<UnitPrice>fromProducts>查詢結果截圖顯示:五、實驗中出現(xiàn)的問題及解決方案答:在本次實驗中,由于只知道出生日期,但其格式是smalldatetime,不知道如何來計算年齡〔通過問同學解決了。一般的查詢、連接查詢和嵌套查詢因為知道其的代碼書寫格式,沒遇到多少問題就解決了。還有,因為實驗一已經(jīng)編了一個數(shù)據(jù)庫,本次實驗的內(nèi)容都是查看實驗一插入的數(shù)據(jù),一些要求被我做了適當?shù)男薷?不過,只是改了相應的一些字段的代碼,不影響實驗。六、思考題進行連接查詢時應注意哪些問題?答:連接多個表時,可以認為它們被連成了一個表。盡管沒有創(chuàng)建一個物理表,SQL引擎創(chuàng)建了很多虛擬表,當連接表時,可以在每個表中選擇任何一列。關于連接表的數(shù)量問題。連接表的數(shù)量取決于具體的數(shù)據(jù)庫管理系統(tǒng),有的規(guī)定為最多25個,有的則沒有限制。使用時,需要查看具體的數(shù)據(jù)庫運行環(huán)境。但要注意,連接的表越多,響應的時間就越長。進行多表連接時,特別注意不要忘記查詢條件,特別是連接多個表且記錄數(shù)目較多時。因為如果不指明連接條件,系統(tǒng)將對多表進行笛卡爾連接,會產(chǎn)生巨大的記錄。根據(jù)不同的應用需求,要注意連接方式的選擇。實驗四、創(chuàng)建和使用視圖、索引、存儲過程一、實驗目的1、掌握視圖、索引、存儲過程的定義、索引、存儲過程的工作原理;2、掌握創(chuàng)建視圖、索引、存儲過程的SQL語句的用法;并能夠熟練利用視圖向表中插入、刪除和修改數(shù)據(jù)。3、掌握使用視圖來查詢數(shù)據(jù)。二、實驗主要儀器設備和材料1.計算機及操作系統(tǒng):PC機,Windows;2.數(shù)據(jù)庫管理系統(tǒng):SQLsever2000/2005;三、實驗方法、步驟及結果測試〔一、視圖實驗題目:〔寫出實驗題目1-81、建立"計算機學院"的學生基本情況視圖ies_student_view,該視圖包括計算機學院所有學生的學號、姓名、性別、出身年月、專業(yè)名稱。2、執(zhí)行ies_student_view視圖并觀察結果。3、建立課程1〔上課編號的學生名冊的視圖,該名冊包括學生的學號、姓名、專業(yè)名稱和這門課的成績;并查詢結果。4、建立統(tǒng)計不及格情況的視圖,列出不及格學生的學號、姓名和不及格的課程代碼;5、執(zhí)行視圖并觀察結果。6、修改視圖ies_student_view,使該視圖包括所有學生的學號、姓名、性別、出身年月、學院名稱、專業(yè)名稱。7、執(zhí)行ies_student_view視圖并觀察結果。8、刪除視圖ies_student_view。并查詢結果。記錄上述實驗過程并截圖說明。1、建立"計算機學院"的學生基本情況視圖USESCGOCREATEVIEWies_student_viewASSELECTs_no,sname,sex,sbirthday,spnoFROMstudentWHEREstudent.spno='zy01'執(zhí)行ies_student_view視圖USESCGOSELECT*FROMies_student_view建立課程1的學生名冊的視圖USESCGOCREATEVIEWtcid1_student_viewASSELECTstudent.s_no,sname,sex,sbirthday,dno,spno,tcidFROMstudent,student_courseWHEREstudent_course.tcid='1'ANDstudent.s_no=student_course.s_no查看:SELECT*FROMtcid1_student_view建立統(tǒng)計不及格情況的視圖USESCGOCREATEVIEWfail_student_viewASSELECTstudent.s_no,sname,tcidFROMstudent,student_courseWHEREstudent.s_no=student_course.s_noANDstudent_course.score<60查看:SELECT*FROMfail_student_view修改視圖ies_student_viewUSESCGOALTERVIEWies_student_viewASSELECTs_no,sname,sex,sbirthday,spnoFROMstudent查看:7、執(zhí)行ies_student_view視圖并觀察結果。SELECT*FROMies_student_view刪除視圖ies_student_viewUSESCGODROPVIEWies_student_view查詢視圖SQL語句及執(zhí)行結果截圖查詢視圖SQL語句及執(zhí)行結果截圖查詢視圖SQL語句及執(zhí)行結果截圖查詢視圖SQL語句及執(zhí)行結果截圖查詢視圖SQL語句及執(zhí)行結果截圖〔二、索引〔1、在student_course表〔學生選課表的學生學號〔s_no列上創(chuàng)建索引sc_sno_index<2>通過SQL語句查看運行結果創(chuàng)建索引的SQL語句:USESCGOCREATEUNIQUEINDEXsc_sno_indexONstudent_course<s_no>;查詢視圖SQL語句及執(zhí)行結果截圖〔三、存儲過程〔1、創(chuàng)建存儲過程list_student_department,,該存儲過程接收學院代碼作為輸入?yún)?shù),列出數(shù)據(jù)庫sc中某個院系學生的全部信息。實驗過程:啟動查詢分
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品生命周期管理-洞察分析
- 小組合作學習效果-洞察分析
- 休閑教育政策研究-洞察分析
- 團體輔導效果評估-洞察分析
- 虛擬健康咨詢與交互研究-洞察分析
- 寫給女朋友的道歉信范文(5篇)
- 關于不放煙花爆竹的倡議書(9篇)
- 《休克治療原則》課件
- 創(chuàng)新科技產(chǎn)品營銷的提問引導法
- 兒童音樂治療藝術與醫(yī)療的完美結合
- GB/T 4450-1995船用盲板鋼法蘭
- GB/T 24802-2009橡膠增塑劑A
- GB/T 12706.1-2020額定電壓1 kV(Um=1.2 kV)到35 kV(Um=40.5 kV)擠包絕緣電力電纜及附件第1部分:額定電壓1 kV(Um=1.2 kV)和3 kV(Um=3.6 kV)電纜
- 企業(yè)標準編寫模板
- 壓力管道水壓試驗記錄范文
- 山東電力積分商城系統(tǒng)建設方案v1.1
- 部編人教版五年級語文上冊期末測試卷含答題卡
- 內(nèi)陸漁政船建設項目可行性研究報告
- 環(huán)境材料學教學課件匯總完整版電子教案全書整套課件幻燈片(最新)
- 建設項目全過程跟蹤審計表格
- 業(yè)務員手冊內(nèi)容
評論
0/150
提交評論