




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Sql Sever2005數據庫原理及應用實驗指導書目錄實驗1 通過E-R圖設計關系數據模型3【實驗目的】3【實驗環境】3【實驗內容】3實驗2 確定表中的關鍵字4【實驗目的】4【實驗環境】4【實驗重點及難點】4【實驗內容】4實驗3 規范化數據5【實驗目的】5【實驗環境】5【實驗重點及難點】5【實驗內容】5實驗4 服務器的啟動、暫停和停止7【實驗目的】7【實驗環境】7【實驗重點及難點】7【實驗內容】7實驗5 創建并管理數據庫11【實驗目的】11【實驗環境】11【實驗重點及難點】11【實驗內容】11實驗6 創建表并輸入數據12【實驗目的】12【實驗環境】12【實驗重點及難點】12【實驗內容】13實
2、驗7 使用Select 語句查詢數據(一)簡單查詢15【實驗目的】15【實驗環境】15【實驗重點及難點】15【實驗內容】15實驗8 使用Select 語句查詢數據(二)匯總查詢17【實驗目的】17【實驗環境】17【實驗重點及難點】17【實驗內容】17實驗9 使用Select 語句查詢數據(三)連接查詢和子查詢19【實驗目的】19【實驗環境】19【實驗重點及難點】19【實驗內容】19實驗10 創建視圖并通過視圖操作表數據20【實驗目的】20【實驗環境】20【實驗重點及難點】20【實驗內容】20實驗11 使用規則實現數據完整性22【實驗目的】22【實驗環境】22【實驗重點及難點】22【實驗內容】2
3、2實驗12 使用 T-SQL編寫程序24【實驗目的】24【實驗環境】24【實驗重點及難點】24【實驗內容】24實驗13 使用觸發器實現數據完整性26【實驗目的】26【實驗環境】26【實驗重點及難點】26實驗14 為用戶設置權限29【實驗目的】29【實驗環境】29【實驗重點及難點】29實驗15導入導出數據30【實驗目的】30【實驗環境】30【實驗重點及難點】30實驗1 通過E-R圖設計關系數據模型【實驗目的】1) 熟悉E-R模型的基本概念和圖形的表示方法。2) 掌握將現實世界的事物轉化成E-R圖的基本技巧。3) 熟悉關系數據模型的基本概念。4) 掌握將E-R圖轉化成關系表的基本技巧。【實驗環境】
4、Sql server 2005【實驗重點及難點】1) 根據需求確定實體、屬性和聯系。2) 將實體、屬性和聯系轉化為E-R圖。3) 將E-R圖轉化為表。【實驗內容】(1) 設計能夠表示出班級與學生關系的數據模型1) 確定班級實體和學生實體的屬性和碼。2) 確定班級和學生之間的聯系,給聯系命名并指出聯系的類型。3) 確定聯系本身的屬性。4) 畫出班級和學生關系的E-R圖。5) 將E-R圖轉化為表,寫出表的關系模式并標明各自的主鍵或外鍵。(2) 設計能夠表示出顧客與商品關系的數據模型1) 確定顧客實體和商品實體的屬性和碼。2) 確定顧客和商品之間的聯系,給聯系命名并指出聯系的類型。3) 確定聯系本身
5、的屬性。4) 畫出顧客與商品關系的E-R圖。5) 將E-R圖轉化為表,寫出表達關系模式并標明各自的主鍵或外鍵。(3) 設計能夠表示出學校與校長關系的數據模型1) 確定學校實體和校長實體的屬性和碼。2) 確定學校和校長之間的聯系,給聯系命名并指出聯系的類型。3) 確定聯系本身的屬性。4) 畫出學校與校長關系的E-R圖。5) 將E-R圖轉化為表,寫出表達關系模式并標明各自的主鍵或外鍵。(4) 設計能夠表示出房地產交易中客戶、業務員和合同三者之間的關系的數據模型1) 確定客戶實體、業務員實體和合同的屬性和碼。2) 確定客戶實體、業務員實體和合同之間的聯系,給聯系命名并指出聯系的類型。3) 確定聯系本
6、身的屬性4) 畫出客戶實體、業務員實體和合同關系的E-R圖5) 將E-R圖轉化為表,寫出表達關系模式并標明各自的主鍵或外鍵實驗2 確定表中的關鍵字【實驗目的】1) 正確理解候選鍵、主鍵、組合鍵、外鍵的基本概念。2) 能夠正確判斷給定表中各種類型的鍵。3) 在設計數據庫時能正確指定各種類型的鍵,知道如何實施數據的完整性。【實驗環境】Sql server 2005【實驗重點及難點】1) 復習候選鍵、主鍵、外鍵、組合鍵以及數據完整性的基本概念。2) 在給出的部門表和員工表中能正確標識出各種類型的鍵。【實驗內容】1) 寫出候選鍵、主鍵、組合鍵、外鍵、實體完整性、域完整性、參照完整性的定義。2) 已知部
7、門表和員工表如下所示:部門表部門代碼部門名負責人地點0001生產部李華江重慶榮昌縣0002銷售部張麗重慶渝中區0003市場部王欣重慶江北區員工表員工代碼姓名家庭住址聯系電話郵政編碼部門代碼200001王華重慶676909864011470001200002李想成都543876595087630003200003張麗上海678935422087610002200004李江華重慶7654987340005400013) 確定部門表和員工表中的候選鍵,并陳述理由。4) 在候選鍵中確定部門表和員工表的主鍵。5) 確定部門表和員工表中的共有屬性。6) 指出哪個表中的哪個屬性時外鍵。7) 確定哪個表是主表
8、,哪個表是從表。8) 回答問題:部門表和員工表是如何通過關鍵字實施數據完整性的?實驗3 規范化數據【實驗目的】1) 了解函數(數據)依賴的基本概念。2) 能正確判斷某一關系屬于第幾范式。3) 掌握規范化數據的方法。【實驗環境】Sql server 2005【實驗重點及難點】1) 復習函數(數據)依賴、數據規范化、范式的基本概念以及各級范式的判別標準。2) 判斷給定的表滿足哪級別范式的條件。3) 將給定的表轉換成特定等級的范式條件的表。【實驗內容】1) 寫出函數(數據)依賴、數據規范化、范式的定義以及各級范式的判別標準。2) 項目表1,判斷是否滿足第一范式的條件并說明理由。項目表1項目代碼職員代
9、碼部門累計工作時間P27P51P20E101系統集成部9010160P27P22E305銷售部10998P51P27E508行政辦公室NULL723) 項目表2,判斷是否滿足第二范式的條件并說明理由。項目表2項目代碼職員代碼部門累計工作時間P27E101系統集成部90P51E101系統集成部101P20E101系統集成部60P27E305銷售部109P22E305銷售部98P51E508行政辦公室NULLP27E508行政辦公室724) 職員表,判斷其是否滿足第三范式的條件并說明理由。職員表職員代碼部門部門負責人代碼E101系統集成部E901E305財務部E309E402銷售部E909E508
10、行政辦公室E908E607財務部E909E608財務部E9095) 項目表3,判斷其是否滿足BCNF的條件并說明理由。項目表3項目代碼職員代碼職員姓名累計工作時間P2E1李華玉48P5E2陳家偉100P6E3張勤15P3E4謝成全250P5E4謝成全75P5E1李華玉406) 將項目表1轉換成滿足第一范式條件的表。7) 將項目表2轉換成滿足第二范式條件的表。8) 將職員表轉換成滿足第三范式條件的表。9) 將項目表3轉換成滿足BCNF條件的表。10) 回答問題:規范化數據帶來的不利影響是什么?實驗4 服務器的啟動、暫停和停止【實驗目的】 1) 熟悉SQL Server 2005 配置管理器。 2
11、) 掌握服務器的啟動方法。 3) 掌握服務器的暫停方法。4) 掌握服務器的停止方法。【實驗環境】Sql server 2005【實驗重點及難點】利用SQL Server配置管理器實現服務器的啟動、暫停和停止。【實驗內容】 實訓1 服務器管理啟動,暫停和停止服務的方法很多,這里主要介紹SQL Server 配置管理器完成這些操作,其操作步驟如下:1) 單擊“開始”-“Microsoft SQL Server 2005”-“配置工具”,選擇“SQL Server Configuration Manager”,打開SQL Setver配置管理器,如圖2-52所示。單擊“SQL Server 2005
12、服務”選項,在右邊的對話框里可以看到本地所有的SQL Server服務,包括不同實例的服務,如圖2-53所示。2) 如果要啟動、停止、暫停SQL Server服務的話,鼠標指向服務名稱,單擊右鍵,在彈出的快捷鍵菜單里選擇“啟動”、“停止”、“暫停”即可。實訓2 服務器注冊 服務器注冊主要為注冊本地或者遠程SQL Server服務器。打開SQL Server 2005下Management Studio,進行服務器注冊。注冊步驟如下:圖2-52 SQL Server 配置服務管理器(一)圖2-53 SQL Server 配置管理器(二)1) 在視圖菜單中單擊“已注冊的服務器”菜單選項顯示出已注冊
13、的服務器,如圖2-54所示。圖2-54 已注冊服務器2) 在右上角已注冊的服務器中,選擇注冊類型進行相應服務類型注冊。3) 在選定的服務類型的樹型架構的根部單擊鼠標右鍵,選擇“新建”菜單下面的“服務器組”進行組的建立,如圖2-55所示。圖2-55 選擇服務器組菜單4) 輸入服務器組名稱,單擊保存即可,如圖2-56所示。圖2-56 新建服務器組5) 在新建的服務器組下面注冊服務器,在新建服務器節點處單擊鼠標右鍵,彈出菜單,選擇新建選項下面的服務器注冊選項,進行服務器注冊,如圖2-57所示。填寫服務器名稱,選擇相應的認證方式,輸入用戶名及密碼,完成注冊。圖2-57 新建服務器注冊實驗5 創建并管理
14、數據庫【實驗目的】1) 熟悉SQL Server Management Studio 窗口。2) 掌握創建數據庫的方法。3) 掌握管理數據庫的方法。【實驗環境】Sql server 2005【實驗重點及難點】1) 啟動 SQL Server Management Studio 窗口。2) 創建 XSCJ 數據庫。3) 修改 XSCJ 數據庫。4) 分離XSCJ 數據庫。5) 附加 XSCJ 數據庫。【實驗內容】1) 打開“SQL Server Management Studio”窗口,在“對象資源管理器”中展開服務器,鼠標右鍵單擊“數據庫”節點,單擊“新建數據庫”命令,會出現“新建數據庫”對話
15、框。2) 在對話框的“數據庫名稱”框內輸入數據庫名“XSCJ”后,單擊“確定”按鈕即可創建默認大小的數據庫。3) 鼠標右鍵單擊“XSCJ”數據庫,在彈出的快捷菜單中選擇“屬性”命令,會出現“數據庫屬性”對話框;在對話框中單擊“文件”選項卡,可以增加或刪除數據庫文件,單擊“確定”按鈕即可完成數據庫的修改。4) 鼠標右鍵單擊“XSCJ”數據庫,在彈出的快捷菜單中選擇“任務”“分離”命令,會出現“分離數據庫”對話框,單擊“確定”按鈕即可完成數據庫的分離。5) 鼠標右鍵單擊“數據庫”,在彈出的快捷菜單里選擇“附加”命令,會出現“附加數據庫”對話框,在該對話框中單擊“添加”按鈕,會出現“定位數據庫文件”
16、對話框,在改對話框中,選擇要附加的數據庫文件(.mdf),單擊“確定”按鈕后,返回到“附加數據庫”對話框,再單擊“確定”按鈕即可完成數據庫的附加。實驗6 創建表并輸入數據【實驗目的】1) 熟悉創建數據表的操作2)掌握創建數據表的操作3)掌握數據輸入和修改的操作【實驗環境】Sql server 2005【實驗重點及難點】1) 在xscj數據庫中分別創建學生情況表xsqk,課程表kc,學生與課程表xs_kc,并表結構分別如表4-5,表4-6表4-7所示列名數據類型長度屬性約束學好Char6是否允許為空置默認值標識符主鍵否無姓名Char8否無唯一性別Bit1否10或1出生日期Smalldatetim
17、e4否無 表4-5列名數據類型長度屬性約束是否允許為空置默認值標識符所在系Char10否無專業名Char10否無聯系電話Char11是無6為數字總學分Tinyint1是無0200備注Text30是無 表4-6 列名數據類型長度屬性約束是否允許為空值默認值標識列序號Int 4初始值 增量為1課程號Char3否無主鍵課程名Char20否無授課教師Char8無開課學期Tinyint1否1只能為16學時Tinyint1無學分Tinyint1無 表4-7列名數據類型長度屬性約束是否允許為空默認值學號Char6否無外鍵,參照XSQK表組合為主鍵課程號Char3否無外鍵,參照cK表成績Tinyint1無01
18、00學分Tinyint1無2) 分別向XSQK, KC XS_KC表中輸入數據,其內容由用戶自定義【實驗內容】1) 打開“SQL server Management Studio”窗口,單擊在標準”工具欄匯總“新建查詢”按鈕,會出現如圖所示的界面2) 在“SQL編輯器”工具欄中,單擊“可用數據庫”右邊的下拉按鈕,將當前數據庫切換成”XSCJ”庫3) 在查詢窗口中,輸入如下的命令 CREATE TABLE XSQK(學號 CHAR(6) NOT NULL,姓名 CHAR(8) NOT NULL,性別 BIT NOT NULL DEFAULT 1,生日 SMALLEATETIME NOT NULL
19、,專業 CHAR(10) NOT NULL,所在系 CHAR(10) NOT NULL,聯系電話 CHAR(11),總學分 TINYINT,備注 TEXT,CONSTRAINT PK_XSQK_XH PRIMART KEY(學號),CONSTRAINT UQ_XSQK_DH UNIQUE(姓名),CONSTRAINT CK_XSQK_XB CHECK(姓名=1 OR 姓名=0)CONSTRAINT CK_XSQK_DH CHECK(聯系電話 LIKE【1-9】【1-9】【1-9】【1-9】【1-9】【1-9】),CONSTRAINT CK_XSQK_ZXF CHECK(總學分<=0 AN
20、D 總學分<=200))GO CREATE TABLE KC(序號 INT INDENTITY,課程號 CHAR(3) NOT NULL PRIMARY KEY(課程號),課程名CHAR(20) NOT NULL ,授課教師 CHAR(8),開課上學期 TINYINT NOT NULL DEFAULT 1,學時 TINYINT NOT NULL,學分 TINYINT,CONSTRAINT CK_KC_XQ CHECK(開課學期>=1 AND 開課學期<=6)GO CREATE TABLE XS_KE( 學號 CHAR(6) NOT NULL REFERENCES XSQK(學
21、號),課程號CHAR(3) NOT NULL,成績 TINYINT CHECK(成績>=0 AND 成績<=100),學分 TINYINT ,PRIMARY KEY(學號 ,課程號),FOREIGN KEY(課程號) REFERENCED KE(課程號))4)在“SQL編輯器工具欄中,單擊”執行“阿牛,XSQK KE XS_KE 表創建成功后,在結果窗口會出現”命令以成功的信息提示,如圖5) 在“對象資源管理器“中展開數據庫”XSCJ”鼠標右鍵單擊”表“節點,在彈出的快捷菜單中單擊”刷新“命令,課看到個那個創建號的上面3張表實驗7 使用Select 語句查詢數據(一)簡單查詢【實驗
22、目的】掌握SELECT語句的使用和簡單查詢方法。【實驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL Server 2005查詢環境。2)涉及單表的簡單查詢。【實驗內容】1) 打開“SQL Server Management Studio”窗口。2) 單擊“標準”工具欄的“新建查詢”按鈕,打開“查詢編輯器”窗口3) 在窗口中輸入以下SQL查詢命令并執行:a.在KC表中,查詢第2學期開課的課程、授課教師select 課程名, 授課教師, 開課學期from kcwhere 開課學期=2b.在XSQK表中,查詢女同學的姓名和電話號碼select 姓名, 性別, 聯系電話from
23、 xsqkwhere 性別=0c.在XS_KC表中,查詢成績在80分以上的學號、課程號和成績select 學號, 課程號, 成績from xs_kcwhere 成績>=80d.在XS_KC表中,查詢在80以上和不及格學生的信息select 學號, 課程號, 成績from xs_kcwhere 成績>=80 or 成績<60e.在XSQK表中,查詢不在1980年7、8、9月出生的學生信息select 學號, 姓名, 出生日期from xsqkwhere 出生日期 not between 1980-07-07 and 1980-09-30f. 在XSQK表中,擦汗尋陳姓且單名的信
24、息select *from xsqkwhere 姓名 like 陳_g.在XSQK表中,查詢學號中含有1的記錄信息select *from xsqkwhere 學號 like %1%h.在XSQK表中,查詢電話號碼第7位為4和6的記錄信息select *from xsqkwhere 聯系電話 like _ _ _ _ _ _ 46 _i.在KC表中,查詢第一、三、五學期開設的課程信息select *from kcwhere 開課學期 in (1, 3, 5)j.查詢XSQK表,輸出學號、姓名、出生日期、并使查詢結構按出生日期升序排列select 學號, 姓名, 出生日期from xsqkord
25、er by 出生日期實驗8 使用Select 語句查詢數據(二)匯總查詢【實驗目的】掌握數據匯總查詢及其相關子句的使用。【實驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL Server 2005查詢環境。2)涉及單表的匯總查詢。【實驗內容】1) 打開“SQL Server Management Studio”窗口。2) 單擊“標準”工具欄的“新建查詢”按鈕,打開“查詢編輯器”窗口3)在窗口中輸入以下SQL查詢命令并執行:a.在KC表中,統計每學期的總分數select 開課學期, sum(學分) as 各學期的學分合計from kcgroup by 開課學期b.在XS_K
26、C表中統計每個學生的選修課程的門數select 學號, count(*) as 每個學生選修的課程門數from xs_kcgroup by 學號c.統計KC表中的總學分,并顯示明細信息select 課程名稱, 開課學期, 學分from kccompute sum(學分)d.按開課學期統計KC表中各期的學分,并顯示明細信息select 課程名稱, 開課學期, 學分from kcorder by 2compute sum(學分) by 開課學期e.將XS_KC表中的數據記錄按學號分類匯總,輸出學號和平均分select 學號, avg(成績) as 學生的平均分from xs_kcgroup by
27、學號f.查詢平均分大于70且小于80的學生學號和平均分select 學號, avg(成績) as 學生的平均分from xs_kcgroup by 學號having avg(成績) between 70 and 80g.查詢XS_KC表,輸出學號、課程號、成績,并使查詢結果首先按照課程號的升序排列,當課程號相同時再按照成績降序排列,并將查詢結果保存到新表TEMP_KC中select 學號, 課程號, 成績into temp_kcfrom xs_kcorder by 課程號, 成績 desch.查詢選修了“101”課程的學生的最高分和最低分select max(成績) as 101課程的最高分,
28、 min(成績) as 101課程的最低分from xs_kcwhere 課程號=101i.統計每個學期所開設的課程門數select 開課學期, count(*) as 每學期開設的課程門數from kcgroup by 開課學期j.查詢各專業的學生人數select 專業名, count(專業名) as 各專業人數from xsqkgroup by 專業名實驗9 使用Select 語句查詢數據(三)連接查詢和子查詢【實驗目的】)掌握內連接的查詢方法。)了解子查詢的查詢方法。【實驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL Server 2005查詢環境。)涉及多表的復
29、雜查詢。【實驗內容】1) 打開“SQL Server Management Studio”窗口。2) 單擊“標準”工具欄的“新建查詢”按鈕,打開“查詢編輯器”窗口3)在窗口中輸入以下SQL查詢命令并執行:a.查詢不及格學生的學號、課程名、授課教師、開課學期的信息select 學號, xs_kc.課程號, 授課教師, 開課學期, 成績from kc, xs_kcwhere kc.學號=xs_kc.學號 and 成績<60b.按學號分組匯總總分高于100的學生記錄,并按總分的降序排列select 學號, sum(成績) as 各學生的總分from xs_kcgroup by 學號having
30、 sum(成績)>=100order by sum(成績) descc.使用子查詢求恰好有兩門課程不及格的學生信息select 學號, 姓名from xsqkwhere (select count(課程號)from xs_kcwhere xsqk.學號=xs_kc.學號 and 成績>=60 )=2d.使用子查詢查詢每門課程的最高分的學生記錄select *from xs_kc awhere 成績=(select max(成績)from xs_kc bwhere a.課程號=b.課程號)e.使用子查詢查詢每個學生的最低分的課程記錄select *from xs_kc awhere
31、成績=(select min(成績)from xs_kc bwhere a.學號=b.學號)實驗10 創建視圖并通過視圖操作表數據【實驗目的】1)掌握視圖的創建。2)掌握使用視圖來插入、更新、刪除表數據。【實驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL2005查詢編輯器。2)創建一個簡單的視圖,查詢第3學期及其以后開課的課程信息。3)在視圖中使用INSERT語句插入數據。4)在視圖中使用UPDATE語句更新數據。5)在視圖中使用DELETE語句刪除數據。【實驗內容】(1)創建視圖1)打開“SQL Server Management Studio”窗口。2)單擊:“標準
32、”工具欄上的“新建查詢”按鈕,打開“查詢編輯器”窗口。#在窗口內直接輸入以下語句,按要求創建視圖。在XSCJ數據庫中,基于KC表創建一個名為”v_開課信息”的視圖,要求該視圖中包含列“課程號”、“課程名”、“開課學期”和“學時”、并且限定視圖中返回的行中只包括第3學期及以后開課的課程信息。 USE XSCJ CREATE VIEW v_開課信息 AS SELECT 課程號,課程名,開課學期,學時 FROM KC WHERE 開課學期>=34)單擊“SQL編輯器”工具欄上的“分析”按鈕,檢查輸入的T-SQL語句是否有語法錯誤。如果有語法錯誤,則進行修改。5)確保無語法錯誤后,在XSCJ數據
33、庫中就會添加一個名為“v_開課信息”的視圖,通過SELECT語句查看視圖中的數據,如圖所示(2)在視圖中使用INSERT語句插入數據1)在“查詢編輯器”串口內輸入以下語句,在視圖中插入一行數據。INSERT INTO v_開課信息 VALUES(022,ASP,4,80)2)單擊”SQL編輯器”工具欄上的“執行”按鈕。3)執行上述語句后,利用SELECT語句查看視圖中的數據,如圖所示。(3)在視圖中使用UPDATE語句更新數據1)在“查詢編輯器”串口內輸入以下語句,修改途中的數據。UPDATE v_開課信息SET 開課學期=5,學時=80WHERE 課程號=0122)單擊“SQL編輯器”工具欄
34、上的“執行”按鈕。3)執行上述語句后,視圖中課程號為“012”的數據記錄被修改了,基表中對應數據記錄也被修改了。通過SELECT語句查看視圖和基表中的數據,結果如圖6-24所示。(4)在視圖中使用DELETE語句刪除數據1)在“查詢編輯器”窗口內輸入以下語句,刪除視圖中的數據。DELETE FROM v_課程信息WHERE 課程號=0222)單擊“SQL編輯器”工具欄上的“執行”按鈕。3)執行上述語句后,先前在視圖中添加的數據行被刪除。同時,在基表中該數據行也被刪除。實驗11 使用規則實現數據完整性【實驗目的】1)掌握規則的創建、綁定、解除綁定和刪除。2)掌握使用規則實現數據完整性的方法。【實
35、驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL Server 2005查詢編輯器。2)創建一個關于開課學期的規則,并綁定到列,實現數據的完整性。3)創建一個關于性別的規則,并綁定到列,實現數據的完整性。4)創建一個關于學分的規則,并綁定到列,實現數據的完整性。5)刪除規則。【實驗內容】(1)創建一個關于開課學期的規則1)打開“SQL Server Management Studio”窗口。2)單擊“標準”工具欄上的“新建查詢”按鈕,打開“查詢編輯器”窗口。3)在窗口內直接輸入以下語句,創建規則,將“開課學期”列的值約束在18之間。USE XSCJCREATE RULE
36、kkxq_ruleAS 開課學期>=1 AND 開課學期<=8GO4)單擊“SQL編輯器”工具欄上的“分析”按鈕,檢查輸入的T-SQL語句是否有語法錯誤。如果有語法錯誤,則進行修改。5)確保無語法錯誤后,單擊“SQL編輯器”工具欄上的“執行”按鈕。6)在“查詢分析器”窗口內輸入以下語句,將所創建的規則綁定到“開課學期”列。EXEC Sp_bindrule kkxq_rule,KC.開課學期GO7)單擊“SQL編輯器”工具欄上的“執行”按鈕。8)在“對象資源管理器”中,展開目標數據庫中的“表”節點,鼠標右鍵單擊目標表“KC”,在彈出的快捷菜單中選擇“打開表”命令,輸入一行新記錄,檢驗
37、“開課學期”列值的約束情況。如果輸入的數據不符合規則,則會出現如圖7-7所示的對話框。(2)創建一個關于性別的規則1)在“查詢分析器”窗口內直接輸入以下語句,為XSQK表的“性別”列創建規則,約束其值只能是“男”或“女”。USE XSCJCREATE RULE sex_ruleAS 性別 in(男,女)GO2)單擊“SQL編輯器”工具欄上的“執行”按鈕、3)在“查詢編輯器”窗口內輸入以下語句,將所創建的規則綁定到“性別”列。EXEC Sq_bindrule sex_rule,XSQK,性別4)單擊“ASQL編輯器”工具欄上的“執行”按鈕、5)在“對象資源管理器”中,展開目標數據庫中的“表”節點
38、,鼠標右鍵單擊目標表“XSQK”,在彈出的快捷菜單中選擇“打開表”命令,輸入一行新記錄,檢驗“性別”列值的約束情況。(3)創建一個關于學分的規則1)在“查詢編輯器”窗口內直接輸入以下語句,創建規則,要求“學分”列的值只能輸入16之間的數字。實現步驟如下所述。USE XSCJCREATE RULE xf_ruleAS 學分 like 1-6GO2)單擊“SQL編輯器”工具欄上的“執行”按鈕。3)在“查詢編輯器”窗口內輸入以下語句,將所創建的規則綁定到“學分”列。EXEC sp_bindrulr xf_rule,KC.學分GO4)單擊” 執行”按鈕。實驗12 使用 T-SQL編寫程序【實驗目的】)
39、掌握常用函數的使用方法。)掌握流程控制語句的使用方法。【實驗環境】Sql server 2005【實驗重點及難點】)啟動SQLServer 2005 查詢編輯器。 2) 應用轉換函數。 3)應用聚合函數。 4)應用字符串函數。 5)應用IF··· ELSE語句。 6)應用WHILE語句。【實驗內容】 (1)應用轉換函數 1)打開“SQLServer Manageement Studio” 窗口。 2)單擊“標準”工具欄上的“新建查詢”按鈕,打開“查詢編輯器”窗口。 3)在窗口內直接輸入以下語句,求KC表中課程號為“107”的課程名稱的長度,并輸入結果。 USE X
40、SCJ DECLAREdlength int SELECT length=LEN(課程名) FROM KC WHERE課程號號課程名稱的長度為:CONVERT(varchar(4),length) 4)單擊“SQL編輯器”工具欄上的“分析”按鈕,檢查輸入的T-SQL語句是否有語法錯誤。如果有語法錯誤,則進行修改,直到沒有語法錯誤為止。 5)確保無語法錯誤后,單擊“SQL編輯器”工具欄上的“執行”按鈕。()應用聚合函數 )在“查詢編輯器”窗口內輸入以下語句,統計XSQK表中的學生人數,并輸出結果。 USEcounter int SELECT counter =COUNT(*) FROM XSQK
41、 PRINT XSQK表中共有+CAST( counter AS varchar (4))+學生名 2 )單擊“SQL編輯器”工具欄上的“執行”按鈕,執行結果如圖8-2所示。 (3 ) 應用字符串函數 1) 在“查詢編輯器”窗口內輸入以下語句,將字符串“Welcome to SQL Qerver” 轉換為大寫字母輸出。 DECLARE change varchar(30) SEL change =Welcome to SQL Server PRINT UPPER ( change ) 2) 單擊“SQL編輯器” 工具欄上的“執行” 按鈕,執行結果如圖8-3所示。 (4) 應用IF·&
42、#183;·ELSE 語句 1) 在“查詢編輯器”窗口內輸入以下語句,查詢學號為“020101” 的學生的平均分是否超過了85分, 若超過則輸出“ X X 考出了高分”, 否則輸出 “XX 考的一般”。 USE XSCJ DECLARE sno char(6) sname char(8) SET sno =020101 IF (SELECT AVG(成績) FROM XS_KC WHERE 學號=sno) >85 BEGIN SELECT sname =姓名 FROM XSQK WHERE 學號= sno PRINT aname+考出了高分 END ELSE PRINT sna
43、me+考的一般實驗13 使用觸發器實現數據完整性【實驗目的】1) 掌握用觸發器實現域完整性的方法。2) 掌握用觸發器實現參照完整性的方法。3) 掌握觸發器與約束的不同。【實驗環境】Sql server 2005【實驗重點及難點】1) 啟動SQL Server2005查詢編輯器。2) 為表建立一個觸發器,實現域完整性,并激活觸發器進行驗證。3) 為表建立一個能級聯更新的觸發器,實現參照完整性,并激活觸發器進行驗證。4) 比較約束與觸發器的執行順序。【實驗內容】(1) 實現域完整性1) 打開“SQL Server Management Studio”窗口2) 單擊“標準”工具欄上的“新建查詢”按鈕
44、,打開“查詢編輯器”窗口。3) 在“SQL編輯器”工具欄上選擇可用數據庫,如“XSCJ”。4) 在窗口內直接輸入以下CREATE TRIGGER語句,創建觸發器。為KC表創建一個INSERT觸發器,當插入的新行中開課學期的值不是16時,就激活該出發器,撤銷該插入操作,并使用RAISERROR語句返回一個錯誤信息。CREATE TRIGGER tri_INSERT_KC ON KCFOR INSERTASDECLARE 開課學期 tinyintSELECT 開課學期=KC.開課學期FROM KC,InsertedWHERE KC.課程號= Inserted.課程號如果新插入行的開課學期的值不是1
45、6,則撤銷插入,并給出錯誤信息IF 開課學期 NOT BETWEEN 1 AND 6 BEGIN ROLLBACK TRANSACTION RAISERROR(開課學期的取值只能是16!,16,10) END5) 單擊“SQL編輯器”工具欄上的“分析”按鈕,檢查輸入的T-SQL語句是否有語法錯誤。如果有語法錯誤,則進行修改,直到沒有語法錯誤為止。6) 確保無語法錯誤后,單擊“SQL編輯器”工具欄上的“執行”按鈕,完成觸發器的創建。7) 在左邊的“對象資源管理器”中用鼠標右鍵單擊目標“表”節點,如“KC”,彈出快捷菜單,選擇“打開表”命令,打開表的數據記錄窗口。8) 在表中分別插入兩行記錄以激活
46、該觸發器,第一行的開課學期的值在16以內,第二行的開課學期的值在16以外。當插入第一行時,系統成功地接受了數據,無信息返回。而在插入第二行時,系統撤銷該插入操作,拒絕接受非法數據,并返回錯誤信息,從而保證了域完整性,如圖9-21所示。(2)1)在“查詢編輯器”窗口內直接輸入以下CREATE TRIGGER語句,創建觸發器。為KC表再創建一個UPDATE觸發器,當更新了某門課程的課程號信息時,就激活該觸發器級聯更新XS_KC表中相關的課程號信息,并使用PRINT語句返回一個提示信息。 CREATE TRIGGER tri_UPDATE_KC ON KCFOR UPDATEASIF UPDATE(
47、課程號) 檢測課程號列是否被更新 BEGIN DECLARE 原課程號char(3),新課程號 char(3)聲明變量獲取更新前后的課程號的值SELECT 原課程號=Deleted.課程號,新課程號=Inserted.課程號 FROM Deleted,InsertedWHERE Deleted,課程名=Inserted.課程名PRINT 準備級聯更新XS_KC表中的課程號信息級聯更新XS_KC表中相關成績記錄的課程號信息UPDATE XS_KCSET 課程號=新課程號WHERE 課程號=原課程號PRINT 已經級聯更新XS_KC表中原課程號+原課程號+為+新課程號END2)單擊“SQL編輯器”
48、工具欄上的“分析”按鈕,檢查輸入的T-SQL語句是否有語法錯誤。如果有語法錯誤,則進行修改,知道沒有語法錯誤為止。3)確保無語法錯誤后,單擊“SQL編輯器”工具欄上的“執行”按鈕,完成觸發器的創建。4)在“查詢編輯器”窗口內如入并執行以下UPDATE語句,修改KC表的課程號列,以激活觸發器,級聯修改XS_KC表中的課程號列,并返回提示信息,從而實現了參照完整性。UPDATE KCSET 課程號=115WHERE 課程名=計算機硬件基礎(3)比較約束與觸發器的執行順序1)在“查詢編輯器”窗口內輸入并執行以下ALTER TABLE語句,為KC表添加一個約束,使得開課學期的值只能為16。ALTER
49、TABLE KCADD CONSTRAINT CK_開課學期 CHECK(開課學期>=1 AND 開課學期<=6)2)在“查詢編輯器”窗口內輸入并執行以下INSERT語句。INSERT KC(課程號,課程名,授課教師,開課學期,學時,學分) VALUES(120,軟件開發案例,李學濤,7,68,4)從這部分實驗中可以看到,約束優先于FOR或AFTER觸發器起作用,它在更新前就生效,對要更新的值進行規則檢查。當檢查到與現有規則沖突時,系統給出錯誤消息,并取消更新操作。如果檢查沒有問題,更新被執行,再激活觸發器。實驗14 為用戶設置權限【實驗目的】1) 掌握在SQL Server Ma
50、nagement Stuido 里為用戶添加或修改或修正權限的兩種方法。2) 掌握在“安全性”里這只用戶權限的方法。3) 掌握在數據庫里這是用戶權限的方法。【實驗環境】Sql server 2005【實驗重點及難點】1)啟動SQL Server 2005的對象資源管理器。2)在“安全性”里設計用戶權限。3)在數據庫里設置用戶權限。【實驗內容】(1)在“安全性”里設置用戶權限1)打開“SQL Server Management Studio”的“對象資源管理器”窗口。2)選擇“數據庫實例名”“安全性”“登錄名”選項,鼠標右鍵單擊要修改權限的登錄名,在彈出的快捷鍵菜單里選擇“屬性”選項。3)彈出“
51、登陸屬性”對話框,在該對話框里選擇“用戶映射”選項。也可以在添加登錄名時,也可以在對話框里選擇“用戶映射”標簽,進入選項卡。4)在改對話框里可以設置此登陸帳戶可以訪問哪些數據庫。在“映射到此登錄名的用戶”區域里,顯示查該數據庫服務器里所以的數據庫名,選中數據庫前的復選框,則表示次登陸帳戶可以登陸該數據庫。5)在選中數據庫前的復選框之后,在“數據庫角色成員身份”區域里的“public”復選框里會被自動選擇上。在每個數據庫中,所以用戶都會在public角色的成員,并且不能被刪除。(2) 在數據庫里設置用戶權限1)啟動“SQL Server Management Stuido”,以sa用戶或超級用戶
52、身份連上數據庫實例。在“對象資源管理器”里選擇“數據庫實例名”“Northwind”“安全性”“用戶”。2)鼠標右鍵單擊“userl”用戶,在彈出的快捷菜單里選擇“屬性”選項,彈出“數據庫用戶”對話框,在改對話框里選擇“安全對象”標簽。3)彈出對話框,單擊“添加”按鈕,彈出 “添加對象”對話框,在改對話框里可以選擇希望查看的對象類型的選擇對話框。4)彈出 “選擇對象”對話框,在該對話框里單擊“對象類型”按鈕。5)彈出 “選擇對象類型”對話框,在該對話框里可以現在數據庫表里的可在對象類型,在本例中選擇“表”復選框,然后單擊“確定”按鈕6)單擊“瀏覽”按鈕。實驗15導入導出數據【實驗目的】1)了解數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏發電系統故障診斷與維護技術光伏組件熱斑故障分析考核試卷
- 冷凍飲品生產環境中的空氣質量管理考核試卷
- 海鮮養殖面試題及答案
- 船舶輻射考試題及答案
- 防震減災面試題及答案
- 三一技師考試試題及答案
- 老房改造測試題及答案
- 湖南省長沙市岳麓實驗中學2024-2025學年高一下學期6月月考數學試卷
- 2025屆上海市風華中學高二化學第二學期期末學業質量監測試題含解析
- 數據分析基礎(第2版)課件 第4.2 描述性統計
- 年產5萬噸趣味酥性餅干生產車間設計
- RFJ013-2010 人民防空工程防化設計規范
- 柳州某醫院空氣源熱泵熱水系統設計案例
- 西師大版六年級數學下冊第四單元 扇形統計圖 單元概述和課時安排
- 高中英語全國高考考綱詞匯3600匯總
- 《中越傳統節日對比問題研究5100字【論文】》
- 特勞特戰略定位總裁課程課件
- 《 民航服務心理學》考試題及參考答案
- 2021學堂在線網課《生活英語讀寫》課后作業單元考核答案
- 中國近現代史綱要超星爾雅答案貴州大學-
- Q∕GDW 12162-2021 隔離開關分合閘位置雙確認系統技術規范
評論
0/150
提交評論