數(shù)據(jù)庫(kù)-實(shí)驗(yàn)二_第1頁(yè)
數(shù)據(jù)庫(kù)-實(shí)驗(yàn)二_第2頁(yè)
數(shù)據(jù)庫(kù)-實(shí)驗(yàn)二_第3頁(yè)
數(shù)據(jù)庫(kù)-實(shí)驗(yàn)二_第4頁(yè)
數(shù)據(jù)庫(kù)-實(shí)驗(yàn)二_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)原理實(shí)驗(yàn) 班級(jí): 學(xué)號(hào): 姓名: 實(shí)驗(yàn)報(bào)告冊(cè) 2014 / 2015 學(xué)年 第2 學(xué)期系 別 計(jì)算機(jī)科學(xué)與技術(shù)系實(shí)驗(yàn)課程 數(shù)據(jù)庫(kù)原理專 業(yè) 計(jì)算機(jī)科學(xué)與技術(shù)班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 實(shí)驗(yàn)二SQL語(yǔ)句一、 實(shí)驗(yàn)?zāi)康?. 熟悉SQL的數(shù)據(jù)查詢語(yǔ)言,能使用SQL進(jìn)行單表查詢、連接查詢、嵌套查詢、集合查詢和統(tǒng)計(jì)查詢,能理解空值的處理;2. 熟悉數(shù)據(jù)庫(kù)的數(shù)據(jù)更新操作,能使用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的插入、更新、刪除操作;3. 熟悉SQL支持的有關(guān)視圖的操作,能創(chuàng)建、查詢及取消視圖;4. 了解NULL在數(shù)據(jù)庫(kù)中的特殊含義,掌握使用SQL進(jìn)行與空值相關(guān)的操作;二、 實(shí)驗(yàn)預(yù)習(xí)內(nèi)容在認(rèn)真閱讀教材

2、及實(shí)驗(yàn)指導(dǎo)書【實(shí)驗(yàn)1.2 數(shù)據(jù)查詢】、【實(shí)驗(yàn)1.3 數(shù)據(jù)更新】、【實(shí)驗(yàn)1.4 視圖】和【實(shí)驗(yàn)1.6 空值和空集的處理】的基礎(chǔ)上,上機(jī)前請(qǐng)預(yù)習(xí)以下內(nèi)容,并在空白處填寫相應(yīng)的步驟或命令。1. 使用SCHOOL數(shù)據(jù)庫(kù),在SQL SERVER 2000 的查詢分析器中使用SQL語(yǔ)言完成以下操作。請(qǐng)?jiān)诳瞻滋幪顚懴鄳?yīng)的SQL命令。1) 查詢年級(jí)為2001的所有學(xué)生的名稱,按編號(hào)順序排列;2) 查詢所有課程名稱中含有data的課程編號(hào);3) 統(tǒng)計(jì)所有老師的平均工資;4) 查詢至少選了3門課的學(xué)生編號(hào);5) 查詢學(xué)號(hào)為80009026的學(xué)生的姓名、所選課名及成績(jī);6) 查詢沒(méi)有學(xué)生選的課程編號(hào);7) 查詢既選

3、了C+又選了Java課程的學(xué)生編號(hào);8) 查詢選了C+但沒(méi)選Java課程的學(xué)生編號(hào);9) 向STUDENTS表中插入“LiMing”的個(gè)人信息(編號(hào):700045678,名字:LiMing,Email:LX,年級(jí):1992);10) 將“LiMing”的年級(jí)改為2002;11) 刪除所有選了Java課程的學(xué)生選課記錄;12) 求出每門課的課程號(hào)、選課人數(shù),結(jié)果存入數(shù)據(jù)庫(kù)表T1中。13) 查詢所有選課記錄的成績(jī)并換算為五分制(注意NULL的情況);14) 查詢成績(jī)小于0的選課記錄,統(tǒng)計(jì)總數(shù)、平均分、最大值和最小值(注意查詢結(jié)果中NULL的情況);15) 按成績(jī)順序排序顯示CHOICES表中所有記

4、錄。(使用ORDER BY排序,注意NULL的情況);16) 創(chuàng)建視圖V1,顯示學(xué)生姓名、所選課名稱、任課教師名;17) 取消V1視圖;2. 使用STC數(shù)據(jù)庫(kù),在SQL SERVER 2000 的查詢分析器中使用SQL語(yǔ)言完成以下操作。請(qǐng)?jiān)诳瞻滋幪顚懴鄳?yīng)的SQL命令或其它內(nèi)容。1) 創(chuàng)建視圖V2,顯示計(jì)算機(jī)(CS)系學(xué)生信息;(結(jié)合下面的b)小題,V2視圖創(chuàng)建2次,分別使用/不使用WITH CHECK OPTION選項(xiàng))(1)不加WITH CHECK OPTION(2)加WITH CHECK OPTIONcreate view V2as select * from studentswhere

5、sdept=cscreate view V2as select * from studentswhere sdept=cswith check option2) 插入元組(99999,張三,20歲,男,PH)到V2中,運(yùn)行結(jié)果如何?(觀察WITH CHECK OPTION對(duì)結(jié)果的影響);(1)不加WITH CHECK OPTION的結(jié)果(2)加WITH CHECK OPTION的結(jié)果insert into V2value(99999,張三,20,男,PH)不加with check option時(shí),命令執(zhí)行成功。加了這個(gè)后,在執(zhí)行命令,會(huì)出現(xiàn)錯(cuò)誤。原因是目標(biāo)視圖或者目標(biāo)視圖所跨越的某一視圖指定了

6、with check option,而該操作的一個(gè)或多個(gè)結(jié)果行又不符合check option約束的條件。3) 在V2基礎(chǔ)上,查詢所有計(jì)算機(jī)系女生信息;select * from V2where ssex=女 3. 結(jié)束本次實(shí)驗(yàn)三、 實(shí)驗(yàn)課后訓(xùn)練1. 掌握SQL SERVER中流控制語(yǔ)句及其它常用編程語(yǔ)句;1) 使用查詢分析器,編寫代碼,輸出乘法口訣表。2. 自行練習(xí)實(shí)驗(yàn)指導(dǎo)書P24【實(shí)驗(yàn)1.2 數(shù)據(jù)查詢】1.2.5自我實(shí)踐部分;3. 自行練習(xí)實(shí)驗(yàn)指導(dǎo)書P30【實(shí)驗(yàn)1.3 數(shù)據(jù)更新】1.3.5自我實(shí)踐部分;4. 自行練習(xí)實(shí)驗(yàn)指導(dǎo)書P36【實(shí)驗(yàn)1.4 視圖】1.4.5自我實(shí)踐部分;5. 自行練習(xí)

7、實(shí)驗(yàn)指導(dǎo)書P49【實(shí)驗(yàn)1.6 空值和空集的處理】1.6.5自我實(shí)踐部分;四、 實(shí)驗(yàn)報(bào)告1.SQL SERVER中變量聲明的命令是什么?輸出命令是什么?變量聲明:局部變量需要聲明,declare 變量名,空格,數(shù)據(jù)類型(聲明變量)。 全局變量不需要聲明。輸出命令:select (查詢命令)2.SQL SERVER中實(shí)現(xiàn)分支和循環(huán)的語(yǔ)句分別是什么?分支:用case 測(cè)試表達(dá)式when 測(cè)試值1 then 結(jié)果表達(dá)式1when 測(cè)試值2 then 結(jié)果表達(dá)式2else 結(jié)果表達(dá)式n+1end循環(huán):用while 布爾表達(dá)式begin 語(yǔ)句序列1break 語(yǔ)句序列2continue 語(yǔ)句序列3end3

8、.在SQL SERVER里使用ORDER BY排序時(shí),NULL值如何處理?使用GROUP BY分組時(shí),NULL值又如何處理的?null 默認(rèn)為最大值(即:asc 升序<小->大>,null值排在最后;desc 降序<大->小>,null值排在最前面4.實(shí)驗(yàn)總結(jié)(實(shí)驗(yàn)過(guò)程中出現(xiàn)的問(wèn)題、解決方法、結(jié)果如何或其它)有些較為復(fù)雜的嵌套查詢,剛開始不知道如何寫,然后問(wèn)同學(xué),理清了思路,并完成了編程。在這次實(shí)驗(yàn)中,有好多因?yàn)橹杏⒆址麊?wèn)題而出現(xiàn)的命令錯(cuò)誤,進(jìn)行更改后就可以正常執(zhí)行命令了實(shí)驗(yàn)三數(shù)據(jù)庫(kù)完整性與安全性一、 實(shí)驗(yàn)?zāi)康?. 理解實(shí)體完整性、參照完整性、用戶自定義完整

9、性的概念,學(xué)習(xí)三類完整性的實(shí)現(xiàn),了解違反完整性的結(jié)果;2. 掌握MS SQL SERVER中的有關(guān)用戶登錄認(rèn)證及管理方法,熟練使用自主存取控制進(jìn)行權(quán)限管理;二、 實(shí)驗(yàn)預(yù)習(xí)內(nèi)容在認(rèn)真閱讀教材及實(shí)驗(yàn)指導(dǎo)書【2.1 實(shí)體完整性】、【2.2 參照完整性】、【2.3 用戶自定義完整性】、【2.4 觸發(fā)器】、【2.5 綜合案例】和【3.1 用戶標(biāo)識(shí)與鑒別】、【3.2 自主存取控制】、【3.3 視圖機(jī)制在自主存取控制上的應(yīng)用】、【3.4 Public角色在安全性中的應(yīng)用】、【3.8 綜合案例】的基礎(chǔ)上,上機(jī)前請(qǐng)預(yù)習(xí)以下內(nèi)容,并在空白處填寫相應(yīng)的步驟或命令。1. 使用SCHOOL數(shù)據(jù)庫(kù)1) 創(chuàng)建一張新表CLA

10、SS,包括Class_id(varchar(4),Name(varchar(10),Department(varchar(20)三個(gè)屬性列,其中Class_id為主碼; 2) 執(zhí)行兩次相同的插入操作(0001,01csc,cs),結(jié)果如何;2. 使用SQL命令創(chuàng)建一張學(xué)生互助表,要求:包括學(xué)生編號(hào)、學(xué)生姓名、學(xué)生幫助對(duì)象的編號(hào),每個(gè)學(xué)生有且僅有一個(gè)幫助對(duì)象,幫助的對(duì)象必須是已存在的學(xué)生。3. 使用STC數(shù)據(jù)庫(kù),修改設(shè)置,完成以下2種不同的要求,請(qǐng)寫出對(duì)應(yīng)的語(yǔ)句或簡(jiǎn)述操作過(guò)程:1) 當(dāng)更新、刪除STU表中記錄時(shí),若SC表中有此學(xué)生的記錄,則拒絕;2) 當(dāng)更新、刪除STU表中記錄時(shí),若SC表中有此

11、學(xué)生的記錄,則自動(dòng)更新或刪除;4. 使用SQL命令完成以下任務(wù):1) 創(chuàng)建Worker表(表結(jié)構(gòu)見指導(dǎo)書P73)2) 定義約束U1、U2,其中U1規(guī)定Name字段取值唯一,U2規(guī)定sage字段上限是28;3) 插入一條合法記錄;4) 插入一條違反U2約束的記錄,簡(jiǎn)述觀察到的結(jié)果如何?并分析原因;5) 去除U1約束;6) 修改約束U2,令sage的值大于等于0;7) 創(chuàng)建規(guī)則rule_sex,規(guī)定更新或插入的值只能是M或F,并綁定到Worker的sex字段;8) 插入2條記錄,一條滿足規(guī)則rule_sex,一條違反規(guī)則,觀察結(jié)果。5. 使用查詢分析器創(chuàng)建觸發(fā)器并測(cè)試,請(qǐng)寫出相應(yīng)的語(yǔ)句:1) 為W

12、orker表創(chuàng)建觸發(fā)器T1,當(dāng)插入或更新表中數(shù)據(jù)時(shí),保證所操作記錄的sage大于0;2) 為Worker表創(chuàng)建觸發(fā)器T2,禁止刪除編號(hào)為00001的記錄;3) 為Worker表創(chuàng)建觸發(fā)器T3,要求更新一個(gè)記錄時(shí),表中記錄的sage要比老記錄的sage的值大。6. 分別用企業(yè)管理器和查詢分析器實(shí)現(xiàn)用戶的標(biāo)識(shí)并測(cè)試,請(qǐng)寫出相應(yīng)的操作過(guò)程或?qū)?yīng)的語(yǔ)句:1) 設(shè)置SQL SERVER的安全認(rèn)證模式;2) 建立名為“LiYong”的登錄用戶、數(shù)據(jù)庫(kù)用戶,默認(rèn)訪問(wèn)SCHOOL數(shù)據(jù)庫(kù),密碼為“abcd”;3) 取消“LiYong”用戶;7. 先以sa帳號(hào)登錄,要實(shí)現(xiàn)如下表的權(quán)限管理,請(qǐng)按先后順序?qū)懗鱿鄳?yīng)的S

13、QL語(yǔ)句(假設(shè)所有用戶尚未定義,其密碼均為123),并加以必要的說(shuō)明。編號(hào)授權(quán)用戶名被授權(quán)用戶名數(shù)據(jù)庫(kù)對(duì)象名允許的操作類型能否轉(zhuǎn)授權(quán)1SAU1StudentsSELECT不能2SAU2StudentsALL不能3SAPUBLICChoicesSELECT不能4SAU3StudentsSELECT能5U3U4StudentsSELECT能6U4U5StudentsSELECT不能7SAU6ChoicesINSERT能8SAU7Students.snameUPDATE不能8. 創(chuàng)建在SCHOOL數(shù)據(jù)庫(kù)中choices上的視圖CS_View,授權(quán)給計(jì)算機(jī)系講授課程號(hào)為10010的數(shù)據(jù)庫(kù)用戶“LiYo

14、ng”,讓其具有視圖上的SELECT權(quán)限;9. 對(duì)視圖CS_View上的score屬性列的UPDATE權(quán)限授予用戶“LiYong”,可以修改學(xué)生成績(jī),但不能修改其它屬性列的值;10. 假設(shè)SCHOOL數(shù)據(jù)庫(kù)中,每個(gè)學(xué)生的登錄名都為自己在STUDENTS表中的sid,實(shí)現(xiàn)每個(gè)學(xué)生只能查詢自己選課信息,不能查詢別人的成績(jī),也不能修改自己的成績(jī)。11. 結(jié)束本次實(shí)驗(yàn)三、 實(shí)驗(yàn)課后訓(xùn)練1. 自行練習(xí)實(shí)驗(yàn)指導(dǎo)書P81【實(shí)驗(yàn)2.5 綜合案例】綜合案例1;2. 自行練習(xí)實(shí)驗(yàn)指導(dǎo)書P122【實(shí)驗(yàn)3.8 綜合案例】綜合案例;四、 實(shí)驗(yàn)報(bào)告1. 授權(quán)給public與授權(quán)給指定用戶有什么區(qū)別?實(shí)際應(yīng)用中,哪個(gè)更安全

15、些?2. SQL SERVER中的角色有什么作用?3. 實(shí)驗(yàn)總結(jié)(實(shí)驗(yàn)過(guò)程中出現(xiàn)的問(wèn)題、解決方法、結(jié)果如何或其它)實(shí)驗(yàn)四數(shù)據(jù)庫(kù)編程一、 實(shí)驗(yàn)?zāi)康?. 掌握ODBC的配置;2. 能編寫簡(jiǎn)單的存儲(chǔ)過(guò)程和函數(shù),并調(diào)用;二、 實(shí)驗(yàn)預(yù)習(xí)內(nèi)容上機(jī)前請(qǐng)預(yù)習(xí)以下內(nèi)容,并在空白處填寫相應(yīng)的步驟或命令。1. 配置ODBC,使用VFP中的表單,查詢SCHOOL數(shù)據(jù)庫(kù)中STUDENTS表中所有記錄。2. 編寫存儲(chǔ)過(guò)程并調(diào)用,請(qǐng)寫出相應(yīng)命令;1) 在查詢分析器中,編寫存儲(chǔ)過(guò)程usp_get_stuinfo ,使用一個(gè)名為xm能夠傳送進(jìn)存儲(chǔ)過(guò)程的參數(shù)。允許以學(xué)生的姓名查詢?cè)撋幕拘畔ⅲ?) 在查詢分析器中調(diào)用存儲(chǔ)過(guò)程查詢“趙飛”同學(xué)的基本信息的語(yǔ)句;3. 編寫函數(shù)并調(diào)用,請(qǐng)寫出相應(yīng)命令;1) 在查詢分析器中,定義內(nèi)聯(lián)表值函數(shù)Fun,用于返回各職稱的教師基本信息;2) 在查詢分析器中,使用Fun進(jìn)行選擇以獲得“教授”職稱的教師基本信息;3) 在查詢分析器中,編寫標(biāo)量函數(shù)Func,用于返回兩個(gè)整數(shù)中的最大值;4) 在查詢分析器中,調(diào)用此函數(shù),輸出兩個(gè)數(shù)中的最大值;5) 在SQL SERVER中定義函數(shù)FUNS,返回指定參數(shù)的平方,配置好ODBC后,

溫馨提示

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

評(píng)論

0/150

提交評(píng)論