




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、.wd.wd.wd.?數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)?課程實(shí)驗(yàn)指導(dǎo)書王賤珍 主編青島大學(xué)國際商學(xué)院管理科學(xué)與工程系二六年二月二十日目 錄 TOC o 1-3 h z u HYPERLINK l _Toc128925177前言 PAGEREF _Toc128925177 h 1HYPERLINK l _Toc128925178實(shí)驗(yàn)1 SQL Server 2000安裝 PAGEREF _Toc128925178 h 2HYPERLINK l _Toc128925179實(shí)驗(yàn)2 SQL Server 2000服務(wù)器管理 PAGEREF _Toc128925179 h 4HYPERLINK l _Toc12
2、8925180實(shí)驗(yàn)3 數(shù)據(jù)庫管理與規(guī)化 PAGEREF _Toc128925180 h 6HYPERLINK l _Toc128925181實(shí)驗(yàn)4 數(shù)據(jù)完整性 PAGEREF _Toc128925181 h 10HYPERLINK l _Toc128925182實(shí)驗(yàn)5 數(shù)據(jù)查詢與更新 PAGEREF _Toc128925182 h 14HYPERLINK l _Toc128925183實(shí)驗(yàn)6 Transact-SQL 語言 PAGEREF _Toc128925183 h 16HYPERLINK l _Toc128925184實(shí)驗(yàn)7 存儲(chǔ)過程和用戶自定義函數(shù) PAGEREF _Toc128925
3、184 h 19HYPERLINK l _Toc128925185實(shí)驗(yàn)8 觸發(fā)器 PAGEREF _Toc128925185 h 20HYPERLINK l _Toc128925186實(shí)驗(yàn)9 游標(biāo) PAGEREF _Toc128925186 h 24HYPERLINK l _Toc128925187實(shí)驗(yàn)10 SQL Server安全性管理 PAGEREF _Toc128925187 h 25HYPERLINK l _Toc128925188實(shí)驗(yàn)11 備份和復(fù)原數(shù)據(jù)庫 PAGEREF _Toc128925188 h 28HYPERLINK l _Toc128925189實(shí)驗(yàn)12 綜合實(shí)驗(yàn) PAG
4、EREF _Toc128925189 h 31前 言一、實(shí)驗(yàn)的地位、作用數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)實(shí)驗(yàn)作為課程實(shí)踐性環(huán)節(jié)之一,是教學(xué)過程中必不可少的重要內(nèi)容。通過上機(jī)實(shí)驗(yàn),使學(xué)生加深理解、驗(yàn)證穩(wěn)固課堂教學(xué)內(nèi)容,讓學(xué)生在消化課堂中的內(nèi)容根基上提高課堂和書本中無法學(xué)到的調(diào)試和測試程序的能力,培養(yǎng)學(xué)生理論與實(shí)踐相結(jié)合的能力。作為?數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)?課程的先修課、理論課,?數(shù)據(jù)庫原理?與本課程有局部重疊,本課程并未將這局部重疊的內(nèi)容完全忽略,而是進(jìn)展了穩(wěn)固提高。例如,在管理數(shù)據(jù)庫表局部,用企業(yè)管理器和SQL語言管理數(shù)據(jù)庫表的 基本方法,同學(xué)們應(yīng)當(dāng)在?數(shù)據(jù)庫原理?課程中已掌握,而?數(shù)據(jù)庫系統(tǒng)管理與
5、開發(fā)技術(shù)?實(shí)驗(yàn)在穩(wěn)固前期所學(xué)知識(shí)的根基上,側(cè)重于重點(diǎn)掌握Transact-SQL提供的為保證數(shù)據(jù)庫完整性而提供的表的各種約束constraint機(jī)制的用法。只有結(jié)實(shí)掌握了一些 基本的Transact-SQL語言,才能掌握數(shù)據(jù)庫系統(tǒng)開發(fā)技術(shù)中重要的存儲(chǔ)過程、觸發(fā)器、游標(biāo)等技術(shù),才能較好的進(jìn)展數(shù)據(jù)庫的管理工作。二、實(shí)驗(yàn)開設(shè)對象本實(shí)驗(yàn)開設(shè)對象為?數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)?課程的學(xué)習(xí)者。三、課程簡介在信息管理與信息系統(tǒng)專業(yè)和電子商務(wù)專業(yè)的培養(yǎng)方案中,?數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)?是考察課程。?數(shù)據(jù)庫系統(tǒng)管理與開發(fā)技術(shù)?課程以SQL Server 2000為背景介紹大型數(shù)據(jù)庫系統(tǒng)的管理和應(yīng)用系統(tǒng)的開發(fā)技術(shù)
6、知識(shí),穩(wěn)固學(xué)生關(guān)于數(shù)據(jù)庫理論方面的根基知識(shí),并加強(qiáng)他們在數(shù)據(jù)庫系統(tǒng)管理和開發(fā)、設(shè)計(jì)、應(yīng)用方面的實(shí)踐能力,為他們將來從事信息管理或相關(guān)專業(yè)的實(shí)際工作打下良好的根基。 四、考核與報(bào)告實(shí)驗(yàn)后,學(xué)生將實(shí)驗(yàn)結(jié)果等內(nèi)容寫出實(shí)驗(yàn)報(bào)告,應(yīng)符合實(shí)驗(yàn)教學(xué)的要求,并得到指導(dǎo)教師認(rèn)可。 指導(dǎo)教師對每份實(shí)驗(yàn)報(bào)告進(jìn)展審閱、評分。 該實(shí)驗(yàn)課程內(nèi)容是對理論教學(xué)內(nèi)容的應(yīng)用與驗(yàn)證,實(shí)驗(yàn)課的成績記入課程平時(shí)成績,占總成績的20。實(shí)驗(yàn)1SQL Server 2000安裝【實(shí)驗(yàn)?zāi)康摹苛私釽indows操作系統(tǒng)與SQL Server之間的關(guān)系;了解SQL Server 2000各安裝選項(xiàng)的作用;會(huì)正確安裝SQL Server 2000。
7、【實(shí)驗(yàn)內(nèi)容和要求】在VMWare WorkStation軟件中練習(xí)安裝SQL Server 2000。步驟如下:翻開VMWare WorkStation軟件,啟動(dòng)虛擬機(jī)。進(jìn)入虛擬機(jī)操作系統(tǒng)后,翻開資源管理器,找到SQL Server 2000安裝盤,雙擊安裝程序,進(jìn)入SQL Server 2000安裝界面。選擇安裝SQL Server 2000企業(yè)版。根據(jù)安裝向?qū)У奶崾?,安裝SQL Server 2000服務(wù)器和客戶端。實(shí)驗(yàn)2SQL Server 2000服務(wù)器管理【實(shí)驗(yàn)?zāi)康摹空莆湛捎檬裁垂ぞ吖芾鞸QL Server 2000服務(wù)器?!緦?shí)驗(yàn)內(nèi)容和要求】用SQL Server服務(wù)管理器啟動(dòng)、暫停
8、或停頓SQL Server服務(wù)、SQL Server Agent服務(wù)。用操作系統(tǒng)中的服務(wù)管理程序啟動(dòng)、暫?;蛲nDSQL Server服務(wù)、SQL Server Agent服務(wù)。用命令行方式啟動(dòng)或停頓SQL Server服務(wù)sqlservr 命令,寫出命令。用Net命令啟動(dòng)或停頓服務(wù)SQL Server服務(wù),寫出命令。在企業(yè)管理器中建設(shè)服務(wù)器組glx,然后在其中注冊幾個(gè)遠(yuǎn)程服務(wù)器??纯茨闶欠窨梢栽谧约旱臋C(jī)器上管理和使用遠(yuǎn)程計(jì)算機(jī)上的SQL Server服務(wù),從而理解注冊服務(wù)器的含義。練習(xí)在企業(yè)管理器中獲取數(shù)據(jù)庫對象的SQL 腳本的操作:如何獲取pubs數(shù)據(jù)庫中創(chuàng)立sales表的腳本將腳本保存為“
9、getscript.sql。記錄操作步驟。提示:操作完畢后,在查詢分析器中翻開保存的腳本文件,看看腳本內(nèi)容。實(shí)驗(yàn)3數(shù)據(jù)庫管理與規(guī)化【實(shí)驗(yàn)?zāi)康摹空莆沼闷髽I(yè)管理器來管理和操作數(shù)據(jù)庫及其相應(yīng)的SQL語句。【實(shí)驗(yàn)內(nèi)容和要求】用企業(yè)管理器和SQL語句2種方法建設(shè)如下內(nèi)容的數(shù)據(jù)庫:注意:要先在資源管理器中建設(shè)存放數(shù)據(jù)文件和事物日志文件的目錄,否那么,會(huì)報(bào)錯(cuò)。如何用企業(yè)管理器刪除數(shù)據(jù)庫myDB記錄操作步驟。SQL語句如何寫練習(xí)如何用企業(yè)管理器移動(dòng)數(shù)據(jù)庫。先創(chuàng)立數(shù)據(jù)庫move,該數(shù)據(jù)庫的數(shù)據(jù)文件move_data.mdf和日志文件move_log.ldf都存放在目錄D:下。在企業(yè)管理器中把拆分move數(shù)據(jù)庫。
10、把目錄D:下的數(shù)據(jù)文件move_data.mdf和日志文件move_log.ldf剪切、粘貼到E:目錄下。然后在企業(yè)管理器中用E:目錄下的數(shù)據(jù)文件move_data.mdf和日志文件move_log.ldf附加數(shù)據(jù)庫。記錄操作步驟。提示:用存儲(chǔ)過程完成第3題。分別用企業(yè)管理器和SQL語句兩種方式完成下面兩題:為表products 創(chuàng)立一個(gè)以p_name為索引鍵、填充因子為10的簇索引index_product,索引中間級(jí)中每個(gè)頁節(jié)點(diǎn)上保持開放的空間,索引存放在主文件組。products 創(chuàng)立一個(gè)p_id, p_name, sumvalue三個(gè)字段構(gòu)成的復(fù)合索引,填充因子為50,索引中間級(jí)中每個(gè)
11、頁節(jié)點(diǎn)上保持開放的空間,索引存放在主文件組?!舅伎碱}】看看在企業(yè)管理器中,有哪幾個(gè)系統(tǒng)數(shù)據(jù)庫、哪幾個(gè)實(shí)例數(shù)據(jù)庫各數(shù)據(jù)庫的作用分別是什么一臺(tái)有數(shù)據(jù)庫Student的SQL Server服務(wù)器,因意外,SQL Server服務(wù)系統(tǒng)遭到破壞,但數(shù)據(jù)庫文件是完好的?,F(xiàn)還有另外一臺(tái)SQL Server服務(wù)器B,但其上沒有Student數(shù)據(jù)庫。如何盡快讓服務(wù)器B上提供數(shù)據(jù)庫Student的數(shù)據(jù)服務(wù)實(shí)驗(yàn)4數(shù)據(jù)完整性【實(shí)驗(yàn)?zāi)康摹縎QL Server 提供了一些工具來幫助用戶實(shí)現(xiàn)數(shù)據(jù)完整性,其中最主要的是約束constraint、規(guī)那么、缺省值、約束和觸發(fā)器。本次實(shí)驗(yàn)?zāi)康氖钦莆占s束、規(guī)那么和缺省值的用法。【實(shí)驗(yàn)
12、內(nèi)容和要求】用企業(yè)管理器在上次實(shí)驗(yàn)中創(chuàng)立的數(shù)據(jù)庫myDB中添加四個(gè)表:學(xué)生表S、課程表C、教師表T和選課表SC。S(S#, Sname, Sbirth, Ssex, Sdept, Sage), 各字段含義分別為學(xué)號(hào)、姓名、生日、性別、院系、年齡;C(C#, Cname, T#),各字段含義分別為課號(hào)、課名、教授該課程的教師編號(hào);SC(S#, C#, grade) ,各字段含義分別為課號(hào)、學(xué)號(hào)、成績;T(T#, Tname,Tposition) ,各字段含義分別為教師編號(hào)、教師名、職稱。其中:S#, C#為字符型,長度都為5;grade為整型;Sbirth為日期時(shí)間型; 看看各表的主碼是什么,為
13、各表設(shè)置主碼; Sage是一個(gè)計(jì)算字段,等于當(dāng)前時(shí)間與生日Sbirth之間相差的年數(shù);C表的T#是外鍵,參照T表;C表的Cname不可為空,且值是唯一的,不可重復(fù);SC表的S#字段是參照S表的外鍵,C#字段是參照C表的外鍵;C表的Grade小于等于100;T表的T#是IDENTITY屬性的字段,初始值為10,增量為1;Tposition字段是字符型,長度為6,缺省值為“助教;未說明的字段自己根據(jù)情況定義其類型。寫出創(chuàng)立上面4個(gè)表的SQL語句。創(chuàng)立如以以下列圖所示兩表:p和c,二表的主鍵如以下列圖,且c表有對更新和刪除操作級(jí)連的外鍵a參照p表的主鍵a。用下面的SQL語句在p和c兩表中插入數(shù)據(jù)并顯
14、示兩表的內(nèi)容:insert into p values(a1,b1)insert into p values(a2,b2)insert into p values(a3,b3)insert into c values(c1,a1)insert into c values(c2,a2)insert into c values(c3,a1)insert into c values(c4,a3)insert into c values(c5,a4)select * from pselect * from c然后,用下面的SQL語句修改p表中的數(shù)據(jù),并顯示兩表的內(nèi)容:update p set a =a
15、0 whereb= b1select * from pselect * from c然后,用下面的SQL語句刪除p表中的一行數(shù)據(jù),并顯示兩表的內(nèi)容:delete from p where b=b1select * from pselect * from c為什么p表中的一行數(shù)據(jù),c表的數(shù)據(jù)也被刪除了通過數(shù)據(jù)庫文件EXP06_Data.MDF和EXP06_Log.LDF附加數(shù)據(jù)庫Exp06,在該數(shù)據(jù)庫中做下面實(shí)驗(yàn)。創(chuàng)立雇傭日期規(guī)那么hire_date_rule,hire_date在1980-01-01 以后、當(dāng)前日期之前。創(chuàng)立工作級(jí)別規(guī)那么job_level_rule,job_level 只能在
16、1,2,3,4,5之間。創(chuàng)立字符規(guī)那么my_character_rule,字符串必須以a 到f 的字母開頭以0到9的數(shù)字結(jié)尾。綁定規(guī)那么hire_date_rule 到用戶自定義數(shù)據(jù)類型hire_date 上。綁定規(guī)那么hire_date_rule 到用戶自定義數(shù)據(jù)類型hire_date 上帶futureonly選項(xiàng),寫出相應(yīng)SQL語句并執(zhí)行之。綁定規(guī)那么my_character_rule 到orders 表的字段order_id。創(chuàng)立生日缺省值birthday_defa為1978-1-1。創(chuàng)立姓名缺省值name_defa為user。把姓名缺省值name_defa綁定到Employees表的e
17、mp_name字段。解除規(guī)那么hire_date_rule 與用戶自定義數(shù)據(jù)類型hire_date 的綁定,帶futureonly選項(xiàng)。解除姓名缺省值name_defa與Employees表的emp_name字段的綁定?!舅伎碱}】T表的T#字段的數(shù)據(jù)類型可以為字符型嗎為什么SQL Server怎樣保證數(shù)據(jù)庫的實(shí)體完整性、參照完整性和用戶自定義完整性如果用下面的語句創(chuàng)立p、c兩表,然后如實(shí)驗(yàn)題3那樣刪除p表的一行數(shù)據(jù),會(huì)出現(xiàn)什么情況create table p(a char(2) primary key, b char(2)create table c(c char(2) primary key
18、, a char(2), foreign key(a) references p(a) ON DELETE NO ACTION ON UPDATENO ACTION )綁定規(guī)那么hire_date_rule 到用戶自定義數(shù)據(jù)類型hire_date 上帶futureonly選項(xiàng),寫出相應(yīng)SQL語句并執(zhí)行之?,F(xiàn)在,Employees表的hiredate和birthday兩字段的數(shù)據(jù)類型分別是datetime和用戶自定義數(shù)據(jù)類型hire_date。我們在企業(yè)管理器里把hiredate字段的數(shù)據(jù)類型改為用戶自定義數(shù)據(jù)類型hire_date。然后,插入兩條數(shù)據(jù):insert employees valu
19、es (e1,張三,1990-1-1,1970-1-1 )insert employees values (e1,李四,1970-1-1,1990-1-1 )為什么一條SQL語句執(zhí)行成功,另一條執(zhí)行失敗實(shí)驗(yàn)5數(shù)據(jù)查詢與更新【實(shí)驗(yàn)?zāi)康摹糠€(wěn)固在數(shù)據(jù)庫原理課程中學(xué)過的Ansi-SQL查詢語句的 基本用法,并進(jìn)一步掌握Transact-SQL擴(kuò)展的查詢語句用法及復(fù)雜查詢語句的用法。關(guān)于數(shù)據(jù)更新的三種類型的SQL語句Insert、Delete 、Update的 基本用法,同學(xué)們在數(shù)據(jù)庫原理課程中應(yīng)當(dāng)已經(jīng)掌握。本實(shí)驗(yàn)主要掌握Transact-SQL對ansi-SQL的一些重要的擴(kuò)展語法的使用如select
20、 .into、insertinto,另外,還要求掌握事務(wù)的使用。【實(shí)驗(yàn)內(nèi)容和要求】先把pangu數(shù)據(jù)庫附加到SQL Server服務(wù)器。pangu中有如下表:然后用查詢分析器在pangu中做以下各題:1查找公司中所有姓張且全名為兩個(gè)字的員工的姓名、所在部門編號(hào);2查詢在編號(hào)為P1、P2、F3、S1的部門中工作的員工的姓名和部門名;3查詢firms表中公司介紹字段以j% 或“j_開頭的紀(jì)錄;提示:LIKE 模式串 ESCAPE 逃逸字符 4查詢工作級(jí)別為2 的員工姓名,查詢結(jié)果按工資排序;5查詢工資最高的4名員工的姓名和工資;6查詢公司編號(hào)、公司所訂購的產(chǎn)品編號(hào)和應(yīng)支付的金額。查詢結(jié)果按公司編號(hào)
21、和產(chǎn)品編號(hào)分組;7查詢有多個(gè)員工的工資不低于1500 的部門編號(hào);8查詢各部門中的最高工資數(shù)額;9查詢在公司工作的工齡一樣的員工;10查詢平均工資低于公司平均工資的部門編號(hào)、名稱及其平均工資;11查詢單筆訂貨量超過10 單位的產(chǎn)品名稱;12查詢order_id為3的訂貨紀(jì)錄,將其產(chǎn)品ID、產(chǎn)品名稱、訂貨公司的名稱保存到新建的表order3中。13刪除department_info中所有數(shù)據(jù),然后往department_info表插入各個(gè)部門的員工總數(shù)e_num、工資總額d_wage;提示: insertinto 14做第13題,不同之處在于:把第13題的操作作為一個(gè)事務(wù),假設(shè)往departme
22、nt_info表插入各個(gè)部門的員工總數(shù)、工資總額的操作失敗那么回滾整個(gè)事務(wù)。(練習(xí)事務(wù)的使用)實(shí)驗(yàn)6Transact-SQL 語言【實(shí)驗(yàn)?zāi)康摹縏ransact-SQL 是ANSI SQL 的加強(qiáng)版語言,它提供了標(biāo)準(zhǔn)的SQL命令另外還對SQL 命令做了許多擴(kuò)大提供類似Basic、Pascal、C 等第三代語言的 基本功能,如變量說明、程序流程控制語言功能、函數(shù)等。本實(shí)驗(yàn)的目的是掌握Transact-SQL 語言中變量聲明、流程控制命令使用、注釋符運(yùn)算符與通配符使用、其它命令使用、常用函數(shù)使用?!緦?shí)驗(yàn)類型】設(shè)計(jì)型實(shí)驗(yàn)【實(shí)驗(yàn)內(nèi)容和要求】翻開查詢分析器,步驟為:【開場】按鈕【程序】【Microsoft
23、 SQL Server】【查詢分析器】。在查詢分析器中寫出完成以下功能的SQL語句。transact-SQL 語言變量聲明與使用:聲明一個(gè)長度為10 個(gè)字符的局部變量str1,將其值賦為SQL;聲明一個(gè)長度為10 個(gè)字符的局部變量str2,將其值賦為 Server;聲明一個(gè)長度為20 個(gè)字符的局部變量str,將str1和str2相連接后的值賦給str ;顯示局部變量str、str1、str2的值?!緦?shí)驗(yàn)說明】用declare聲明變量;用set或select為變量賦值;兩個(gè)字符串的連接運(yùn)算用“運(yùn)算符;用select或print顯示變量的值。注釋符運(yùn)算符與通配符使用將當(dāng)前數(shù)據(jù)庫切換為pubs數(shù)據(jù)庫
24、,查詢employee表中所有姓張的雇員紀(jì)錄,并做注釋:“本語句查詢employee表中所有姓張的雇員紀(jì)錄。【實(shí)驗(yàn)說明】用use命令切換數(shù)據(jù)庫;控制命令使用調(diào)整員工工資,工作級(jí)別為1 的上調(diào)8% ,工作級(jí)別為2 的上調(diào)7%,工作級(jí)別為3 的上調(diào)6% ,其它上調(diào)5%?!緦?shí)驗(yàn)說明】使用case命令,case命令能根據(jù)不同的條件返回不同的值。常用函數(shù)使用統(tǒng)計(jì)函數(shù): 在pangu數(shù)據(jù)庫中查詢:求各部門的平均工資。計(jì)算企業(yè)的部門數(shù)目。求工資最高的員工姓名。求各部門的員工工資總額?!緦?shí)驗(yàn)說明】使用統(tǒng)計(jì)函數(shù)avg( )、count( )、max( )、sum( )。注意,統(tǒng)計(jì)函數(shù)是對組進(jìn)展統(tǒng)計(jì),如果查詢語句
25、中沒有用到分組子句group by,那么整個(gè)查詢結(jié)果被看作一個(gè)分組。算術(shù)函數(shù)用CEILING和FLOOR函數(shù)返回大于或等于2.6的最小整數(shù)值和小于或等于2.6最大整數(shù)值。給出一個(gè)隨機(jī)數(shù)。提示: rand給出值值。字符串函數(shù)把字符串Abc、 ABC全部轉(zhuǎn)換為小寫。提示:lower( )把字符串Abc、 abc全部轉(zhuǎn)換為大寫。提示:upper ( )select str(123), str(123456,5), str( -124.456,8,3),str(124.456,5), str(124.456,8,2)會(huì)得到什么結(jié)果把字符串 abc頭部的空格去掉。 把字符串a(chǎn)bc尾部的空格去掉。獲得字符
26、串SQL Server,最左邊3個(gè)字符的字符串。提示:LEFT( ) 獲得字符串SQL Server,最右邊5個(gè)字符的字符串。提示:Right( ) 獲得字符串SQL Server第3個(gè)字符開場、長度為4的字符串提示:SUBSTRING( ) 把字符串上海倒序。提示:REVERSE( ) 日期函數(shù)查詢在本單位工作了8 年以上的員工的姓名和所在的部門。 【實(shí)驗(yàn)說明】日期函數(shù)是很重要的一類函數(shù),因?yàn)樵诓樵儭?shù)據(jù)庫編程中經(jīng)常要用到這類函數(shù),同學(xué)們應(yīng)該重點(diǎn)掌握。該題必須先求得各員工在本單位的工作時(shí)間。employee表中有各員工的雇傭時(shí)間hire_date,當(dāng)前時(shí)間可用函數(shù)getdate( )得到,求
27、兩日期之差的函數(shù)是DATEDIFF( ),這樣就可求得員工在本單位的工作時(shí)間?!舅伎碱}】下面SQL語句含義是什么注意cast( )函數(shù)和convert( )函數(shù)的使用。select cast(hire_date as char) as hire_date, convert(varchar(10), e_wage) as wagefrom employeewhere e_wage=(select min(e_wage) from employee)select getdate(), convert(char(10),getdate(),1)select convert(char(18),getd
28、ate(),100), convert(char(10),getdate(),112)下面SQL語句含義是什么select dateadd(day,21,12/12/1999), dateadd(month,3, 12/12/1999)select dateadd(year,1,1/1/1999), dateadd(week,1, 1999/12/12)實(shí)驗(yàn)7存儲(chǔ)過程和用戶自定義函數(shù)【實(shí)驗(yàn)?zāi)康摹空莆沾鎯?chǔ)過程的創(chuàng)立和執(zhí)行方法。掌握用戶自定義函數(shù)創(chuàng)立和調(diào)用方法?!緦?shí)驗(yàn)內(nèi)容和要求】附加數(shù)據(jù)庫Exp10。用Transact-SQL語言完成下面功能:創(chuàng)立存儲(chǔ)過程dept_num, 該存儲(chǔ)過程有兩個(gè)參數(shù):
29、dept_id部門編號(hào),作為輸入?yún)?shù), e_num(作為輸出參數(shù),獲得部門編號(hào)為dept_id的部門的雇員總數(shù))。執(zhí)行存儲(chǔ)過程dept_numdept_id為S1,并顯示S1的雇員總數(shù)。在pubs數(shù)據(jù)庫中創(chuàng)立用戶自定義函數(shù)內(nèi)嵌表值函數(shù)SalesByStore,該函數(shù)有一參數(shù)storeid varchar(30),返回stor_id為storeid的書店所銷售的各種書籍的書名和相應(yīng)的銷售數(shù)量的信息。調(diào)用函數(shù)SalesByStore,查看書店號(hào)為7131的書店所銷售的各種書籍的書名和相應(yīng)的銷售數(shù)量的信息。實(shí)驗(yàn)8觸發(fā)器【實(shí)驗(yàn)?zāi)康摹坷斫庥|發(fā)器的工作原理,掌握假設(shè)何創(chuàng)立觸發(fā)器?!緦?shí)驗(yàn)內(nèi)容和要求】附加數(shù)據(jù)
30、庫Exp10。表構(gòu)造表數(shù)據(jù)學(xué)生表S中創(chuàng)立觸發(fā)器stu_upd, 使得當(dāng)S表中更改學(xué)生學(xué)號(hào)Sno時(shí): 確保一次最多只更改一行,否那么報(bào)錯(cuò),回滾整個(gè)事務(wù); 假設(shè)一次只更改了一行,那么將選課表SC中被更改學(xué)號(hào)的學(xué)生在選課表中的所有記錄也作一樣更改,例如:學(xué)號(hào)為95001的學(xué)生學(xué)號(hào)被改為94010,那么選課表SC中學(xué)號(hào)95001的選課紀(jì)錄的學(xué)號(hào)也都要被改為94010。創(chuàng)立好觸發(fā)器后,把學(xué)生表中學(xué)號(hào)95001改為94010,看看選課表有什么變化。在學(xué)生表S中創(chuàng)立觸發(fā)器stu_del, 使得當(dāng)S表中刪除學(xué)生數(shù)據(jù)行時(shí): 確保一次最多只刪除一行,否那么報(bào)錯(cuò),回滾整個(gè)事務(wù); 假設(shè)一次只刪除了一行,那么將成績表中
31、被刪除的學(xué)生在選課表中的所有記錄也刪除創(chuàng)立好觸發(fā)器后,把學(xué)生表中學(xué)號(hào)95002的記錄刪除,看看選課表有什么變化。表構(gòu)造如上圖。表數(shù)據(jù)如以以下列圖。創(chuàng)立觸發(fā)器,使得:員工換工作即員工的job_id改變,假設(shè)該員工的job_lvl他的新工作要求的max_lvl,那么把他的job_lvl置為max_lvl.【思考題】 首先創(chuàng)立三個(gè)表salemay、salejune 和salejuly,這三個(gè)表分別用來保存五、六、七月的銷售量信息。create table salemay(sale_id char(6) not null,sale_name varchar(20),sale_qua smallint)
32、表salejune 和表salejuly 與salemay 具有一樣的數(shù)據(jù)列。 再創(chuàng)立分割視圖saleview:create view saleviewasselect * from salemayunion allselect * from salejuneunion allselect * from salejuly這時(shí)做操作insert into saleview values(jul001,先科VCD,200)會(huì)怎樣為什么 然后在視圖saleview 上創(chuàng)立INSTEAD OF 觸發(fā)器saleviewtr:create trigger saleviewtr on saleviewins
33、tead of insertasbegindeclare sale_id char(4)select sale_id=sale_idfrom insertedif substring(sale_id,1,3) =maybegin insert into salemay select sale_id, sale_name, sale_qua from insertedendif substring(sale_id,1,3) =junbegin insert into salejune select sale_id, sale_name, sale_qua from insertedendif s
34、ubstring(sale_id,1,3) =julbegin insert into salejuly select sale_id, sale_name, sale_qua from insertedendend這時(shí)做操作insert into saleview values(jul001,先科VCD,200)會(huì)怎樣為什么實(shí)驗(yàn)9游標(biāo)【實(shí)驗(yàn)?zāi)康摹客ㄟ^本實(shí)驗(yàn)掌握游標(biāo) 基本用法?!緦?shí)驗(yàn)內(nèi)容和要求】有學(xué)生選課表SC(S#, C#, grade, ord) ,各字段含義分別為學(xué)號(hào)、課號(hào)、成績、名次,類型分別是char(4)、char(4)、smallint、smallint。現(xiàn)在,前三個(gè)字段都有數(shù)據(jù)
35、沒有為null的。請創(chuàng)立存儲(chǔ)過程give_ord,該存儲(chǔ)過程有參數(shù)C#,該存儲(chǔ)過程的功能是將SC表中課程號(hào)為C#的記錄的ord字段填入學(xué)生在該課程的名次。成績一樣的學(xué)生的名次也一樣。例如,A、B、C、D四人成績分別是95、93、93、80,那么四人的名次分別是1、2、2、4。創(chuàng)立后,執(zhí)行該存儲(chǔ)過程,為選了課號(hào)為DB的課的學(xué)生排名次,看看排的結(jié)果對不對?!舅伎碱}】有學(xué)生選課表SC(S#, C#, grade, ord) ,各字段含義分別為學(xué)號(hào)、課號(hào)、成績、名次,類型分別是char(4)、char(4)、smallint、smallint?,F(xiàn)在,前三個(gè)字段都有數(shù)據(jù)沒有為null的。請創(chuàng)立存儲(chǔ)過程g
36、ive_ord,該存儲(chǔ)過程將ord字段填入值即,為每門課的學(xué)生排名次,對同一門課,成績一樣的學(xué)生的名次也一樣。實(shí)驗(yàn)10SQL Server安全性管理【實(shí)驗(yàn)?zāi)康摹吭赟QL Server 的安全模型中包括以下幾局部:SQL Server 登錄、數(shù)據(jù)庫用戶、權(quán)限、角色。通過本實(shí)驗(yàn)掌握SQL Server 的安全 基本用法。【實(shí)驗(yàn)內(nèi)容和要求】1用SQL Server企業(yè)管理器創(chuàng)立SQL Server登錄帳戶LOGIN1,密碼333?!痉?wù)器】【安全性】【登錄】上右擊【新建登錄】【SQL Server登錄屬性新建登錄】對話框在【常規(guī)】標(biāo)簽中輸入:在【常規(guī)】標(biāo)簽中單擊【確定】按鈕。2為test數(shù)據(jù)庫創(chuàng)立新
37、用戶LOGIN1該用戶以登錄帳戶LOGIN1登錄數(shù)據(jù)庫,對數(shù)據(jù)表table1有select、insert、update權(quán)限。操作:【服務(wù)器】【數(shù)據(jù)庫】【test】數(shù)據(jù)庫【用戶】上右擊【新建數(shù)據(jù)庫用戶】【數(shù)據(jù)庫用戶屬性新建用戶】對話框在【常規(guī)】標(biāo)簽中如下輸入,并點(diǎn)確定:【test】數(shù)據(jù)庫【用戶】在LOGIN1上右擊【所有任務(wù)】【管理權(quán)限】對話框在【數(shù)據(jù)庫用戶屬性test】對話框的【權(quán)限】標(biāo)簽中賦權(quán)限,并確定:3以LOGIN1登錄SQL Server,翻開表table1,做插入、修改數(shù)據(jù)操作,SQL Server有何反響做delete操作,SQL Server有何反響4為test數(shù)據(jù)庫創(chuàng)立加數(shù)據(jù)庫標(biāo)準(zhǔn)角色role1,給該角色賦予某些權(quán)限;將該角色賦給test數(shù)據(jù)庫的LOGIN1用戶。5附加題:在windows系統(tǒng)中新建windows用戶win1,再將該用戶添加為SQL Server登錄用戶,該用戶具有test數(shù)據(jù)庫的角色role1的權(quán)限。實(shí)驗(yàn)11備份和復(fù)原數(shù)據(jù)庫【實(shí)驗(yàn)?zāi)康摹空莆諗?shù)據(jù)庫備份及復(fù)原的方法?!緦?shí)驗(yàn)內(nèi)容和要求
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 知識(shí)遷移與應(yīng)用能力提升計(jì)劃
- 個(gè)人知識(shí)體系建設(shè)的必要性計(jì)劃
- 2025年網(wǎng)絡(luò)技術(shù)前景分析試題與答案
- 城市交通環(huán)境影響評價(jià)重點(diǎn)基礎(chǔ)知識(shí)點(diǎn)
- 2024年盤錦市盤山縣項(xiàng)目建設(shè)服務(wù)中心遴選真題
- 法律文書的格式與寫作試題及答案
- 2024年龍巖市永定區(qū)招聘中小學(xué)幼兒園教師真題
- 全面提升倉庫操作規(guī)范計(jì)劃
- 2024年湖南省應(yīng)急管理廳下屬事業(yè)單位真題
- 秋季學(xué)生訪談與調(diào)研計(jì)劃
- 六年級(jí)下冊數(shù)學(xué)課件 整理和復(fù)習(xí)6.5比和比例 人教版 (共14張PPT)
- 福州市歷史建筑保護(hù)管理辦法(試行)
- JHA及SCL風(fēng)險(xiǎn)評價(jià)方法講解(參考)
- DB11T 1933-2021 人乳庫建立與運(yùn)行規(guī)范
- 1.3.1動(dòng)量守恒定律課件(共13張PPT)
- 國網(wǎng)北京市電力公司授權(quán)委托書(用電)
- 中小學(xué)教育懲戒規(guī)則(試行)全文解讀ppt課件
- 調(diào)度指揮與統(tǒng)計(jì)分析課程教學(xué)設(shè)計(jì)
- 常暗之廂(7規(guī)則-簡體修正)
- 終端塔基礎(chǔ)預(yù)偏值(抬高值)計(jì)算表格
- 海外醫(yī)療服務(wù)委托合同協(xié)議書范本模板
評論
0/150
提交評論