數據庫sql實驗題目14-15-1_第1頁
數據庫sql實驗題目14-15-1_第2頁
數據庫sql實驗題目14-15-1_第3頁
數據庫sql實驗題目14-15-1_第4頁
數據庫sql實驗題目14-15-1_第5頁
已閱讀5頁,還剩3頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

-.z.實驗一數據定義操作實驗目的掌握數據庫和表的根底知識掌握使用創立數據庫和表的方法掌握數據庫和表的修改、查看、刪除等根本操作方法實驗內容和要求一、數據庫的創立在開場菜單中,啟動SQlServer程序中的"SQLServerManagementStudio〞,在對象資源管理器窗口中,右鍵單擊"數據庫〞,選擇"新建數據庫〞,創立成績管理數據庫Grademanager,要求如下表所示:Grademanager數據庫參數表參數參數值參數參數值存儲的數據文件路徑D:\db\grademanager_data.mdf存儲的日志文件路徑D:\db\grademanager_log.ldf數據文件初始大小5MB日志文件初始大小2MB數據文件最大值20MB日志文件最大值15MB數據文件增長量原來10%日志文件增長量2MB二、表的創立、查看、修改和刪除1.表的創立在Grademanager數據庫中,右鍵單擊"表〞,選擇"新建表〞命令,創立如下表所示的表:〔1〕Student表的表構造字段名稱數據類型長度精度小數位數是否允許Null值說明SnoChar1000否**,主碼SnameVarchar800是Sse*Char200是性別,取值:男或女SbirthdayDate800是出生日期SdeptChar1600是系名SpecialityVarchar2000是專業名特別注意:為屬性Sse*設置約束,需選中屬性Sse*行,然后單擊菜單中的"表設計器〞,選擇"CHECK約束〞命令,然后按照圖1進展設置。圖1設置性別的約束〔2〕Course表〔課程名稱表〕的表構造字段名稱數據類型長度精度小數位數是否允許Null值說明CnoChar500否課程號,主碼CnameVarchar2000否課程名〔3〕SC表〔成績表〕的表構造字段名稱數據類型長度精度小數位數是否允許Null值說明SnoChar1000否**,外碼CnoChar500否課程號,外碼DegreeDecimal551是成績,0~100之間特別注意:=1\*GB3①為屬性Degree約束,可參照屬性Sse*進展設置,"CHECK約束對話框〞中的表達式為Degree>=1AndDegree<=100=2\*GB3②為SC表設置外鍵Sno和Cno的方法:右鍵單擊表SC,選擇"設計〞命令,然后選擇菜單"表設計器〞中的"關系〞命令,翻開"外鍵關系〞窗口,選擇"添加〞按鈕,然后單擊"表和列標準〞后的按鈕,按照圖2進展設置,即可將SC表中的Cno屬性設置為外鍵。按照一樣的方法,將屬性Sno也設置為外鍵。圖2為SC表設置外鍵Cno2.向上述表中輸入如下數據記錄學生關系表Student〔右鍵單擊表Student,選擇"編輯前200行〞〕SnoSnameSse*SbirthdaySdeptSpeciality20050101李勇男1987-01-12計算機系計算機應用20050201劉晨女1988-06-04信息管理系電子商務20050301王敏女1989-12-23數學系數學20050202張立男1988-08-25信息管理系電子商務SnoCnoDegree20050101C019220050101C028520050101C038820050201C029020050201C038020050301C019120050301C027520050202C0187課程關系表Course成績表SCCnoCnameC01數據庫C02數學C03信息系統C04操作系統3.修改表構造〔找到操作的方法即可,不需要真正地修改表中的屬性〕〔1〕向student表中增加"入學時間〞列,其數據類型為日期型〔2〕將student表中的sdept字段長度改為20〔3〕將student表中的Speciality字段刪除思考題SQLServer的數據庫文件有幾種?擴展名分別是什么?如何實現數據庫的備份和復原?2.在定義根本表語句時,NOTNULL參數的作用是什么?3.主碼可以建立在"值可以為NULL〞的列上嗎?實驗二簡單查詢實驗目的掌握SELECT語句的根本用法使用WHERE子句進展有條件的查詢掌握使用IN和NOTIN,BETWEEN…AND和NOTBETWEEN…AND來縮小查詢范圍的方法掌握聚集函數的使用方法利用LIKE子句實現字符串匹配查詢利用ORDERBY子句對查詢結果排序利用GROUPBY子句對查詢結果分組實驗內容和要求一、表構造修改1.在實驗一的所建立的數據庫中增加Teacher表,構造如下:字段名稱數據類型長度精度小數位數是否允許Null值說明TnoChar300否教師號,主碼TnameVarchar800是教師名Tse*Char200是性別,取值:男或女TbirthdayDate800是出生日期TdeptChar1600是所在系2.在實驗一的所建立的數據庫中增加Teaching表,表構造如下:Teaching表〔授課表〕的表構造字段名稱數據類型長度精度小數位數是否允許Null值說明CnoChar500否課程號,外碼TnoChar300否教師號,外碼CtermTinyint100是1-8之間3.向上述兩表中輸入如下數據記錄CnoTnoCtermC011012C021021C032013C042024教師表Teacher授課表TeachingTnoTnameTse*TbirthdayTdept101李新男1977-01-12計算機系102錢軍女1968-06-04計算機系201王小花女1979-12-23信息管理系202張小青男1968-08-25信息管理系二、完成下面查詢1.查詢所有男生信息2.查詢年齡大于24歲的女生**和姓名3.查詢所有教師的Tname、Tdept4.查詢"電子商務〞專業的學生姓名、性別和出生日期5.查詢成績低于90分的學生**及課號,并按成績降序排列6.查詢Student表中所有的系名7.查詢"C01〞課程的開課學期8.查詢成績在80分至90之間的學生**及課號9.統計有學生選修的課程門數10.查詢成績為77,88或99的記錄11.計算"C02〞課程的平均成績12.輸出有成績的學生**13.查詢所有姓"〞的學生信息14.統計輸出各系學生的人數15.查詢選修了"C03〞課程和學生的**及其成績,查詢結果按分數的降序排列16.查詢各個課程號及相應的選課人數,并為選課人數取別名為"人數〞17.統計每門課程的選課人數和最高分,并為選課人數和最高分分別取別名為"人數〞、"最高分〞18.統計每個學生的選課門數和考試總成績,并為選課門數和總成績分別取別名為"門數〞、"總成績〞,并按選課門數降序排列。思考題1.聚集函數能否直接使用在:SELECT子句、HAVING子句、WHERE子句、GROUPBY子句中?2.關鍵字ALL和DISTINCT有什么不同的含義?3.SELECT語句中用于表示模糊查詢的通配符有幾種?含義分別是什么?4.利用BETWEEN…AND表示的數據范圍能否用其他方法表示?怎樣表示?如:scorebetween80and90還可以怎么表示?實驗三復雜查詢實驗目的掌握連接查詢和嵌套查詢操作能靈活應用SELECT語句解決復雜的查詢問題實驗內容和要求一、連接查詢查詢女學生的學生**及總成績查詢李勇同學所選的課程號及成績查詢李新教師所授課程的課程名稱查詢女教師所授課程的課程號及課程名稱查詢姓"王〞的學生所學的課程名稱查詢選修"數據庫〞課程且成績在80到90之間的學生**及成績查詢選修"C02〞課程的學生的平均年齡查詢學習課程名為"數學〞的學生**和姓名查詢"錢軍〞教師任課的課程號,選修其課程的學生的**和成績查詢在第3學期所開課程的課程名稱,選修其課程的學生**和成績二、嵌套查詢查詢至少選修兩門課程的男學生姓名查詢與李勇同一個系的其他同學姓名查詢**比劉晨同學大,而年齡比他小的學生姓名查詢年齡大于所有女同學的男同學的姓名及系別查詢成績比該課程平均成績高的學生的**、課程號及成績查詢不講授"C01〞課的教師姓名查詢沒有選修"C02〞課程的學生**及姓名查詢選修了"數據庫〞課程的學生**、姓名及系別查詢選修了全部課程的學生姓名分別用子查詢和連接查詢,求"C02〞號課程在80分以上的學生信息思考題使用存在量詞NOTE*ISTS的嵌套查詢時,何時外層查詢的WHERE條件為真,何時為假?DROP命令和DELETE命令的本質區別是什么?實驗四數據更新、索引及視圖操作實驗目的掌握利用INSERT命令實現對表數據的插入操作掌握利用UPDATE命令實現對表數據的修改操作掌握利用DELETE命令實現對表數據的刪除操作掌握索引的創立和使用掌握視圖的創立和刪除實驗內容和要求一、數據更新向Student表中插入記錄〔'20050203','張靜','女','1981-3-21','CS','電子商務'〕插入**為20050302,姓名為李四學生信息把男學生記錄保存到表TS中〔提示:利用selectinto命令可備份數據庫中的表格式:select*into新表名from原表名where子句;)將**為20050202的學生姓名改為張華,系別改為"CS〞,專業改為"多媒體技術〞將20050201學生選修"C03〞號課程的成績改為該課的平均成績把女同學的成績提高5%把選修了"數據庫〞課程學生的成績全改為空值〔NULL〕刪除**為20050302的學生記錄把"劉晨〞同學的選課記錄全部刪除刪除電子商務專業所有學生的選課記錄二、索引的創立與使用1.用索引管理器創立SC表的索引I*_*S_KC。〔1〕選擇要創立索引的數據庫文件夾,并在右邊的對象窗口中選擇并翻開其中的"表〞對象。〔2〕選擇所要創立索引的SC表,右鍵單擊該表,在彈出的快捷菜單中選擇"設計〞命令,然后在工具欄中單擊"管理索引和鍵〞按鈕,翻開"索引和鍵〞窗口。〔3〕單擊其中的"添加〞按鈕,創立新的索引,并為其設置相應的屬性。為SC表創立一個基于"課程號〞列和"成績〞列的索引I*_*S_KC,其中課程號列按升序排列,成績列按降序排列。設置完成后,如圖3所示。圖3創立索引I*_*S_KC2.強制使用剛剛創立的索引查詢數據。在查詢命令窗口中輸入以下SQL查詢命令并執行:SELECTSNO,CNO,DEGREEFROMSCWITH〔INDE*〔I*_*S_KC〕〕WHEREDEGREE>=60觀察一下顯示出來的數據是否有序。3.利用SQL命令實現以下操作:為Student表創立一個名為S_dept的索引,以系別排序為Teacher表創立一個名為T_name的聚集索引,以Tname降序排序。命令格式:createclusteredinde*on表名(列名1順序,列名2順序)刪除S_dept索引。命令格式:dropinde*表名.索引名或dropinde*索引名on表名三、視圖的創立與使用創立一個簡單視圖view1,查詢"計算機系〞學生的信息創立一個簡單視圖view2,統計每門課程的選課人數和最高分創立一個復雜視圖view3,查詢與"張立〞同學同一系別的學生信息刪除視圖View3思考題1.利用INSERT、UPDATE和DELETE命令可以同時對多個表操作嗎?2.使用索引為什么能提高查詢速度?3.索引經常被建立在哪些字段上?4.聚集索引與其他索引有什么不同?實驗五存儲過程、函數、觸發器及游標操作實驗目的掌握computeby的使用掌握變量的定義和使用方法掌握存儲過程的定義和執行方法掌握觸發器的定義方法掌握函數的定義和調用方法掌握游標的定義和使用方法〔提示:以下操作全部基于實驗一創立的Grademanager數據庫〕實驗內容和要求使用computeby完成以下操作顯示所有學生的成績,并匯總每個學生的總分。顯示所有學生的信息,并匯總男女學生的人數。存儲過程創立一個名為Query_student的存儲過程,該存儲過程的功能是根據**查詢學生表中*一學生的**、、性別及出生日期。執行存儲過程Query_student,查詢**為"20050301〞的學生的**、、性別及出生日期。寫出完成此功能的SQL命令。創立存儲過程sm_score,用于求指定**〔輸入參數〕的學生的總成績〔輸出參數〕。執行該存儲過程,指定**為"20050101〞。創立并執行存儲過程count_sno,用于求所有學生人數,通過參數返回學生人數。刪除存儲過程count_sno。創立一個向課程表中插入一門新課程的存儲過程Insert_course,該存儲過程需要兩個參數,分別用來傳遞課程號、課程名;執行存儲過程Insert_course,向課程表Course中插入一門新課程〔’0807011’,’Flash動畫設計’〕。創立一個能向學生表中插入一條記錄的存儲過程Insert_student,執行存儲過程Insert_student,向學生表中插入一個新同學〔'20060208','徐小花','女','1987-08-25','IS','電子商務'〕。觸發器在SC表創立一個INSERT觸發器,如果插入一條選課信息時,學生的**值在表S中不存在,則不執行插入操作,并提示用戶。使用insert語句向SC表中插入記錄〔'20020101','C01'〕,觀察觸發器INSERT_SC是否被執行。在Teaching表中創立一個插入觸發器insert_teaching,一旦發現待插入的教師號Tno在Teacher表中不存在,就發出警告信息并制止插入。創立一個當學生表中插入一個新同學時能自動列出全部同學學生信息的觸發器Display_trigger

溫馨提示

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

評論

0/150

提交評論