版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)據(jù)庫系統(tǒng)概論實驗大綱一、學時數(shù):27 學時二、授課對象:計算機科學與技術(shù)專業(yè)(本科)三、內(nèi)容提要:1 本實驗內(nèi)容作為數(shù)據(jù)庫系統(tǒng)概論的理論聯(lián)系實際,培養(yǎng)增強學生動手能力,理解并掌握SQL語句的用法。2 實驗內(nèi)容SQL SERVER2000軟件的熟悉,數(shù)據(jù)的定義、查詢、修改及控制。3 實驗要求以SQL SERVER2000作為基本的調(diào)試軟件,并有前臺的面向?qū)ο蟮拈_發(fā)工具。四、考試方式:實驗報告及成績五、教材及參考書:1數(shù)據(jù)庫系統(tǒng)概論(第三版)薩師煊 王珊 高等教育出版社 2000.2出版2SQL語言應(yīng)用 Michael Morrison 北京大學出版社 2002.063
2、.Microsoft SQL Server 2000數(shù)據(jù)庫管理 微軟公司 著 北京希望電子出版社 2001.5出版六、實驗內(nèi)容安排實驗1 數(shù)據(jù)庫及數(shù)據(jù)庫表的建立實驗1 實驗?zāi)康谋緦嶒灥哪康氖鞘箤W生熟悉SQL Server的企業(yè)管理器的用法,初步了解SQL Server查詢分析器的使用方法,熟悉SQL SERVER的常用數(shù)據(jù)類型,加深對SQL和SQL語言的查詢語句的理解。熟練掌握簡單表的創(chuàng)建與修改。2 實驗時數(shù) 3學時3 實驗內(nèi)容1 基本表的建立:a) 建立一個“學生”表Student,它由學號xh、姓名xm、性別xb、年齡nl、所在系xi五個屬性組成,其中學號屬性不能為空,并且其值是唯一的。
3、b) 建立一個“學生”表Student,它由學號xh、姓名xm、性別xb、年齡nl、所在系xi五個屬性組成,其中學號屬性不能為空,并創(chuàng)建檢查約束(nl>0)。 c) 建立一個“學生”表Student,它由學號xh、姓名xm、性別xb、年齡nl、所在系xi五個屬性組成,要求學號為主鍵,xb有默認的值為 男d) 建立“課程kc”包括課程號kch,課程名稱kcmc,先修課程xxkc,學分xf,要求建立主鍵e) 建立“成績登記表cjdj”包括學號xh,程號kch,成績,要求建立主鍵及與student及kc表聯(lián)接的外鍵2 基本表的修改:a) 在cjdj表中增加一列“任課教師rkjs”b) 刪除cj
4、表中rkjs一列c) 將student表的xm一列允許空值的屬性更改成不允許為空,將列xm的長度由char(8)改為char(10)d) 增加cjdj表的列cj增加一個約束要求cj>0 and cj<=100e) 建立一個臨時表,再將其刪除3 索引的建立與刪除(理解以下語句的含義并上機實踐):a) create unique index stu_xh on student(xh)b) create index xh_kch on cj(xh asc,kch desc) c) drop index student.xh_kch4 實驗方法在“企業(yè)管理器”和“SQL查詢分析器”均完成以
5、上的任務(wù)。并檢查所做的操作表現(xiàn)。實驗2 數(shù)據(jù)庫的簡單查詢和連接查詢實驗1 實驗?zāi)康谋緦嶒灥哪康氖鞘箤W生掌握SQL Server查詢分析器的使用方法,加深對SQL和SQL語言的查詢語句的理解。熟練掌握簡單表的數(shù)據(jù)查詢、數(shù)據(jù)排序和數(shù)據(jù)連接查詢的操作方法。2 實驗時數(shù) 3學時3 實驗內(nèi)容1 簡單查詢操作。該實驗包括投影、選擇條件表達,數(shù)據(jù)排序,使用臨時表等。具體完成以下題目,將它們轉(zhuǎn)換為SQL語句表示,在學生選課數(shù)據(jù)庫中實現(xiàn)其數(shù)據(jù)查詢操作。4 求數(shù)學系學生的學號和姓名5 求選修了課程的學生學號6 求選修課程號為C1的學生號和成績,并要求對查詢結(jié)果按成績的降序排列,如果成績相同按學號的升序排列。7 求
6、選修課程號為C1且成績在8090之間的學生學號和成績,并成績乘以0.8輸出。8 求數(shù)學系或計算機系姓張的學生的信息。9 求缺少了成績的學生的學號和課程號2 連接查詢操作。該實驗包括等值連接、自然連接、求笛卡兒積、一般連接、外連接、內(nèi)連接、左連接、右連接和自連接等。10 查詢每個學生的情況以及他所選修的課程11 求學生的學號、姓名、選修的課程及成績12 求選修課程號為C1且成績在90以上的學生學號、姓名和成績13 查詢每一門課程的間接先行課(即先行課的先行課)4 實驗方法將查詢需求用SQL語言表示;在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句;設(shè)置查詢分析器的結(jié)果區(qū)為Standa
7、rd Execute(標準執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確,要進行修改,直到正確為止。實驗3 數(shù)據(jù)庫的嵌套查詢實驗1 實驗?zāi)康谋緦嶒灥哪康氖鞘箤W生進一步掌握SQL Server查詢分析器的使用方法,加深SQL語言的嵌套查詢語句的理解2 實驗時數(shù) 3學時3 實驗內(nèi)容本實驗的主要內(nèi)容是:在SQL Server查詢分析器中使用IN、比較符、ANY或ALL和EXISTS操作符進行嵌套查詢操作。具體完成以下例題。將它們用SQL語句表示,在學生選課中實現(xiàn)其數(shù)據(jù)嵌套查詢操作。例1 求選修了高等數(shù)學的學號和姓名例2 求C1課程的成績
8、高于劉晨的學生學號和成績例3 求其他系中比計算機系某一學生年齡小的學生(即年齡小于計算機系年齡最大者的學生)例4 求其他系中比計算機系學生年齡都小的學生例5 求選修了C2課程的學生姓名例6 求沒有選修C2課程的學生姓名例7 查詢選修了全部課程的學生姓名例8 求至少選修了學號為“95002”的學生所選修全部課程的學生學號和姓名4 實驗方法 將查詢需求用SQL語言表示:在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句:設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標準執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正
9、確,要進行修改,直到正確為止。 實驗4 數(shù)據(jù)庫的集合查詢和統(tǒng)計查詢實驗1 實驗?zāi)康谋緦嶒灥哪康氖鞘箤W生熟練掌握SQL Server查詢分析器的使用方法,加深SQL語言查詢語句的理解。熟練掌握數(shù)據(jù)查詢中的分組、統(tǒng)計、計算和集合的操作方法。2 實驗時數(shù) 3學時相關(guān)知識(1) 分組和SQL函數(shù)查詢SQL函數(shù)是綜合信息的統(tǒng)計函數(shù),包括計數(shù)、求最大值、最小值、平均值、和值等,較詳細的SQL函數(shù)及功能見第三章3.3節(jié)(SQL查詢用的函數(shù))。SQL函數(shù)可作為列標識符出現(xiàn)在SELECT子句的目標列或HAVING子句的條件中。在SQL查詢語句中,如果有GROUP BY分組子句,則語句中的函數(shù)為分組統(tǒng)計函數(shù);如果
10、沒有GROUP BY分組子句,則語句中的函數(shù)為全部結(jié)果集的統(tǒng)計函數(shù)。表1 基本的SQL函數(shù)函數(shù)功能AVG(<數(shù)值表達式>)求與字段相關(guān)的數(shù)值表達式的平均值SUM(<數(shù)值表達式>)求與字段相關(guān)的數(shù)值表達式的和值MIN(<字段表達式>)求字段表達式的最小值MAX(<字段表達式>)求字段表達式的最大值COUNT(*|<字段>)求記錄行數(shù)(*),或求不是NULL的字段的行數(shù)(2) 集合查詢 每一個SELECT語句都能獲得一個或一組元組。若要把多個SELECT語句的結(jié)果合并為一個結(jié)果,可用集合來完成。集合操作主要包括并操作UNION、交操作IN
11、TERSECT和差操作MINUS。 標準SQL語言中提供了并操作UNION,沒有直接提供交操作INTERSECT和差操作MINUS,但可以用其他方法來實現(xiàn),具體實現(xiàn)方法依查詢不同而不同。3 實驗內(nèi)容本實驗的主要內(nèi)容是:a) 分組查詢實驗。該實驗包括分組條件表達、選擇組條件表達的方法。b) 使用函數(shù)查詢的實驗。該實驗包括統(tǒng)計函數(shù)和分組統(tǒng)計函數(shù)的使用方法。c) 集合查詢實驗。該實驗并操作UNION、交操作INTERSECT和差操作MINUS的實現(xiàn)方法。具體完成以下例題,將它們用SQL語句表示,在學生選課中實現(xiàn)其數(shù)據(jù)查詢操作。例1 求學生的總?cè)藬?shù)例2 求選修了課程的學生人數(shù)例3 求課程和選修了該課程
12、的學生人數(shù)例4 求選修超過3門課的學生學號例5 查詢計算機科學系的學生及年齡不大于19歲的學生例6 查詢計算機科學系的學生與年齡不大于19歲的學生的交集例7 查詢計算機科學系的學生與年齡不大于19歲的學生的差集例8 查詢選修課程C1的學生集合與選修課程C2的學生集合的交集例9 查詢選修課程C1的學生集合與選修課程C2的學生集合的差集4 實驗步驟 將查詢需求用SQL語言表示:在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句:設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標準執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果
13、結(jié)果不正確,要進行修改,直到正確為止。 實驗5 數(shù)據(jù)庫的更新實驗1 實驗?zāi)康谋緦嶒灥哪康氖且髮W生熟練掌握使用SQL 和通過SQL Server企業(yè)管理器向數(shù)據(jù)庫輸入數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)的操作。2 實驗時數(shù) 3學時相關(guān)知識SQL Server提供了很多方法更新表中數(shù)據(jù)。以插入記錄為例,可以使用INSERT語句、VALUES子句將特定值集合插入一行;可以使用數(shù)據(jù)庫接口API(ADO、OLE DB、ODBC和DB-Library)中的函數(shù)進行數(shù)據(jù)插入等。本實驗主要掌握INSERT、UPDATE和DELETE語句的基本用法。l 插入操作,其語句的一般格式為INSERTINTO table_or_
14、view (colum_list)VALUES (date_values);此語句是使date_values作為一行數(shù)據(jù)記錄插入已命名的表或視圖table_or_view中。Column_list是由逗號分隔的table_or_view的列名列表,用來指定為其提供數(shù)據(jù)的列。如果沒有指定column_list,表或視圖中的所有列都將接收數(shù)據(jù)。如果column_list沒有為表或視圖中的所有列命名,將在列表中沒有命名的任何列中插入一個NULL值(或者在默認情況下為這些列定義的默認值)。在列的列表中沒有指定的所有列都必須允許NULL值或者指定的默認值。否則SQL Server將返回一個錯誤。l 修改
15、操作語句的一般格式為UPDATE 表名SET <列名>=<表達式>,<列名>=<表達式>where <條件>其功能是修改指定表中滿足WHERE子句條件的元組。其中SET子句用于指定修改方法,即用<表達式>的值取代相應(yīng)的屬性列值。如果省略WHERE子句,則表示要修改表中的所有元組。l 刪除語句的一般格式為DELETE FROM <表名>WHERE <條件>其功能是從指定表中刪除滿足WHERE子句條件的所有元組。如果省略WHERE子句,則表示要刪除表中的所有元組,但表的定義仍在字典中。3 實驗內(nèi)容通過企
16、業(yè)管理器,在學生選課數(shù)據(jù)庫的學生、課程和選課3個表中各輸入10條記錄。要求記錄不僅滿足數(shù)據(jù)約束要求,還要有表間關(guān)聯(lián)的記錄。具體完成以下例題。將它們轉(zhuǎn)換為SQL語句表示,在學生選課庫中實現(xiàn)其數(shù)據(jù)更新操作。例1 將一新學生記錄(學號:95050;姓名:陳冬;性別:男;年齡:18;所在系:計算機科學系)插入學生表中。例2 插入一條選課記錄(95020,C1)。例3 對每一個系,求學生的平均年齡,并把結(jié)果存入數(shù)據(jù)庫。對于這道題,首先要在數(shù)據(jù)庫中建立一個有兩個屬性列的新表,其中一列存放系名,另一列存放相應(yīng)系的學生平均年齡。 CREATE TABLE Deptage(所在系 CHAR(20),平均年齡SM
17、ALLINT); 然后對數(shù)據(jù)庫的學生表按所在系分組求平均年齡,再把所在系和平均年齡存入新表中。例4 將學生95001的年齡改為22歲。例5 將所有學生的年齡增加一歲。 例6 將計算機科學系全體學生的成績置零。例7 刪除學號為95006的學生記錄例8 刪除所有的學生選課記錄例9 刪除計算機科學系所有學生的選課記錄4 實驗步驟 將查詢需求用SQL語言表示;在SQL Server查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句;設(shè)置查詢分析器的結(jié)果區(qū)為Standard Execute(標準執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確,要進行修改
18、,直到正確為止。 實驗6 數(shù)據(jù)庫的視圖定義及維護實驗1. 實驗?zāi)康谋緦嶒灥哪康氖鞘箤W生掌握視圖的定義與維護操作,加深對視圖在關(guān)系數(shù)據(jù)庫中的作用的理解。 2. 實驗時數(shù) 3學時相關(guān)知識視圖是根據(jù)子模式建立的虛擬表。一個視圖可以由一個表構(gòu)造,也可以由多個表構(gòu)造。利用企業(yè)管理器和視圖創(chuàng)建向?qū)нM行創(chuàng)建,查看和修改視圖就如同對表的操作一樣,非常容易。3. 實驗內(nèi)容本實驗的主要內(nèi)容是:1) 創(chuàng)建和刪除視圖2) 查詢和更新視圖具體完成以下例題。例1 建立信息系學生的視圖例2 建立信息系學生的視圖,并要求進行修改和插入操作時仍須保證該視圖只有信息系的學生。例3 建立信息系選修了C1號課程的學生視圖例4 建立信
19、息系選修了C1號課程且成績在90分以上的學生視圖例5 定義一個反映學生出生年份的視圖4. 實驗步驟1 創(chuàng)建視圖下面利用了SQL Server中提供的視圖創(chuàng)建向?qū)В瑏韺崿F(xiàn)例3(建立信息系選修了1號課程的學生視圖)。1) 打開企業(yè)管理器窗口,確認服務(wù)器,打開數(shù)據(jù)庫文件夾,選中新視圖所在的數(shù)據(jù)庫(此例為學生選課數(shù)據(jù)庫)。2) 選擇菜單:工具|向?qū)?) 在如圖1所示的向?qū)нx擇對話框中,單擊數(shù)據(jù)庫左邊的“+”號,使之展開。選擇“創(chuàng)建數(shù)據(jù)庫向?qū)А表?,單擊“確定”按鍵。 圖1 向?qū)нx擇對話框4) 進入創(chuàng)建視圖向?qū)Ш?,首先出現(xiàn)的是歡迎使用創(chuàng)建視圖向?qū)υ捒颍渲泻唵谓榻B了該向?qū)У墓δ?。單擊“下一步”后,就會?/p>
20、現(xiàn)選擇數(shù)據(jù)庫對話框。5) 在選擇數(shù)據(jù)庫對話框中,選擇視圖所屬的數(shù)據(jù)庫。本例的數(shù)據(jù)庫為“學生選課”。單擊“下一步”按鍵,則進入選擇表對話框。6) 在選擇表對話框中,列出了指定數(shù)據(jù)庫中所有用戶定義的表。用戶可以從中選擇構(gòu)造視圖所需的一個表或者多個表,被選中的表成為構(gòu)造視圖的參考表。選擇構(gòu)造視圖參考表的方法是:用鼠標單擊表后的“包含在視圖中”列,使復(fù)選框為選中狀態(tài)。本例的數(shù)據(jù)庫中只有學生表和選課表,它們都應(yīng)當被選中。單擊“下一步”按鍵,則進入選擇對話框。7) 列選擇對話框中以表格形式列出了創(chuàng)建視圖參考表的全部屬性,每個屬性占表的一行,創(chuàng)建視圖參考屬性可以在表格中選出。選擇視圖參考屬性的方法是用鼠標單
21、擊屬性名后邊的“選擇列”列,使復(fù)選框為選中狀態(tài)。本例中學生.學號,學生.姓名和選課.成績屬性要被選中。單擊“下一步”按鍵,進入創(chuàng)建視圖的定義限制對話框,如圖2所示。 圖2 定義限制對話框8) 在定義限制對話框中,輸入表的連接和元組選擇條件。本例輸入“所在系=信息系 AND 學生.學號 = 選課.學號 AND 選課.課程號 = C1”。單擊“下一步”按鍵,出現(xiàn)視圖名對話框。9) 在輸入視圖名對話框中輸入所建視圖的標識名。本例的視圖名為“信息系選課1”。單擊“下一步”按鍵,則出現(xiàn)視圖創(chuàng)建完成對話框。在完成對話框中給出了根據(jù)前面對話框輸入的內(nèi)容譯成的SQL語句。您可以認真閱讀該SQL語句,如果發(fā)現(xiàn)與
22、要求有不符合之處可以直接進行修改。確認無誤后單擊“完成”按鈕。隨后出現(xiàn)一個通知用戶已成功創(chuàng)建視圖的信息框,單擊“確認”按鈕后,整個創(chuàng)建視圖工作就完成了。2 查看和修改視圖視圖創(chuàng)建好后,就可以利用它進行查詢信息了。如果發(fā)現(xiàn)視圖的結(jié)構(gòu)不能很好地滿足要求,還可以在企業(yè)管理器對它進行修改。在企業(yè)管理器中修改視圖結(jié)構(gòu)需要首先選擇服務(wù)器,數(shù)據(jù)庫,并使數(shù)據(jù)庫展開,然后用鼠標右擊要修改的視圖,在彈出的菜單上選擇“設(shè)計視圖”項,則彈出一個視圖設(shè)計對話框,如圖3所示。當對其修改完畢后關(guān)閉窗口,新的視圖結(jié)構(gòu)就會取代原先的結(jié)構(gòu)。 3將查詢需求用SQL語言表示;在SQL查詢分析器的輸入?yún)^(qū)中輸入SQL查詢語句;設(shè)置查詢分
23、析器的結(jié)果區(qū)為Standard Execute(標準執(zhí)行)或Execute to Grid(網(wǎng)格執(zhí)行)方式;發(fā)布執(zhí)行命令,并在結(jié)果區(qū)中查看查詢結(jié)果;如果結(jié)果不正確,要進行修改,直到正確為止。實驗7 數(shù)據(jù)安全性實驗5. 實驗?zāi)康?本實驗的目的是通過實驗使學生加深對數(shù)據(jù)安全性的理解,并掌握SQL Server中有關(guān)用戶,角色及操作權(quán)限的管理方法。6. 實驗時數(shù) 3學時相關(guān)知識 SQL Server提供以下四種防線:l Windows NT操作系統(tǒng)的安全防線Windows NT的網(wǎng)絡(luò)管理員負責建立用戶組,設(shè)置帳號并注冊,同時決定不同的用戶對不同的系統(tǒng)資源的訪問級別。用戶只有擁有了一個有效的Windo
24、ws NT登錄帳號,才能對網(wǎng)絡(luò)資源進行訪問。l SQL Server的運行安全防線SQL Server 通過另外一種帳號設(shè)置來創(chuàng)建附加安全層。SQL Server具有標準登錄和集成登錄兩種用戶登錄方式,用戶只有登錄成功,才能與SQL Server建立一次連接。l SQL Server數(shù)據(jù)庫的安全防線 SQL Server的特定數(shù)據(jù)庫都有自己的用戶和角色(用戶組),該數(shù)據(jù)庫只能由它的用戶或角色訪問,其他用戶無權(quán)訪問其數(shù)據(jù),數(shù)據(jù)庫系統(tǒng)可以通過創(chuàng)建和管理特定的數(shù)據(jù)庫的用戶和角色來保證數(shù)據(jù)庫不被非法用戶訪問。l SQL Server數(shù)據(jù)庫對象的安全防線 SQL Server可以對權(quán)限進行管理,SQL的
25、DCL功能保證合法用戶即使進了數(shù)據(jù)庫也不能有超越權(quán)限的數(shù)據(jù)操作,即合法用戶必須在自己的權(quán)限范圍內(nèi)進行數(shù)據(jù)操作。7. 實驗內(nèi)容本實驗的實驗內(nèi)容為:l 在SQL Server企業(yè)管理器中,設(shè)置SQL Server的安全認證模式。l 通過SQL Server企業(yè)管理器,實現(xiàn)對SQL Server的用戶和角色管理。l 分別通過SQL Server企業(yè)管理器和SQL的數(shù)據(jù)控制功能,設(shè)置和管理數(shù)據(jù)操作權(quán)限。8. 實驗步驟l 在SQL Server企業(yè)管理器中為所屬的SQL 服務(wù)器設(shè)置為SQL Server和Windows NT混合安全認證模式。其步驟如下:1) 在企業(yè)管理器窗口中展開服務(wù)器組,用鼠標右擊需
26、要設(shè)置的SQL服務(wù)器,在彈出的菜單中選擇“屬性”項,則出現(xiàn)SQL Server屬性對話框,如圖1所示。 圖1 SQL Server屬性對話框2) 在SQL Server屬性對話框中選擇“安全性”選項卡。3) 身份驗證選擇“SQL Server和Windows”單選項。l 在SQL Server企業(yè)管理器中為自己建立一個服務(wù)器用戶、數(shù)據(jù)庫用戶和數(shù)據(jù)庫角色。1) 在企業(yè)管理器窗口中展開服務(wù)器組,展開服務(wù)器,用鼠標單擊“安全性”文件夾右側(cè)的+,用鼠標右擊“登錄”,在彈出的菜單中選擇“新建登錄”項,則出現(xiàn)新建登錄對話框,如圖2所示。 圖2 新建登錄對話框2) 在新建登錄對話框中有常規(guī),服務(wù)器角色和數(shù)據(jù)
27、庫訪問三個選項卡。在常規(guī)選項卡中,輸入用戶名(本例為王平),選擇SQL Server安全驗證,輸入用戶口令。在服務(wù)器角色選項卡中,需要確定用戶所屬的服務(wù)器角色,在本例中采用缺省值即可。在數(shù)據(jù)庫訪問選項卡中,需要指定此登錄可以訪問的數(shù)據(jù)庫(本例選中學生選課數(shù)據(jù)庫)和“學生選課”的數(shù)據(jù)庫角色(在本例中采用缺省值即可)。單擊“確定”按鈕,既完成了創(chuàng)建登錄用戶的工作。l 關(guān)閉SQL Server企業(yè)管理器,打開SQL查詢分析器。選擇SQL Server安全驗證,用戶名為王平,輸入用戶口令,連接到SQL Server。在“查詢”窗口中可以輸入SQL語句。如“SELECT * FROM 學生”。運行后,得
28、到消息“拒絕了對對象學生(數(shù)據(jù)庫學生選課,所有者dbo)的SELECT權(quán)限?!???梢娪脩敉跗?jīng)]有對學生表的SELECT權(quán)限。l 要想將學生選課數(shù)據(jù)庫的操作權(quán)限賦予數(shù)據(jù)庫用戶王平,有兩種方法。方法一:通過企業(yè)管理器1) 在企業(yè)管理器窗口中展開服務(wù)器組,展開服務(wù)器,用鼠標單擊“數(shù)據(jù)庫”文件夾右側(cè)的+,用鼠標單擊學生選課數(shù)據(jù)庫文件夾右側(cè)的+,用鼠標右擊“用戶”。在屏幕右側(cè)的“用戶”窗口中選擇“王平”項,用鼠標右擊,在彈出的菜單中選擇“屬性”項,則出現(xiàn)數(shù)據(jù)庫用戶屬性對話框,如圖3所示。 圖3 數(shù)據(jù)庫用戶屬性對話框2) 單擊圖3中的權(quán)限按鈕,則出現(xiàn)數(shù)據(jù)庫用戶權(quán)限對話框,如圖4所示。對話框的下面是有關(guān)數(shù)據(jù)
29、庫用戶和角色所對應(yīng)的權(quán)限表。這些權(quán)限均以復(fù)選框的形式表示。復(fù)選框有三種狀態(tài):“”為授權(quán);“×”為廢除權(quán);空為撤權(quán)。在表中可以對用戶或角色的各種對象操作權(quán)(SELECT,INSERT,UPDATE,DELETE,EXEC和DRI)進行授予或撤消。 圖4 數(shù)據(jù)庫用戶權(quán)限對話框3) 在圖4中找到學生表,授予SELECT權(quán)限,即讓學生表與SELECT列交叉的復(fù)選框為“”即可。方法二:通過SQL的數(shù)據(jù)控制功能對用戶王平授權(quán),必須是數(shù)據(jù)庫對象擁有者以上用戶授予。我們可以以系統(tǒng)管理員或sa用戶登錄進入查詢分析器。在查詢分析器中輸入授權(quán)語句“GRANT SELECT ON 學生 TO 王平;”,然后
30、執(zhí)行即可。實驗8 數(shù)據(jù)完整性實驗1. 實驗?zāi)康谋緦嶒灥哪康氖峭ㄟ^實驗使學生加深對數(shù)據(jù)完整性的理解,學會創(chuàng)建和使用觸發(fā)器。2. 實驗時數(shù) 3學時相關(guān)知識SQL Server實現(xiàn)數(shù)據(jù)完整性的具體方法有4種:約束、缺省、規(guī)則和觸發(fā)器。其中約束和缺省在實驗一中已接觸過。本實驗重點學會創(chuàng)建和使用觸發(fā)器。觸發(fā)器是實施復(fù)雜完整性的特殊類型的存儲類型。觸發(fā)器不需要專門語句調(diào)用,當對它所保護數(shù)據(jù)進行修改時自動激活,以防止對數(shù)據(jù)進行不正確,未授權(quán)或不一致的修改。創(chuàng)建觸發(fā)器的語法為:CREATE TRIGGER <觸發(fā)器> ON <表名>WITH ENCRYPTIONFOR DELETE,I
31、NSERT,UPDATEWITH APPENDNOT FOR REPLICATIONAS <SQL 語句組>其中:1) WITH ENCRYPTION 為加密選項。2) DELETE 選項為創(chuàng)建DELETE 觸發(fā)器。DELETE觸發(fā)器的作用是當對表執(zhí)行DELETE操作時觸發(fā)器被激活,并從指定表中刪除元組,同時將刪除的元組放入一個特殊的邏輯表(delete表)中。觸發(fā)器的動作可以檢查delete表中的數(shù)據(jù),以確定下一步該如何處理。3) INSERT選項為創(chuàng)建INSERT觸發(fā)器。INSERT觸發(fā)器在對指定表中執(zhí)行插入數(shù)據(jù)操作時激活,激活后將插入表中的數(shù)據(jù)拷貝并送入一個特殊的邏輯表(in
32、serted 表)中,觸發(fā)器會根據(jù)INSERT表中的值決定如何處理。4) UPDATE選項為創(chuàng)建UPDATE觸發(fā)器。UPDATE觸發(fā)器僅在對指定表中進行更新數(shù)據(jù)操作時激活。UPDATE觸發(fā)器激活后把將要被更新的原數(shù)據(jù)移入delete表中再將要被更新后的新數(shù)據(jù)的備份送入insert表中,UPDATE觸發(fā)器對delete和inserted表進行檢查,并決定如何處理。5) NOT FOR REPLICATION 選項說明當一個復(fù)制過程在修改一個觸發(fā)器表時,與該表相關(guān)聯(lián)的觸發(fā)器不能被執(zhí)行。一個觸發(fā)器只適用于一個表,每個表最多只能有三個觸發(fā)器,它們分別是INSERT、UPDATE和DELETE觸發(fā)器。觸
33、發(fā)器僅在實施數(shù)據(jù)完整性和處理業(yè)務(wù)規(guī)則時使用。3. 實驗內(nèi)容本實驗的內(nèi)容為:使用SQL設(shè)計觸發(fā)器,通過SQL Server企業(yè)管理器定義它們。具體完成下面例題:利用觸發(fā)器來保證學生選課庫中選課表的參照完整性,以維護其外碼與參照表中的主碼一致。CREATE TRIGGER SC_inserted ON 選課FOR INSERTAS IF(SELECT COUNT(*) FROM 學生,inserted,課程WHERE 學生.學號 = inserted.學號 AND inserted.課程號 = 課程.課程號)=0ROLLBACK TRANSACTION4. 實驗步驟1、 在企業(yè)管理器中創(chuàng)建觸發(fā)器1
34、) 在企業(yè)管理器中,由服務(wù)器開始逐步擴展到觸發(fā)器所屬表的數(shù)據(jù)庫(本例為學生選課數(shù)據(jù)庫),打開表文件夾,在表窗口中用鼠標右擊觸發(fā)器所屬的表(本例為選課表)。2) 在彈出菜單上選擇“所有任務(wù)”“管理觸發(fā)器”項,則彈出如圖所示的觸發(fā)器屬性對話框。 圖 觸發(fā)器屬性對話框如果要新建觸發(fā)器,在文本T的文本框中輸入創(chuàng)建觸發(fā)器的SQL語句(見實驗內(nèi)容),單擊“檢查語法”按鈕進行語法的檢查,檢查無誤后,單擊確定按鈕。3) 如果要修改觸發(fā)器,則在名字彈出項中選擇要修改的觸發(fā)器名(本例為SC_inserted),然后在文本T的文本框中對已有的內(nèi)容進行修改,檢查無誤后單擊“確定”按鈕。4) 如果要刪除觸發(fā)器,則在名字
35、彈出項中選擇要刪除的觸發(fā)器名(本例為SC_inserted),并檢查文本T的文本框中的內(nèi)容,看是否選得正確,最后單擊“刪除”按鈕。2、 驗證觸發(fā)器1) 在企業(yè)管理器中,由服務(wù)器開始逐步擴展到觸發(fā)器所屬表的數(shù)據(jù)庫(本例為學生選課數(shù)據(jù)庫)。此時,可在選課表中輸入一條記錄(學號:96001,課程號:C8,成績:88)。顯然,這條記錄是不符合參照完整性的。通過企業(yè)管理器輸入時,會出現(xiàn)錯誤提示,違反了數(shù)據(jù)庫的約束(如果約束C5和C6同時存在的話)。2) 如果約束C5和C6存在,則刪除之(參見實驗一)3) 打開SQL查詢分析器,輸入語句“INSERT INTO 選課 VALUES(96001,C8,88)”,查看執(zhí)行結(jié)果。4) 刪除觸發(fā)器(本例為SC_inserted),重復(fù)步驟3。實驗9 數(shù)據(jù)庫備份和恢復(fù)實驗1. 實驗?zāi)康谋緦嶒灥哪康氖峭ㄟ^實驗使學生了解SQL Server的數(shù)據(jù)備份和恢復(fù)機制,掌握SQL Server中數(shù)據(jù)庫備份和恢復(fù)的方法。2. 實驗時數(shù) 3學時相關(guān)知識1、 SQL Server的三種備份形式SQL Server具有三種備份形式:完全備份、事務(wù)日志和差異備份。1) 完全備份:將數(shù)據(jù)庫完全復(fù)制到備份文件中。2)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡(luò)安全法律法規(guī)研究洞察分析-洞察分析
- 隧道施工資源優(yōu)化-洞察分析
- 預(yù)防性檢查項目的優(yōu)化與改進-洞察分析
- 藝術(shù)衍生品設(shè)計-洞察分析
- 醫(yī)療器械市場營銷-洞察分析
- 先天性心臟病患兒心臟康復(fù)效果評估-洞察分析
- 《園博會路線》課件
- 園林綠化水質(zhì)監(jiān)測與調(diào)控-洞察分析
- 2024年滬教版二年級數(shù)學上冊階段測試試卷
- 2024年滬科版選修2地理下冊階段測試試卷
- 2024年新人教版七年級上冊地理課件 第二章 地圖 第二節(jié) 地形圖的判讀
- 2024至2030年中國汽摩配行業(yè)發(fā)展狀況及競爭格局分析報告
- 濰柴天然氣發(fā)動機結(jié)構(gòu)及工作原理
- 國家開放大學《理工英語2》形考任務(wù)1-8參考答案
- 2024年電大勞動與社會保障法期末考試題庫及答案
- 人教版九年級數(shù)學上冊21.1《一元二次方程》教學設(shè)計
- 2025屆高考政治一輪復(fù)習:統(tǒng)編版必修4《哲學與文化》必背知識點考點提綱
- 從古至今話廉潔-大學生廉潔素養(yǎng)教育智慧樹知到期末考試答案章節(jié)答案2024年吉林大學
- 高中英語外刊-小貓釣魚50篇
- 【打油詩】72則創(chuàng)意期末評語模板-每頁8張
- 傳承傳統(tǒng)文化教育教案(3篇模板)
評論
0/150
提交評論