秋數(shù)據(jù)庫應用實驗指導_第1頁
秋數(shù)據(jù)庫應用實驗指導_第2頁
秋數(shù)據(jù)庫應用實驗指導_第3頁
秋數(shù)據(jù)庫應用實驗指導_第4頁
秋數(shù)據(jù)庫應用實驗指導_第5頁
已閱讀5頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、用實 梁文娟 目錄 實驗1 SQL Server的安裝及管理工具的使用2 實驗2交互式SQL2 實驗3數(shù)據(jù)完整性和安全性管理13 實驗4觸發(fā)器和存儲過程實驗23 實驗5數(shù)據(jù)庫備份與恢復26 實驗6數(shù)據(jù)庫設計綜合應用27 實驗 1SQL Server 的安裝及管理工具的使用 一、實驗目的 1、通過對某個商用數(shù)據(jù)庫管理系統(tǒng)的使用,了解DBMS 的工作原理和系統(tǒng)構架。 在此推薦數(shù)據(jù)庫管理系統(tǒng)SQL Server 2005,該系統(tǒng)已經(jīng)在機房 FTP上。你也可以從微軟官 方網(wǎng)站上下載該系統(tǒng)。 2、熟悉對 DBMS 的操作 二、實驗內(nèi)容 1、根據(jù)安裝文件的說明安裝數(shù)據(jù)庫管理系統(tǒng)。在安裝過程中記錄安裝的選擇

2、,并且對所作 的選擇進行思考,為何要進行這樣的配置,對今后運行數(shù)據(jù)庫管理系統(tǒng)會有什么影響。 2、學會啟動和停止數(shù)據(jù)庫服務,思考可以用哪些方式來完成啟動和停止。 3、掌握管理工具的使用 (1) SQL Server Management Studio 的使用 連接服務器的方法 查詢編輯器的使用 (2) 配置管理器的使用 4、了解數(shù)據(jù)庫系統(tǒng)的邏輯組件: 它們主要是數(shù)據(jù)庫對象,包括基本表、視圖、觸發(fā)器、存儲過程、約束等。今后將學 習如何操作這些數(shù)據(jù)庫對象。 三、實驗報告要求 1、給出安裝過程中出現(xiàn)的錯誤及解決方法。 2、根據(jù)你所了解的SQL Server工具,寫出部分主要組件的功能(以 SQL Se

3、rver2005為 例,寫出 SQL Server Management Studio 、配置管理器)。 實驗 2 交互式 SQL 2.1 創(chuàng)建數(shù)據(jù)庫及表 一、實驗目的 本次實驗了解 SQL Server 2005 的啟動,熟悉如何使用 SSMS 和 SQL 建立數(shù)據(jù)庫和 表,并加深對于完整性的理解。 二、背景知識 在使用數(shù)據(jù)庫的過程中,接觸最多的就是數(shù)據(jù)庫中的表。表是數(shù)據(jù)存儲的地方,是數(shù) 據(jù)庫中最重要的部分,管理好表也就管理好了數(shù)據(jù)庫。 表是由行和列組成的。創(chuàng)建表的過程主要就是定義表的列的過程。表的列名在同一個表 中具有唯一性,同一列的數(shù)據(jù)屬于同一種數(shù)據(jù)類型。除了用列名和數(shù)據(jù)類型來指定列的屬

4、 性外,還可以定義其它屬性:是否為空、默認值、標識符列、全局唯一標識符列等。 約束是 SQL Server 提供的自動保持數(shù)據(jù)庫完整性的一種方法,定義了可輸入表或表的 單個列中的數(shù)據(jù)的限制條件。在SQL Server中有5種約束:主關鍵字約束(Primary Key Constraint)、外關鍵 字約束(Foreign Key Constraint)、惟一性 約 束(Unique Constraint)、檢查約束(Check Constraint)和默認約束(Default Constraint)。 三、實驗內(nèi)容 方法1:在SSMS中創(chuàng)建數(shù)據(jù)庫和表 在本練習中,將使用 SQL Server2

5、005數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建 Student數(shù)據(jù)庫,并在 Student數(shù) 據(jù)庫中創(chuàng)建表Student,使你能夠掌握使用SQL Server2005數(shù)據(jù)庫管理系統(tǒng)創(chuàng)建數(shù)據(jù)庫和表 的方法。 1) 啟動 SQL Server2005 : 依次單擊開始 所有程序SQL Server 2005 SQL Server Management Studio 啟動 SQL Server 2005數(shù)據(jù)庫管理系統(tǒng) 2) 登錄數(shù)據(jù)庫服務器: 點擊“連接到服務器“對話框中的連接按鈕連接到SQL Server 2005數(shù)據(jù)庫服務器。 3) 創(chuàng)建數(shù)據(jù)庫Student 在SQL Server 2005數(shù)據(jù)庫管理系統(tǒng)的左邊欄“對

6、象資源管理器”中右擊數(shù)據(jù)庫對象, 在彈出的快捷菜單中單擊“新建數(shù)據(jù)庫”命令。 在彈出的“新建數(shù)據(jù)庫”對話框右側(cè)的數(shù)據(jù)庫名稱中輸入數(shù)據(jù)庫名稱“Stude nt”, 然后單擊確定。 擬頂?- 號*申_ 熾;川酣 Stud.Tit 文件黑盤文件組 WftAdMMB)自動增卡 FfillUfiY Stnd “Student”,并右擊 Student數(shù) 據(jù)庫中的表工程,在彈出的快捷菜單中單擊“新建表”命令。 在右側(cè)在工作區(qū)中輸入“Stude nt”表的信息,該表具有如下列: 列名 數(shù)據(jù)類型 完整性約束 Sno CHAR(5) 主碼 Sn ame CHAR(10) 非空 Ssex BIT 無 Sage I

7、NT 無 Sdept CHAR(15) 無 s Mfcrosoft SQL Server Man-aigement StudFo Enprc-s- Snarrw Ssex L jsi adept 1TH1IMKP A CfXEQLCKP. . NT -字*甘0阿會 Wfe 曲l股電 ? Snol比*啊 d-ia-TC K bit Ink EJ Eun 妊W) 薈BE 皺認即St 單擊文件菜單中的保存命令保存該表,并取名為Stude nt”。 方法二、使用SQL語句創(chuàng)建數(shù)據(jù)庫和表 1)單擊工具欄中的“新建查詢”按鈕,并在彈出的“連接到服務器”對話框中單擊 “連接”按鈕,新建一個 SQL腳本。 2

8、)在右側(cè)的SQL腳本輸入框中輸入如下 SQL代碼: CREATEDATABASE STUDENT -倉U建 STUDENT數(shù)據(jù)庫 GO USESTUDENT GO - 轉(zhuǎn)至U STUDENT數(shù)據(jù)庫 在STUDENT數(shù)據(jù)庫中創(chuàng)建表STUDENT CREATETABLE STUDENT ( Sno CHAR( 5) PRIMARYKEY, Sname CHAR: 10 )NOTNULL, Ssex BIT , Sage INT , Sdept CHAR 15) ) 單擊工具欄中的執(zhí)行按鈕,運行SQL語句,完成數(shù)據(jù)庫與表的創(chuàng)建。 四、實驗任務 1.用兩種方法建立一個新數(shù)據(jù)庫HRM (也可任意取名)。

9、 2在數(shù)據(jù)庫HRM中,建立如下所示的三個表: Employee 表 列名 數(shù)據(jù)類型 長度 是否允許為空 說明 EmployeelD Char 6 :否 員工編號,主鍵 Name Char 10 否 B名 Birthday Datetime 8 否 出生日期 Sex Bit 1 否 性別 Address Char 20 是 地址 Zip Char 6 是 郵編 Phon eNumber Char 12 是 電話號碼 EmailAddress Char 30 是 電子郵件地址 Departme ntID Char 3 否 員工部門號,外鍵 Departme nts 表 列名 數(shù)據(jù)類型 長度 是否允

10、許為空 說明 Departme ntID Char 3 否 員工部門號,主鍵 Departme ntName Char 20 否 部門名 Note Text 16 是 備注 Salary 表 列名 數(shù)據(jù)類型 長度 是否允許為空 說明 EmployeeID Char 6 否 員工編號,外鍵 In come Float 8 否 收入 OutCome Float 8 否 支出 3對三張表輸入數(shù)據(jù)(可任意輸入,但注意要符合完整性要求,否則會出錯,在本實驗 中,外鍵設置可先不做要求) 五、實驗報告要求 1、要求給出三個表創(chuàng)建的 SQL語句,要求建表時給出主外鍵約束、唯一約束、取空 值約束、用戶自定義的約

11、束等。(注:在實驗報告上只需寫出其中一個表的SQL語句即 可) 2、舉例說明如何操作會違背完整性(實體完整性、參照完整性)。 2.2 SQL數(shù)據(jù)查詢語句 、實驗目的 了解SQL Server 2005查詢編輯器的啟動,熟悉如何在SQL Server 2005查詢編輯 器查詢記錄。 掌握SELECT語句的基本語法和查詢條件表示方法 掌握GROUP BY和ORDER BY子句的作用和使用方法 掌握連接查詢和子查詢的使用方法 二、實驗內(nèi)容 1、單擊工具欄中的“新建查詢”按鈕,并在彈出的“連接到服務器”對話框中單擊“連 接”按鈕,新建一個 SQL腳本。 2、在SQL腳本中寫數(shù)據(jù)查詢語句執(zhí)行; 從表中查

12、詢數(shù)據(jù): 在查詢分析器的查詢窗口中輸入SQL語句,如圖所示。 lnx| 查詢-TE ACHER331 .Test JE ACHER331 Administrator - C:DocumeiAs and SettingfV select * from tesi I :| 點擊按鈕,執(zhí)行該SQL語句,在查詢窗口下部出現(xiàn)一個輸出窗口,如圖所示。 三、實驗任務 1對上節(jié)建立的表輸入數(shù)據(jù): Departme nts 表: Departme ntID Departme ntName Note 1 財務部 財務部 2 研發(fā)部 研發(fā)部 3 人力資源部 人力資源部 Employee 表 EmployeelD N

13、ame Birthday Sex Address Zip Phon eNumber EmailAddress Departme ntID 1001 李勇 78-3-12 0 河南 475001 3880378 lyhe nu .edu.c n 1 1002 ” 王敏 80-11-2 1 河南 475002 0378311 wmhe nu .edu.c n 1 1003 劉晨 78-6-22 0 河南 475003 0378322 lche nu .edu.c n 1 2001 張立 78-8-1 0 河南 475004 0378333 zlhe nu .edu.c n 2 2002 劉毅 82

14、-1-23 0 河南 475005 0378344 lyhe nu .edu.c n 2 2003 張玫 81-3-15 1 河南 475006 0378355 zmhe nu .edu.c n 2 3001 徐靜 76-8-12 1 河南 475007 0378366 xjhe nu .edu.c n 3 3002 趙軍 79-2-19 0 河南 475008 0378377 zjhe nu .edu.c n 3 Salary 表 EmployeeID In come OutCome 1001 3600 1500 1002 3300 1000 1003 3700 P1200 2001 400

15、0 1600 2002 3800 1800 2003 3800 1500 3001 4200 2000 3002 4100 1800 2、練習下面簡單的查詢語句: a) 查詢每個雇員的所有信息 b) 查詢每個雇員的地址和電話 c) 查詢 EmployeeID 為 000001 的雇員的地址和電話。 d) 查詢女雇員地址和電話,并用 AS 子句將結果中各列的標題分別指定為“地址”和 “電話”。 e) 計算每個雇員的實際收入。 f) 找出所有姓王的雇員的部門號。 思考:找出所有地址中含有“中山”的雇員的號碼和部門號。 3、練習多表連接查詢和嵌套查詢: a) 查詢每個雇員的情況及工資情況(工資=In

16、come - Outcome ) b) 查詢財務部工資在 2200 元以上的雇員姓名及工資情況 c) 查詢研發(fā)部在 1966 年以前出生的雇員姓名及其工資詳情 d) 查詢?nèi)肆Y源部雇員的最高和最低工資 e) 將各雇員的情況按工資由低到高排列 f) 求各部門的雇員數(shù) g) 找出所有在財務部和人力資源部工作的雇員的編號 h) 統(tǒng)計人力資源部工資在 2500 以上雇員的人數(shù) i) 求財務部雇員的總?cè)藬?shù) j) 求財務部雇員的平均工資 k) 查找比所有財務部的雇員工資都高的雇員的姓名 l) 查找財務部年齡不低于研發(fā)部所有雇員年齡的雇員的姓名 m) 查找在財務部工作的雇員的情況 四、實驗報告要求 1、寫出

17、與上述查詢?nèi)蝿障鄬腟QL 查詢語句(注:在實驗報告上寫出2-d、2-e、 2-f 及 3 中所有練習的 SQL 語句) 2、并記錄在實驗過程中遇到的問題、解決辦法及心得體會。2.3 視圖的定義和操作 一、實驗目的: 理解視圖的概念,掌握視圖的使用方法。 二、預計實驗時間 :上機一次 三、實驗過程 1 對應 HRM 數(shù)據(jù)庫,參照前面實驗中完成的查詢,按如下要求自行設計視圖: 1)基于單個表按投影操作定義視圖。 舉例:定義一個視圖用以查看所有員工的編號、姓名和出生日期。 2)基于單個表按選擇操作定義視圖。 舉例:定義一個滿足 sex= true 的員工的所有信息的視圖。 3) 基于單個表按選擇

18、和投影操作定義視圖。 舉例:定義一個視圖用以查看部門號碼為2 的所有員工的姓名、電話和郵件地 址。 4)基于多個表根據(jù)連接操作定義視圖。 舉例:定義一個視圖用以查看所有員工的姓名、部門名及工資。 5)基于多個表根據(jù)嵌套查詢定義視圖。 舉例:定義一個比所有財務部的雇員工資都高的雇員的信息的視圖 6)定義含有虛字段(即基本表中原本不存在的字段)的視圖。 舉例:定義一個視圖用以查看所有雇員的編號、姓名、年齡。 2. 分別在定義的視圖上進行查詢、插入、更新和刪除操作,分情況(查詢、更新)討 論哪些操作可以成功完成,哪些不能成功完成,并分析原因。 四、實驗報告要求: 1在實驗報告中要給出上述任務的視圖定

19、義語句;(注:實驗報告上寫出4、5、6的SQL 語句) 2、分情況討論哪些操作可以成功完成,哪些不能成功完成。 查詢操作:舉出一個進行查詢操作的例子。更新操作:更新操作包含插入、更新、刪 除,針對不能成功完成更新操作的情況舉出兩個例子,并分析原因。 2.4 SQL數(shù)據(jù)更新語句 一、實驗目的 加深對SQL數(shù)據(jù)更新(插入、修改及刪除)語句的基本語法格式的掌握 掌握單個元組及多個元組的插入、修改及刪除操作的實現(xiàn)過程 加深對更新操作時數(shù)據(jù)庫中數(shù)據(jù)一致性問題的了解 加深對約束條件在數(shù)據(jù)更新操作執(zhí)行中的作用問題的了解 二、實驗內(nèi)容 方法一:在SSMS中插入、刪除及修改數(shù)據(jù), 方法二:在查詢編輯器中寫 SQ

20、L插入、刪除及修改數(shù)據(jù) 三、實驗任務 設有一個SPJ數(shù)據(jù)庫,包括S, P, J, SPJ四個關系模式: S (SNO , SNAME , STATUS , CITY ) 表-廠袁-dbo. F f表-dbo. J f摘要 列名 數(shù)據(jù)類型 允許空 SIS diar(2) SNAIVE varchar(20 0 STATUS char (4) 0 CITY char CIO) 0 P (PNO, PNAME , COLOR , WEIGHT ) 列名數(shù)據(jù)類型允許空 SZEI char (2) PNAME varchar(20) COLOR diar(4) WEIGHT int J (JNO, JN

21、AME , CITY ) 1列容 數(shù)據(jù)類型 允許空 1 JNO char (2) JNAME 0 CITY char(lD) 0 SPJ ( SNO, PNO , JNO, QTY ) 列名 數(shù)據(jù)類型 允許空 char (2) PNO char JNO char QTY int 0 供應商表 S由供應商代碼(SNO)、供應商姓名(SNAME )、供應商(STATUS)、供應商 所在城市(CITY )組成; 零件表 P由零件代碼(PNO)、零件名(PNAME )、顏色(COLOR )、重量 (WEIGHT ) 組成; 工程工程表 J由工程工程代碼( JNO)、工程工程名(JNAME )、工程工程

22、所在城市 (CITY )組成; 供應情況表 SPJ由供應商代碼(SNO)、零件代碼(PNO )、工程工程代碼(JNO)、供 應數(shù)量(QTY )組成,表示某供應商供應某種零件給某工程工程的數(shù)量為QTY。試完成以 下操作: 1在S表中插入元組“ S6,華譽,40,廣州” 2在J表中插入元組“ j8,傳感器廠” 3 對每一個供應商,求他為各種工程供應零件的總數(shù)量,并將此結果存入數(shù)據(jù)庫 4. 將P表中PNO值為p6的元組的color屬性值改為綠,weight屬性值改為60 5. 將SPJ表中前4個元組的qty屬性值統(tǒng)一修改為 300 6. 將S表中city屬性名含有“京”或“津”的相應 status屬

23、性值增加100 7 將供應商S2為“一汽”工程工程所供應的零件數(shù)量修改為2000 &將全部紅色零件的顏色修改為淺紅色 9. 由S5供給j4的零件p6改為由S3供應 10. 在SPJ表中新增一名為 SDATE的屬性列,對該表中的每一元組在SDATE屬性列上填 上實驗當時的日期和時間 11. 刪除所在城市為“廣州”的供應商記錄 12刪除所有零件名稱中第一個字為“螺”字的零件記錄,并在供應情況表中刪除相應的 記錄 13刪除S3和S4兩供應商為“三建”工程供應“螺母”或“螺絲刀”零件的相應供應情 況數(shù)據(jù)信息 四、實驗報告要求 1、 寫出與上述任務相對應的 SQL更新語句(實驗報告上寫出3、5、10的S

24、QL語句) 2、并記錄在實驗過程中遇到的問題、解決辦法及心得體會。 實驗3數(shù)據(jù)完整性和安全性管理 3.1數(shù)據(jù)完整性管理 一、實驗目的 掌握域完整性的實現(xiàn)方法。 掌握實體完整性的實現(xiàn)方法。 掌握參照完整性的方法。 二、實驗內(nèi)容 數(shù)據(jù)庫的完整性設置。 三、實驗步驟 可視化界面的操作方法: 實體完整性 1. 將student表的“ sno”字段設為主鍵:在表設計界面中,單擊左邊的行選定塊,選定 “ sno”字段,單擊工具按鈕設置主鍵。如圖1所示: , MbriaEHTl MM 541-+ HsriitegMiiMlfc liM&d S*HEJ W;D HS.l TIRCEJ ftAkiRiU Zft

25、LD 1! 口畫 社區(qū)口 *眩2衛(wèi) -1 m uST&attJa Sct*- w? E | J| SAff 田p .披齟露41 田匚J *! J AdvwrALTBWorka J Mn vt ir a WoMJW J US .J ReDwtSef1- BRMHtS#r.rTn4C4 :-:w HU _j KUilK El HJWoCWjrw 田3誨吐閲 田 3 ihi.iiuiflffi 朗一I W閣 .+. jj 3 孑 WW|b(iLijf RfX 竺 wd*w3) flniaCn 削性I 丨 Q t 章#b r*:- 怪僵1 ntuis: tri 運 E沖 I 圖1 1.將sc”表的“

26、sno”和eno”設置為主鍵:在表設計界面中,單擊并按住Ctrl 鍵拖動左邊的行選定塊,選定sno和eno字段,單擊工具按鈕設置主鍵。如圖 2所示: 1 MicirawH 鼠jL wvvr Muinjirffcmpnl! &budia 立件也辟吋覗圖辿頊目側(cè) Sifei+HiO XflfP sa(w?社反利恥) A.飆互越皿su皿核匸b $書耳心包is丘 2品目丸 叵,謝窮.11引筆 |立童責i!治理器 坯掘邊-力1 T 巳注引的!3 S15 ft許空 m vvetwt 10 r :22 am v araMJ5 刑若 t LE= L* ifin s4?pt 2站M曲 ES B 再 db.cti

27、Mient* | USTH20Cr3.:-3fll S vMcbartf) 堆定的r:HE匚k均噸國! laOtbderteT* Mi 陶 CD) MwaMgaST Tuvrs | 口星 曰 CU-3H) 巳俺再RWI 犧汗則I Hr 血 O例 I到也4旦囲FT 創(chuàng) 胡 1 口 fil 1倒旳擁到也 沖.對 |+I-!-I+I+|+L IjJ USTE2003 (S5L 5ei vti 9-.D. j W 曰二 S &.S.?PJBJE m 丄 j J ArJwrtireWrtgrkj |J AdF血r曲心hfD卿 jj 加;*ag b J Rapo-tS-arwr RepoHSdtTTewD

28、fi U心 is _i毀:e暉耳:s.團 a i眾燒霰 ffii 口 cto.nw 田 n dtwisc 注1 m dh-a.iB ffl 口 dbotudert + j楓田 3 _j同黑遢 + _j Q1MK14 油! 1SJJE i 否工J 參照完整性 4.將student”表和sc”表中的sno”字段設為參照:打開sc”表的設計界面,點擊工 具欄按鈕I,在彈出的屬性(properties)對話框中點擊新建”按鈕,在主鍵表 (Primary key table)”下拉框中選擇student”表,在其下的字段選擇框中選擇sno”,在外鍵表 (Foreign key table)”下拉框中選擇

29、sc”表,在其下的字段選擇框中選擇sno”,單擊關 閉即可。見圖4。 許空 it studio R沱弓世HP畐H 陛雷 I * 1 奉 i dlL. 玄胖上EE3C凹 科逅 i+RitLi Xi蛀區(qū) 0WWwHf 柯 EJ: IrtuLkrll. J林便宜皿皿Lh E&dQ丨Li山匕*|豎少3呂, ViwehsCLQJ r-chwf3OI -一鳶一 一拖Ln住. IQQ汗97耳嚴I曲!疔!EiT# 巴19存的毆 *TF*fc|J M Cfl9& E3 e 11也i也i也1 SIH7目I &l創(chuàng)創(chuàng)創(chuàng)創(chuàng) #1 m 址I址I也I創(chuàng)I 命令方式操作方法: 實體完整性 1將student”表的“ sno

30、”字段設為主鍵: 當student”表已存在則執(zhí)行: alter table stude nt add con stra int pk_s no primary key (sno) 當student”表不存在則執(zhí)行: Create table stude nt(s no CHAR(5) primary key , sn ame CHAR(10) NOT NULL, ssex CHAR(2), sage int, sdept CHAR(4) 注:可用命令drop table student” 刪除student” 表 2. 添加一身份證號字段,設置其惟一性.(注:操作前應刪除表中的所有記錄) A

31、lter table stude nt add id char(18) unique (id) 3. 將sc”表的“ sno”和eno”設置為主鍵: 當“sc”表已存在則執(zhí)行: alter table sc add con stra int PK_S noCno primary key (sno,cno) 當“ sc”表不存在則執(zhí)行: Create table sc(s no CHAR(5), eno CHAR(2), grade INT NULL, con stra int PK_S noCno primary key (sno,cno) 域完整性 4. 將“ ssex”字段設置為只能取“男

32、”,“女”兩值: 當student”表已存在則執(zhí)行: alter table student add constraint CK_Sex check (ssex in ( 男 ,女 ) 當student”表不存在則執(zhí)行: Create table student(sno CHAR(5) primary key , sname CHAR(10), ssex CHAR(2) check (ssex in ( 男 ,女) , sage int, sdept CHAR(4) 5. 設置學號字段只能輸入數(shù)字 : alter table student add constraint CK_Sno_Form

33、at check (sno like 0-90-90-90-90-9) 6. 設置身份證號的輸入格式 : alter table student add constraint CK_ID_Format check (id like 0-90-90-90-90- 90-91-20-90-90-90-10-90-30-90-90-90-9_) OR (id like 0-90-90-9090-90-90-90-90-10-90-30-90-90-90-9) 7. 設置 18位身份證號的第 7位到第 10 位為合法的年份 (1900-2050) alter table student add con

34、straint CK_ID_Format2 check (len(id)=18 and ( (convert(smallint,substring(id,7,4) )=1900) and(convert(smallint,substring(id,7,4) )=22 or ssex=女a(chǎn)nd sage=20 ) 參照完整性 9.將student”表和sc”表中的“ sno”字段設為參照: 當“ sc”表已存在則執(zhí)行: alter table sc add constraint FP_sno foreign key (sno) references student(sno ) 當“ sc”表不存

35、在則執(zhí)行: Create table sc(sno CHAR(5) constraint FP_sno foreign key references student(sno), cno CHAR(2),grade INT NULL, constraint PK_SnoCno primary key (sno,cno) ) 完整性驗證 1 實體完整性:在“ student”表數(shù)據(jù)瀏覽可視化界面中輸入學號相同的兩條記錄將會出 現(xiàn)錯誤如圖 5 所示: 兗件如匡)US(u)頂目迪査詢設計歡雖Ifl.(D ffincwj WE()昭助:也 爲富直血皿8皿活畐4 J 鼻移矛= 蟲i表視毗甲H畫毋 巳注犧的

36、廂咅禺 U(3耳口也 石:j將屁屋引宰 居gbSQ嚇 lz,d USTE003 (SQL Server 9.D.J3W- m) Iz 丄 sd&ii * J 11 _J Ij 田 國 田 Q 田 回 AfiTMtWgHcflW 抑址旳 Q RepfftServer J RsportSwverTsffpDB J箱M T _1數(shù)據(jù)岸心因 _i舌 國::ass懲 ffl n dbo.ccase JI Z3 dbo.sc SI 3女腐 Jl db砧“陽 t nr _j 機 EB F 一i間義聞 莊_1可坍程愕 更逼梵fi!(比 I ?酹爐口銅角 i =li 妙空j-3這由貝|電對gjj亠|也対血H創(chuàng)跑

37、番、.|目q琶|門曲 圖5 或者在命令窗口輸入下面兩條命令也會出現(xiàn)錯誤提示: insertintostudentvalues (95003, 張三,男 ,24, CS insertintostudentvalues (95001, 李四,女 ,21 , CS , 立中 ID iWsLQ WEQm 宣呦ta XIHEEJ 工員(D1E(J 簾 E:tD | f 1M5W # W - *-? jn-Kt*ni: 陽口00陽眞噸-號事3侍腎氐*切嚴 nl UOcnE. val ues | 卯 g-tlOi d/iam口

38、damc. vm 1-lshk |,1 9S口 1 丄| ! KOOi 閆 0 RTm (El i :TT*MWr 消總覽別14r伙呑1,耳芒行 JJjSiT P&.IU1ARV RXT PK iMi*uC H 不fife左巧矗業(yè)o . .UZEL 中捕小工配惚- 泊句自歸止. Jj |QQ:7Q737&4歸押.;期嘰律暢砂曇爭那 -J 圖6 F面的語句用來驗證“ SC”表中的實體完整性: insert into sc values(95002, 1O,65) in sert into sc values(95002, 10,90) MlfiFd-c&iAi XjQLLMjn jFrriint

39、 Studio- 文胖Q 曲輯唱 llffi(v) 畫顛目5 工且由口(凹社魚) 那皐更皿6迢,由茹 &芳U 衆(zhòng)血I 8 盅材il 巨ti熬翳.1=引擎 皿 LiAh2tH3 去呂 | 曲 LISTB2DG3 笙LS旳MJ3W E 一1如麗 數(shù)抵陣咲膽 AchrtrtueWotksDW xxcg P epor i: Ser vw Rpurt5*tv*i-TAfnpDB 亠丄UUUUUU wffi田田田曲田曰 I* THjPF競現(xiàn)朋 Q LJ 5? iU 口序.岐惡 田 n 竝LQoufe dbD.sc 二 dfew -ss 3 b.-itudri Uffl 回文國 一I町*握性 +1 味丨迂專

40、碼融園gi二蘭丨軍班二 X-dHiffeudiOfc 1 U5ir62003.Kl - SQtQuerrt.MiiPiiWv liiseL- 1117 0 皀:匚 丁?|丄|.|芒弐 : ”= 1L 5S inhere匚 vb 1 口貫鬥總弓口口立丨章 1 ! r 9Q| -infl I Cl行受橐勁 消氫亡沁扱別K.恍專1. K 2 違反了 PRIHAPY KEV 均甬 1 PK Sra&C&o1 s 不睫在時象dbo. -中fS A_ J B 語句已撼止* UJ 行3:列】Ch 1Crw 旳汗蚓| NJe莊E3乳1ejh.| _js51|云,,構時也l 也4也討注J亍旦;3D 1詒總心斗曠

41、 辺旳 !蠡譚己墨匪但WIS- usnem te.o kimJ 2.域完整性: 使用下面的語句驗證ssex”字段的域完整性: insert into student values(95009,張勻,大,20,CS, 申 MIriir net? 譏3KQ 電譚itt? fl B(E) XAtU n所有程序 SQL Server 2005 SQL Server Management Studio 啟動 SQL Server 2005數(shù)據(jù)庫管理系統(tǒng) 連接成功后,右鍵你的實例,選擇屬性 在 屬性 窗口中, 轉(zhuǎn)到 Security( 安全性 )項,在 服務器身份驗證 中設置為 SQL Server 和

42、Windows 身份驗證模式 , 確定,根據(jù)提示,應該重新啟動sql 服務 然后執(zhí)行下面的語句啟用sa用戶,同時清除sa的密碼(能成功登陸后再根據(jù)你的 需要設置 ) EXEC sp_password null,null,sa ALTER LOGIN sa ENABLE 語句執(zhí)行完成后,再用sa連接你的實例,應該就沒有問題了 . 2. 設置登錄賬戶 創(chuàng)建使用 Windows 身份驗證 (SQL Server Management Studio) 的 SQL Server 登錄 名 ?在 SQL Server Management Studio 中,打開對象資源管理器并展開要在其中 創(chuàng)建新登錄名的

43、服務器實例的文件夾。 ?右鍵單擊“安全性”文件夾,指向“新建”,然后單擊“登錄名”。 ?在“常規(guī)”頁上的“登錄名”框中輸入一個Windows 用戶名。 ?選擇“ Windows 身份驗證”。 ?單擊“確定”。 創(chuàng)建使用 SQL Server 身份驗證 (SQL Server Management Studio) 的 SQL Server 登錄 名 ?在 SQL Server Management Studio 中,打開對象資源管理器并展開要在其中 創(chuàng)建新登錄名的服務器實例的文件夾。 ?右鍵單擊“安全性”文件夾,指向“新建”,然后單擊“登錄名”。 ?在“常規(guī)”頁上的“登錄名”框中輸入一個新登錄名

44、的名稱。 ?選擇“ SQL Server 身份驗證”。 ?輸入登錄名的密碼。 ?選擇應當應用于新登錄名的密碼策略選項。通常,強制密碼策略是更安全 的選擇。 ?單擊“確定”。 通過 Transact-SQL 創(chuàng)建使用 Windows 身份驗證的 SQL Server 登錄名 ?在查詢編輯器中,輸入以下Transact-SQL 命令: CREATE LOGIN FROM WINDOWS 。 GO 通過 Transact-SQL 創(chuàng)建使用 SQL Server 身份驗證的 SQL Server 登錄名 ?在查詢編輯器中,輸入以下 Transact-SQL 命令: CREATE LOGIN WITH

45、PASSWORD = 。 GO 3. 設置數(shù)據(jù)庫用戶 創(chuàng)建數(shù)據(jù)庫用戶 在 SQL Server Management Studio 中,打開對象資源管理器并展開要在其中 創(chuàng)建新登錄名的服務器實例的文件夾。 依次展開數(shù)據(jù)庫,某個具體數(shù)據(jù)庫,“用戶” 右鍵單擊用戶,選擇“新建用戶” 輸入用戶名,選擇登錄名,確定 通過 Transact-SQL 創(chuàng)建數(shù)據(jù)庫用戶( create user): create user dba for login dba with default_schema=dbo 并指定數(shù)據(jù)庫用戶“dba” 的默認 schema 是“ dbo ”。這意味著 用戶 “dba” 在執(zhí)行“

46、 select * from t ”,實際上執(zhí)行的是 “ select * from dbo.t ”。 4 設置數(shù)據(jù)庫角色 新建角色 在 SQL Server Management Studio 中,打開對象資源管理器并展開要在其中 創(chuàng)建新登錄名的服務器實例的文件夾。 依次展開數(shù)據(jù)庫,某個具體數(shù)據(jù)庫,“角色” 右擊選中新建角色 通過 Transact-SQL 新建角色: CREATE ROLE role_name 在對象資源管理器中設置數(shù)據(jù)庫角色 在 SQL Server Management Studio 中,打開對象資源管理器并展開要在其中 創(chuàng)建新登錄名的服務器實例的文件夾。 依次展開數(shù)據(jù)

47、庫,某個具體數(shù)據(jù)庫,“用戶” 選中某用戶,右擊“屬性”,在展開的數(shù)據(jù)庫用戶屬性對話框中進行設置 通過 Transact-SQL 設置數(shù)據(jù)庫角色 通 過 加 入 數(shù) 據(jù) 庫 角 色 , 賦 予 數(shù) 據(jù) 庫 用 戶 “ dba” 權 限 : exec sp_addrolemember db_owner, dba 此時, dba 就可以全權管理數(shù)據(jù)庫 mydb 中的對象了。 如果想讓SQL Server登陸帳戶dba”訪問多個數(shù)據(jù)庫,比如mydb2。可以 讓 sa 執(zhí)行下面的語句: use mydb2 go create user dba for login dba with default_sch

48、ema=dbo go exec sp_addrolemember db_owner, dba go 此時, dba 就可以有兩個數(shù)據(jù)庫 mydb, mydb2 的管理權限了! 5.設置管理對象的權限 在對象資源管理器中授權: 選中需要授權的登錄名、用戶名或角色名 右鍵單擊選擇“屬性”,在彈出的該對象的屬性窗口中選擇“安全對象”, 進行權限分配 通過 Transact-SQL 分配權限:通過 GRANT 和 REVOKE 語句 四、實驗任務 1、創(chuàng)建角色 ProgramerRole ,擁有創(chuàng)建表,存儲過程,視圖權限,擁有對 Salary 表的查 詢、修改、插入權限 2、創(chuàng)建一個登錄賬號 Test

49、login 3、創(chuàng)建對應于這個登錄賬號的數(shù)據(jù)庫用戶TestUser 4、將用戶 TestUser 添加到 TestRole 角色中 五、實驗報告要求 1、寫出與上述任務相對應的 SQL 語句 2、思考數(shù)據(jù)庫服務器上的角色有哪些?權限類型有哪些? 3、并記錄在實驗過程中遇到的問題、解決辦法及心得體會。 實驗 4 觸發(fā)器和存儲過程實驗 4.1 觸發(fā)器實驗 一、實驗目的 掌握觸發(fā)器的創(chuàng)建、修改和刪除操作。 掌握觸發(fā)器的觸發(fā)執(zhí)行。 掌握觸發(fā)器與約束的不同。 二、實驗要求 1. 創(chuàng)建觸發(fā)器。 2. 觸發(fā)器執(zhí)行觸發(fā)器。 3. 驗證約束與觸發(fā)器的不同作用期。 4. 刪除新創(chuàng)建的觸發(fā)器。 三、實驗內(nèi)容 (一)

50、示例 1. 創(chuàng)建觸發(fā)器 啟動SQL Server查詢編輯器,選擇要操作數(shù)據(jù)庫,如“sc (學生選課)”數(shù)據(jù) 庫。 在查詢命令窗口中輸入以下CREATE TRIGGE語句,創(chuàng)建觸發(fā)器。 為sc(學生選課)表創(chuàng)建一個基于 UPDATE操作和DELETE操作的復合型觸發(fā) 器,當修改了該表中的成績信息或者刪除了成績記錄時,觸發(fā)器被激活生效, 顯示相關的操作信息。 - 創(chuàng)建觸發(fā)器 CREATE TRIGGER tri_UPDATE_DELETE_sc ON sc FOR UPDAT,E DELETE AS - 檢測成績列表是否被更新 IF UPDATE(成績) BEGIN - 顯示學號、課程號、原成績和

51、新成績信息 SELECT INSERTED課程號,DELETED成績 AS原成績, INSERTED成績AS新成績 FROM DELETED, INSERTED WHERE DELETED.號 INSERTED學號 END - 檢測是更新還是刪除操作 ELSE IF COLUMNS_UPDATED( )=0 BEGIN - 顯示被刪除的學號、課程號和成績信號 SELECT被刪除的學號=DELETED學號,DELETED課程號, DELETED成績AS原成績 FROM DELETED END ELSE - 返回提示信息 PRINT 更新了非成績列! 點擊快捷工具欄上的快捷按鈕,完成觸發(fā)器的創(chuàng)建。

52、 2. 觸發(fā)觸發(fā)器 在查詢命令窗口中輸入以下 UPDATE sc SET成績=成績+5 WHERE課程號=101 在查詢命令窗口中輸入以下 UPDATE sc SET 課程號 = 113 WHERE課程號=103 在查詢命令窗口中輸入以下 DELETE sc UPDATE sc語句,修改成績列,激發(fā)觸發(fā)器。 UPDATE sc語句修改非成績列,激發(fā)觸發(fā)器。 DELETE sc 語句,刪除成績記錄,激發(fā)觸發(fā)器。 WHERE課程號=102 3. 比較約束與觸發(fā)器的不同作用期 在查詢命令窗口中輸入并執(zhí)行以下ALTER TABLE 語句,為 sc 表添加一個約束, 使得成績只能大于等于 0 且小于等于

53、 100。 ALTER TABLE sc ADD CONSTRAINT C成績 CHECK成績 =0 AND成績 =100) 在查詢命令窗口中輸入并執(zhí)行以下UPDATE sc語句,查看執(zhí)行結果。 UPDATE sc SET 成績=120 WHERE課程號=108 在查詢命令窗口中輸入執(zhí)行以下UPDATE sc 語句,查看執(zhí)行結果。 UPDATE sc SET成績=90 WHERE課程號=108 從這部分實驗中,我們可以看到,約束優(yōu)先于觸發(fā)器起作用,它在更新 前就生效,以對要更新的值進行規(guī)則檢查。當檢查到與現(xiàn)有規(guī)則沖突時,系 統(tǒng)給出錯誤消息,并取消更新操作。如果檢查沒有問題,更新被執(zhí)行,當執(zhí) 行

54、完畢后,再激活觸發(fā)器。 4. 刪除新創(chuàng)建的觸發(fā)器 在查詢命令窗口中輸入 DROP TRIGGER語句,刪除新創(chuàng)建的觸發(fā)器。 DROP TRIGGER tri_UPDATE_DELETE_sc 點擊快捷工具欄上的快捷按鈕,刪除觸發(fā)器。 (二)練習 1. 在 Student 表中編寫 insert 的觸發(fā)器,假如每個班的學生不能超過 30個,如果低 于此數(shù),添加可以完成;如果超過此數(shù),則插入將不能實現(xiàn)。 2. 在SC表上編寫update觸發(fā)器,當修改 SC表中的grade字段時將其修改前后的信 息保存在 SC_log 表中。 四、實驗報告要求 1、 寫出與上述任務相對應的SQL 語句 2、并記錄在

55、實驗過程中遇到的問題、解決辦法及心得體會。 4.2 存儲過程實驗 一、實驗目的 掌握用戶存儲過程的創(chuàng)建操作。 掌握用戶存儲過程的執(zhí)行操作。 掌握用戶存儲過程的刪除操作。 二、實驗內(nèi)容 1、創(chuàng)建帶輸入?yún)?shù)的存儲過程的存儲過程。 2、執(zhí)行所創(chuàng)建的存儲過程。 3、刪除所有新創(chuàng)建的存儲過程。 三、實驗步驟 對應于student數(shù)據(jù)庫 (1) 創(chuàng)建一個無參存儲過程 StuScoreInfo,查詢以下信息:學號,姓名,性別,課程名稱,考試成績 (2) 創(chuàng)建一個帶參數(shù)的存儲過程stu_ info,該存儲過程根據(jù)傳入的學生編號在stude nt表中查詢 此學生的信息 . (3) 創(chuàng)建一個帶參數(shù)的存儲過程Stu

56、Score Info2,該存儲過程根據(jù)傳入的學生編號和課程名稱 查詢以下信息 :姓名,課程名稱 ,考試成績 . (4) 編寫帶參數(shù)的存儲過程 ,根據(jù)傳入的課程名稱統(tǒng)計該課程的平均成績. (5) 編寫存儲過程 ,根據(jù)傳入的課程名統(tǒng)計這門課的成績分布情況,即按照各分數(shù)段統(tǒng)計人數(shù) 四、實驗報告要求 1、寫出與上述任務相對應的 SQL 語句 2、并記錄在實驗過程中遇到的問題、解決辦法及心得體會。 實驗 5 數(shù)據(jù)庫備份與恢復 一、實驗目的 熟悉數(shù)據(jù)庫備份及恢復機制; 了解 SQL Server 的數(shù)據(jù)備份和恢復機制; 掌握 SQL-Server 中數(shù)據(jù)庫備份和恢復的方法。 二、實驗內(nèi)容 以管理員帳號登錄

57、 SQL Server Management Studio ,以原有數(shù)據(jù)庫 student 為基礎, 請使用 Management Studio 界面方式或 T-SQL 語句實現(xiàn)以下操作: 1. 針對數(shù)據(jù)庫 stu 創(chuàng)建完全數(shù)據(jù)庫備份集 stu.bak ,目標磁盤為 D: user stu.bak ; 2. 在數(shù)據(jù)庫 stu 中新建數(shù)據(jù)表 ceshi ,內(nèi)容自定,然后針對數(shù)據(jù)庫 stu 創(chuàng)建差異備 份; 3. 向數(shù)據(jù)庫 stu 的數(shù)據(jù)表 ceshi 插入部分記錄,然后針對數(shù)據(jù)庫 stu 創(chuàng)建事務日志 備份; 4. 根據(jù)需要,將數(shù)據(jù)庫恢復到數(shù)據(jù)庫 stu 的最初狀態(tài); 5. 根據(jù)需要,將數(shù)據(jù)庫恢

58、復到創(chuàng)建數(shù)據(jù)表 ceshi 后的狀態(tài); 6. 根據(jù)需要,將數(shù)據(jù)庫恢復到在 ceshi 表插入記錄后的狀態(tài); 7. 針對現(xiàn)有數(shù)據(jù)庫 stu 創(chuàng)建完全文件和文件組備份集 stu_file ,目標磁盤為 D: user stu_file.bak ; 8. 在當前數(shù)據(jù)庫中新建數(shù)據(jù)表 ceshi2 ,然后針對數(shù)據(jù)庫 stu 創(chuàng)建差異文件和文件組 備份; 9. 向數(shù)據(jù)庫 stu 的數(shù)據(jù)表 ceshi2 插入部分記錄,然后針對數(shù)據(jù)庫 stu 創(chuàng)建事務日志 文件和文件組備份; 10. 根據(jù)需要,將數(shù)據(jù)庫以文件和文件組方式恢復到創(chuàng)建數(shù)據(jù)表 ceshi2 后的狀態(tài); 11. 根據(jù)需要,將數(shù)據(jù)庫以文件和文件組方式恢

59、復到數(shù)據(jù)表 ceshi2 插入記錄后的狀 態(tài); 三、思考 說明數(shù)據(jù)庫的備份和恢復的基本步驟; SQL Server 中的完全備份、事務日志備份和增量備份形式的功能特點; 四、實驗報告要求 1寫出與上述任務相對應的SQL語句 2、并記錄在實驗過程中遇到的問題、解決辦法及心得體會。 實驗 6 數(shù)據(jù)庫設計綜合應用 一、實驗任務與要求 目的與任務 : 1. 掌握數(shù)據(jù)庫設計和實現(xiàn)的基本過程 2. 掌握數(shù)據(jù)庫模式設計、分析和實現(xiàn)的方法 3. 了解數(shù)據(jù)庫應用系統(tǒng)軟件開發(fā)的一般過程。 實驗基本要求 : (1)學習相關的預備知識 (2)按照數(shù)據(jù)庫設計與實現(xiàn)過程完成數(shù)據(jù)庫的設計,應用程序的開發(fā),上機調(diào)試、運行 (

60、3)寫出課程設計報告 二、課程設計基礎知識 數(shù)據(jù)庫設計與實現(xiàn)的基本過程包括需求分析、概念結構設計、邏輯結構設計、數(shù)據(jù)庫的 物理設計以及數(shù)據(jù)庫的實施和維護等內(nèi)容。需求分析確定系統(tǒng)的數(shù)據(jù)需求和處理需求;概 念結構設計通過對用戶需求的綜合、歸納和抽象,形成一個獨立的概念模型;邏輯結構設 計則將概念模型轉(zhuǎn)換為具體的數(shù)據(jù)庫管理系統(tǒng)所支持的數(shù)據(jù)模型;數(shù)據(jù)庫的物理設計結合 應用確定數(shù)據(jù)模型的存儲結構和存取方式。在這些工作完成之后,就可以建立數(shù)據(jù)庫并開 始調(diào)試運行了,在數(shù)據(jù)庫的運行過程中必須對其進行維護包括數(shù)據(jù)庫的備份與恢復、 性能分析與改進等等。 1概念結構設計 ER 圖 概念模型是用戶需求的抽象,通常用實

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論