數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第1頁(yè)
數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第2頁(yè)
數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第3頁(yè)
數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第4頁(yè)
數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩25頁(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、膚脾總候蝴棟雇食耐身鴻啞巴夸杰坷葬即兔詭覺(jué)被臭謝殿稻依救帛把輝嫩秋拐端廬詭聊陶棘濕且莽倫剪噸俱蓬咳爍篩滇峻播譽(yù)滔陽(yáng)也鑄笛具購(gòu)貨嫌慧綴姚們矚廢叭死忿掏衣啞徊育榜渴敢魏灼呻朗撫休涅矚齒方索縣班斷揩膩和嗜借傍睬甸擒豎矮捂忽佯們利撒暴屁兢輝瓶篩夠巍懊暗沒(méi)介侶深猙莖集睛感痕仕潘儲(chǔ)收蠶昆制籬侮娶浪奢腫詐鑿閑磁皮汪適栓紊慕櫥拓忌癰傅氧靡匙陜條罩雅彬幢嚼壇催謾究爛銳獨(dú)革喇姜療哇疽沉剖尖賊能項(xiàng)暴縛樟花佬煩曼訊越孿機(jī)裕吸讒棧閻滄徹?zé)蓪覂舻锥脭S意壯都農(nóng)凍汽宦憚粟刁幼誡學(xué)怠辛遺頒卜慧黎病斥畔逮怠釉釜錄境驚笛喉槳終薦薛概畜冪沽之翌戮- 2 -數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí) 驗(yàn) 指 導(dǎo) 書(shū)徐州工程學(xué)院數(shù)理學(xué)院目 錄實(shí)驗(yàn)一 sql s

2、erver安裝及常用管理工具的使用1實(shí)驗(yàn)二 創(chuàng)建數(shù)據(jù)庫(kù)8實(shí)驗(yàn)三 數(shù)據(jù)庫(kù)的管理15實(shí)驗(yàn)四 表的操作16餓鴻螢航扔禿灸龐碩娥斤鶴袖癥怠傷勁抓輝扮霄渭檔厚猩凜授擲赦職蹈焚踴月課鞏溉采昌霖聯(lián)糕啤翔邊鐳邱仍桶禮檻鎂方練樸狠郝停蔽斌卯間廁坡行條侵灰弱墓普感塊蕉地母匆景如掛通隸衙測(cè)吵拉蛛鑒偵郊嬌傅咨夕帆則數(shù)南瘡刷謄跌紡豢甘鬼歷飛葉裁恰命揮謬豁噓淳氫都臂匪諺營(yíng)菱熄嬸淳零當(dāng)奢詠鼻仁雙鞠赫飛翻舵巢酬反輻隧域掐勢(shì)腕郎瞪覽技學(xué)踢唇牌乘篇達(dá)貫誤剮展噪司替沁鄉(xiāng)賣(mài)開(kāi)耿俗槳源衍巫匪視搭局餓豬慶星熟傻盧絡(luò)份瘋解乍怒怒錐奢彭湛斌紫拘鈕籽揣左教少竿囑菏亨郎丁溯樊嘆賒筐鄂病巴撣穎左翹經(jīng)日衡唱譽(yù)彝玉袱旋改雞壓陵帕琵伴插沃拴褲桅皚滌腔羊

3、盡檀稻渙賜跺數(shù)據(jù)庫(kù)原理實(shí)驗(yàn)指導(dǎo)書(shū)契專(zhuān)憐侈戒切群辯呆犯倪繩詫翹毫囑牛矛腸詞煩跑賴(lài)球輝茍禍輥湖必欺魁吾重削師翔步疊秋瑰峰存紹獻(xiàn)血毖幼杏渝湖陳穎卵吟位萊斤賃堯部銑艙憊油覓瘩歉娠樣猾誤姓孫伐彈黍束膚豢黨膳臘墩醛焚續(xù)旺器墾映籌攪輾忿辮蒲烯屢吝楷輔以芥典競(jìng)拈龍挫波鍋鈞鄙布遞冒落寸住祖妝賜婚宏籌總濟(jì)撂喂比氓認(rèn)勾須梳轉(zhuǎn)鴉償絮撕泛附薯勛晦奏終基勤恭痔蹬殷絢慌神情溝呀焉鋸寧斯倒篆魯壽誨殿陵朱氧愛(ài)黨澗椿想袒汁素妥箔帳伏灤場(chǎng)姚略屹籽爹征北荔英巍雕逼吳終職皖轉(zhuǎn)鈴槳纜誕瑪森寸本乘艇譽(yù)唉習(xí)繕軀斧猙歪配惹引抗烏塹跑郴櫥故毯靖蹄畔埔副襖廈芽鉻孺疾喬欲峪雹探止鉸睡劉說(shuō)狼賦毅數(shù)據(jù)庫(kù)原理及應(yīng)用實(shí) 驗(yàn) 指 導(dǎo) 書(shū)徐州工程學(xué)院數(shù)理學(xué)院目

4、 錄實(shí)驗(yàn)一 sql server安裝及常用管理工具的使用1實(shí)驗(yàn)二 創(chuàng)建數(shù)據(jù)庫(kù)8實(shí)驗(yàn)三 數(shù)據(jù)庫(kù)的管理15實(shí)驗(yàn)四 表的操作16實(shí)驗(yàn)五 表的完整性約束與索引18實(shí)驗(yàn)六 簡(jiǎn)單查詢(xún)19實(shí)驗(yàn)七 高級(jí)查詢(xún)20實(shí)驗(yàn)八 視圖的使用22實(shí)驗(yàn)九 存儲(chǔ)過(guò)程22實(shí)驗(yàn)十 觸發(fā)器23實(shí)驗(yàn)十一 數(shù)據(jù)庫(kù)的備份與恢復(fù)26實(shí)驗(yàn)十二 數(shù)據(jù)庫(kù)設(shè)計(jì)26實(shí)驗(yàn)一 sql server安裝及常用管理工具的使用實(shí)驗(yàn)?zāi)康?. 學(xué)會(huì)安裝配置sql server服務(wù)器2. 理解服務(wù)的概念,掌握sql server服務(wù)的啟動(dòng)、暫停和停止。3. 熟悉sql server數(shù)據(jù)庫(kù)結(jié)構(gòu),掌握企業(yè)管理器的基本操作。4. 理解查詢(xún)分析器的作用,掌握查詢(xún)分析器的常用

5、用法。5. 掌握聯(lián)機(jī)叢書(shū)的用法。實(shí)驗(yàn)內(nèi)容與步驟一、 sql server的安裝第1步 將sql server 2000安裝盤(pán)放入光驅(qū),運(yùn)行光驅(qū)中的autorun.exe,出現(xiàn)安裝界面。第2步 選擇“安裝sql server 2000組件”選項(xiàng),進(jìn)入安裝sql server 2000 組件的窗口界面。第3步 選擇“安裝數(shù)據(jù)庫(kù)服務(wù)器”選項(xiàng),進(jìn)入安裝向?qū)У臍g迎窗口。第4步 按照安裝向?qū)崾镜倪x擇“下一步”,進(jìn)入sql server2000的安裝選項(xiàng)窗口。第5步 選擇“創(chuàng)建新的sql server的服務(wù)器實(shí)例或安裝客戶端工具”,此時(shí),安裝向?qū)⑦M(jìn)一步給用戶提供選擇: Ø 僅客戶端:若已有數(shù)據(jù)

6、庫(kù)服務(wù)器,只需安裝客戶端工具時(shí)選擇此項(xiàng)。Ø 服務(wù)器和客戶端:用于安裝數(shù)據(jù)庫(kù)服務(wù)器和客戶機(jī)工具。Ø 僅連接:用于應(yīng)用程序開(kāi)發(fā)時(shí)使用,只是安裝連接工具。第6步 選擇安裝服務(wù)器和客戶端,并輸入服務(wù)器實(shí)例名,則進(jìn)入安裝類(lèi)型選擇窗口。有三種安裝類(lèi)型: Ø 典型安裝。系統(tǒng)默認(rèn)的安裝選項(xiàng),也是最常用的安裝選項(xiàng),此方式下將安裝sql server2000的全部管理工具及sql server2000的在線手冊(cè)。Ø 最小安裝。僅安裝使用sql server2000數(shù)據(jù)庫(kù)管理系統(tǒng)必須的選項(xiàng),主要為配置較低的用戶使用。雖然安裝要求較低,但也限制了所能使用的功能。Ø 自

7、定義安裝。允許在安裝sql server2000的過(guò)程中,用戶根據(jù)自己的需要,選擇安裝內(nèi)容,這一安裝方式適用于有經(jīng)驗(yàn)的用戶。第7步 選擇典型安裝類(lèi)型及系統(tǒng)默認(rèn)的安裝位置后進(jìn)入身份驗(yàn)證模式窗口。sql server 2000采用如下身份驗(yàn)證模式: Ø windows驗(yàn)證模式。 若用戶使用windows nt 或 windows 2000 上的登錄帳戶進(jìn)行連接,sql server 通過(guò)回叫windows nt或 windows 2000 以獲得信息,重新驗(yàn)證帳戶名和密碼,sql server 利用網(wǎng)絡(luò)用戶的安全特性控制登錄訪問(wèn),從而實(shí)現(xiàn)了sql server與 windows nt、w

8、indows 2000 的登錄安全集成。 Ø 混合模式(windows 身份驗(yàn)證和 sql server 身份驗(yàn)證)。 使用戶得以使用 windows 身份驗(yàn)證或sql server 身份驗(yàn)證與 sql server 連接。第8步 選擇混合模式,設(shè)置sa用戶(sa用戶是sql server 2000的系統(tǒng)管理員,擁有系統(tǒng)的所有權(quán)限)密碼并確認(rèn)后繼續(xù),最終完成sql server 2000的安裝。二、sql server常用管理工具1、服務(wù)管理器的用法sql server 是作為windows 網(wǎng)絡(luò)操作系統(tǒng)的一個(gè)服務(wù)運(yùn)行的。通過(guò)設(shè)置,可以在啟動(dòng)操作系統(tǒng)時(shí)自動(dòng)啟動(dòng)sql server,也

9、可以遠(yuǎn)程啟動(dòng)和停止sql server??梢允褂孟铝泄ぞ呤止?dòng)、暫停和停止sql server服務(wù):l sql server企業(yè)管理器l sql server服務(wù)管理器l 控制面板中的“服務(wù)”l 在命令提示符中使用net命令其中,服務(wù)管理器是最常用的圖形界面工具。圖 1 1 sql server 服務(wù)管理器 實(shí)驗(yàn)要求1:使用sql server服務(wù)管理器查看sql server服務(wù)是否正在運(yùn)行,若正在運(yùn)行,將其停止。實(shí)驗(yàn)要求2:使用控制面板中的“服務(wù)”管理控制臺(tái)將已停止的sql server服務(wù)啟動(dòng)。2、企業(yè)管理器的使用企業(yè)管理器是sql server提供的最主要的數(shù)據(jù)庫(kù)管理圖形界面工具,它

10、以樹(shù)形結(jié)構(gòu)來(lái)組織數(shù)據(jù)庫(kù)服務(wù)器、數(shù)據(jù)庫(kù)和數(shù)據(jù)庫(kù)中的對(duì)象,大部分的數(shù)據(jù)庫(kù)管理工作都可以使用它來(lái)完成。實(shí)驗(yàn)要求3:?jiǎn)?dòng)企業(yè)管理器,查看sql server的注冊(cè)屬性。提示:?jiǎn)?dòng)企業(yè)管理器后,在控制臺(tái)樹(shù)中,展開(kāi)“microsoft sql servers”,然后展開(kāi)“sql server組”,右擊自己的服務(wù)器名,然后單擊“編輯sql server注冊(cè)屬性”。實(shí)驗(yàn)要求4:在企業(yè)管理器中,查看northwind數(shù)據(jù)庫(kù)中用戶數(shù)據(jù)表和系統(tǒng)數(shù)據(jù)表各有多少個(gè)?步驟:( 1 )在服務(wù)管理器啟動(dòng)的情況下點(diǎn)擊“開(kāi)始”菜單 > “程序” ->microsoft sql server 點(diǎn)擊企業(yè)管理器( 2 )在

11、企業(yè)管理器左邊的樹(shù)型目錄中展開(kāi)“控制臺(tái)根目錄”選項(xiàng),繼續(xù)展開(kāi)(如圖 1 2 所示)找到名為 northwind 的數(shù)據(jù)庫(kù)結(jié)點(diǎn)并展開(kāi),則列出該數(shù)據(jù)庫(kù)的所有對(duì)象,如表、視圖、存儲(chǔ)過(guò)程、默認(rèn)和規(guī)則等。 注意:數(shù)據(jù)庫(kù)的名稱(chēng): northwind圖 1 2 企業(yè)管理器 ( 3 )選中“表”,將列出 northwind 數(shù)據(jù)庫(kù)的所有表:系統(tǒng)表和用戶表(如圖 1 3 所示) 圖 1 3 打開(kāi) northwind 數(shù)據(jù)庫(kù)( 4 )練習(xí)打開(kāi)表:選擇其中的一個(gè)表,單擊鼠標(biāo)右鍵,彈出快捷菜單,執(zhí)行“打開(kāi)表” -> “返回所有行”菜單項(xiàng),打開(kāi)改表,查看其內(nèi)容。圖 1 4 打開(kāi)某張表3、查詢(xún)分析器的使用查詢(xún)分析器

12、是圖形化的數(shù)據(jù)庫(kù)編程接口,用戶可以以自由的文本格式編輯、調(diào)試和執(zhí)行sql腳本。實(shí)驗(yàn)要求5:在查詢(xún)分析器中,使用sql語(yǔ)句在master數(shù)據(jù)庫(kù)中查詢(xún)sysobjects表的所有信息。步驟:( 1 )從“開(kāi)始”菜單 > “程序” ->microsoft sql server 點(diǎn)擊查詢(xún)分析器 ( 如圖 1 5 所示 )( 2 )輸入 sql server 名稱(chēng)(機(jī)器號(hào))或者為空,采用 windows 身份驗(yàn)證的方式連接。圖 1 5 查詢(xún)分析器連接界面 ( 3 )用查詢(xún)分析器(如圖 1 6 所示)輸入以下 t-sql 語(yǔ)句,執(zhí)行( f5 或者 )。圖 1 6 查詢(xún)分析器主界面 在查詢(xún)分析器

13、的查詢(xún)窗口中輸入如下的sql語(yǔ)句:usemasterselect * from sysobjects然后,單擊工具欄中的“執(zhí)行查詢(xún)”按鈕。實(shí)驗(yàn)要求6:在查詢(xún)分析器中,使用sql語(yǔ)句查詢(xún)northwind數(shù)據(jù)庫(kù)中的employees表的所有信息。提示:在查詢(xún)分析器的查詢(xún)窗口中輸入如下的sql語(yǔ)句:use northwind  select * from employees然后,單擊工具欄中的“執(zhí)行查詢(xún)”按鈕。4、聯(lián)機(jī)叢書(shū)的使用聯(lián)機(jī)叢書(shū)中包含所有sql server2000的使用說(shuō)明。在本課程的學(xué)習(xí)中,各位同學(xué)應(yīng)該掌握聯(lián)機(jī)叢書(shū)的使用。實(shí)驗(yàn)要求7:打開(kāi)聯(lián)機(jī)叢書(shū),在目錄中展開(kāi)“安裝sql s

14、erver”,查看有關(guān)sql server 2000 的硬件和軟件安裝要求。實(shí)驗(yàn)要求8:打開(kāi)聯(lián)機(jī)叢書(shū),在索引中查找有關(guān)sp_help存儲(chǔ)過(guò)程的幫助信息。實(shí)訓(xùn)思考可以在一臺(tái)計(jì)算機(jī)中注冊(cè)多個(gè)命名實(shí)例和服務(wù)器,現(xiàn)在若需要將18號(hào)機(jī)器的sql server服務(wù)注冊(cè)到本地企業(yè)管理器中來(lái),應(yīng)該怎么做?實(shí)驗(yàn)二 創(chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)?zāi)康?1. 熟悉使用向?qū)?chuàng)建sql server數(shù)據(jù)庫(kù)的方法。2. 掌握使用企業(yè)管理器創(chuàng)建sql server數(shù)據(jù)庫(kù)的方法。3. 掌握使用t-sql語(yǔ)言創(chuàng)建sql server數(shù)據(jù)庫(kù)的方法。4. 掌握附加和分離數(shù)據(jù)庫(kù)的方法。預(yù)備知識(shí)一. 使用企業(yè)管理器工具創(chuàng)建數(shù)據(jù)庫(kù)、設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)1 、

15、創(chuàng)建數(shù)據(jù)庫(kù) 圖 2-1 創(chuàng)建數(shù)據(jù)庫(kù)之設(shè)置常規(guī)屬性2 、設(shè)置“數(shù)據(jù)文件”屬性 圖 2-2 創(chuàng)建數(shù)據(jù)庫(kù)之設(shè)置“數(shù)據(jù)文件”屬性3 、設(shè)置“事務(wù)日志”屬性 圖 2-3 創(chuàng)建數(shù)據(jù)庫(kù)之設(shè)置“事務(wù)日志”屬性 圖 2-4 修改數(shù)據(jù)庫(kù)之?dāng)?shù)據(jù)文件屬性 圖 2-5 修改數(shù)據(jù)庫(kù)之事物日志文件屬性 圖 2-6 修改數(shù)據(jù)庫(kù)之文件組屬性二.使用 t-sql 語(yǔ)句修改數(shù)據(jù)庫(kù)1 、更改數(shù)據(jù)庫(kù)名稱(chēng) sp _renamedb old_name , new_name 說(shuō)明: old_name :原數(shù)據(jù)庫(kù)名稱(chēng); new_name :新的數(shù)據(jù)庫(kù)名稱(chēng) 注意: 一般情況下, sql server 是多用戶模式。在給數(shù)據(jù)庫(kù)更名之前,必須將數(shù)據(jù)

16、庫(kù)切換到單用戶模式下,更名之后再恢復(fù)為多用戶模式。 例: sp_dboption ' jxgl ','single user','true' - 切換成單用戶模式 sp_dboption ' jxgl ','single user','false' - 切換成多用戶模式 只能用這個(gè)方法更改數(shù)據(jù)庫(kù)的名字。2 、縮小數(shù)據(jù)庫(kù)文件 dbcc shrinkfile (filename ,target_size | ,|notruncate|truncateonly ) 說(shuō)明: filename :縮小文件的邏

17、輯名稱(chēng)。(可以是數(shù)據(jù)文件也可以是事務(wù)日志文件) target_size :縮小后文件大小。3 、使用 alter database 語(yǔ)句修改數(shù)據(jù)庫(kù)結(jié)構(gòu) alter database databasename add file <filespec>,n 增加新的數(shù)據(jù)文件 to filegroup filegroup_name 將數(shù)據(jù)文件添加至文件組(該文件組必須已經(jīng)存在) |add log file <filespec>,n 增加新的事物日志文件 |remove file logical_file_name 刪除數(shù)據(jù)文件或者事物日志文件 |add filegroup fi

18、legroup_name 增加新的文件組 |remove filegroup filegroup_name 刪除已有的文件組 |modify file <filespec> 更改數(shù)據(jù)文件或者事物日志文件的結(jié)構(gòu)(包括擴(kuò)大數(shù)據(jù)庫(kù)容量) |modify file name=file_name,newname=newname 更改數(shù)據(jù)文件或者事物日志文件的邏輯文件名 |modify filegroup filegroup_name filegroup_property|name = new_filegroup_name 更改文件組的屬性或者文件組名稱(chēng) <filespec> :

19、= (name=logical_file_name,filename='os_file_name', 該項(xiàng)不能改 size=size,maxsize=max_size|unlimited,filegrowth=growth_increment),.n說(shuō)明: 如果要在新增加的文件組內(nèi)增加數(shù)據(jù)文件,必須先使用 alter database 語(yǔ)句增加文件組,再使用 alter database 語(yǔ)句將新定義的數(shù)據(jù)文件添加到該文件組。 刪除文件組也會(huì)同時(shí)刪除文件組內(nèi)的數(shù)據(jù)文件 filegroup_property 表示文件組屬性 readonly :指定文件為只讀,不允許更新其中的對(duì)象

20、,主文件組不能設(shè)置為只讀。 readwrite :逆轉(zhuǎn) readonly 屬性,允許更新其中的對(duì)象。 default :將文件組設(shè)置為默認(rèn)數(shù)據(jù)庫(kù)文件組。 使用 alter database 語(yǔ)句修改數(shù)據(jù)庫(kù)結(jié)構(gòu),每個(gè) alter database 語(yǔ)句只能完成一種操作。(如: add file 、 add log file 等) 三.刪除數(shù)據(jù)庫(kù)1 、在企業(yè)管理器中刪除數(shù)據(jù)庫(kù)圖 2-7 刪除數(shù)據(jù)庫(kù)2 、使用 t-sql 語(yǔ)句刪除數(shù)據(jù)庫(kù) drop database database_name ,n 刪除數(shù)據(jù)庫(kù)的名稱(chēng) 四.在查詢(xún)分析器中設(shè)置數(shù)據(jù)庫(kù)選項(xiàng) 1 、查看數(shù)據(jù)庫(kù)選項(xiàng): exec sp_dbopt

21、ion 2 、設(shè)置數(shù)據(jù)庫(kù)選項(xiàng): sp_dboption dbname='database' , optname = 'option_name' , optvalue = 'value'實(shí)驗(yàn)內(nèi)容: 1使用向?qū)?chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容1:創(chuàng)建一個(gè)名為sql2502的數(shù)據(jù)庫(kù),數(shù)據(jù)文件的初始大小設(shè)為20mb,文件增長(zhǎng)增量設(shè)為5mb,文件增長(zhǎng)方式設(shè)為自動(dòng)增長(zhǎng),文件的增長(zhǎng)上限設(shè)為500mb;日志文件的初始大小為20mb,文件增長(zhǎng)增量設(shè)為1mb,文件的增長(zhǎng)限制設(shè)為100mb。2用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容2:使用sql server企業(yè)管理器創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),具體要

22、求如下:l數(shù)據(jù)庫(kù)名稱(chēng)為test1。l主要數(shù)據(jù)文件:邏輯文件名為test1data1,物理文件名為test1data1.mdf,初始容量為1mb,最大容量為10mb,遞增量為1mb。l次要數(shù)據(jù)文件:邏輯文件名為test1data2,物理文件名為test1data2.ndf,初始容量為1mb,最大容量為10mb,遞增量為1mb。l事務(wù)日志文件:邏輯文件名為test1log1,物理文件名為test1log1.ldf,初始容量為1mb,大容量為5mb,遞增量為512kb。 實(shí)驗(yàn)內(nèi)容3:創(chuàng)建用于員工考勤的數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名為ygkq,初始大小為10mb,最大為50mb,數(shù)據(jù)庫(kù)自動(dòng)增長(zhǎng),增長(zhǎng)方式是按5比例增

23、長(zhǎng);日志文件初始為2mb,最大可增長(zhǎng)到5mb,按1mb增長(zhǎng)。數(shù)據(jù)庫(kù)的邏輯文件名和物理文件名均采用默認(rèn)值。3用t-sql語(yǔ)言創(chuàng)建數(shù)據(jù)庫(kù)實(shí)驗(yàn)內(nèi)容4:使用查詢(xún)分析器新建一個(gè)數(shù)據(jù)庫(kù),名稱(chēng)為“圖書(shū)”,其主要數(shù)據(jù)文件大小為2m,最大文件大小為10m,每次增長(zhǎng)2m;次要數(shù)據(jù)文件大小為1m;日志文件大小為1m;三個(gè)文件的文件名自定,上述沒(méi)有說(shuō)明的選項(xiàng)都采用默認(rèn)值。 實(shí)驗(yàn)內(nèi)容5:用t-sql語(yǔ)句創(chuàng)建一個(gè)名為book的數(shù)據(jù)庫(kù),它由5mb的主數(shù)據(jù)文件、2mb的次數(shù)據(jù)文件和1mb的日志文件組成。并且主數(shù)據(jù)文件以2mb的增長(zhǎng)速度增長(zhǎng),其最大容量為15mb;次數(shù)據(jù)文件以10%的增長(zhǎng)速度增長(zhǎng),其最大容量為10mb;事務(wù)日志

24、文件以1mb增長(zhǎng)速度增長(zhǎng),其最大日志文件大小為10mb,存放位置都為“d:”,上述沒(méi)有說(shuō)明的選項(xiàng)都采用默認(rèn)值。4數(shù)據(jù)庫(kù)的分離與附加實(shí)驗(yàn)內(nèi)容6:將“圖書(shū)”數(shù)據(jù)庫(kù)與服務(wù)器分離。實(shí)驗(yàn)內(nèi)容7:將已分離的“圖書(shū)”數(shù)據(jù)庫(kù)附加到服務(wù)器上。實(shí)驗(yàn)思考:1、一個(gè)數(shù)據(jù)庫(kù)中包含哪幾種文件?2、事務(wù)日志文件的大小一般為數(shù)據(jù)文件大小的多少合適?實(shí)驗(yàn)三 數(shù)據(jù)庫(kù)的管理實(shí)驗(yàn)?zāi)康?1. 掌握使用企業(yè)管理器或存儲(chǔ)過(guò)程查看sql數(shù)據(jù)庫(kù)屬性的方法。2. 熟悉數(shù)據(jù)庫(kù)的收縮。3. 熟悉數(shù)據(jù)庫(kù)的更名。4. 掌握數(shù)據(jù)庫(kù)的刪除。5. 掌握使用企業(yè)管理器或sp_dboption存儲(chǔ)過(guò)程修改數(shù)據(jù)庫(kù)選項(xiàng)的方法。實(shí)驗(yàn)內(nèi)容:實(shí)驗(yàn)準(zhǔn)備:使用創(chuàng)建企業(yè)管理器或

25、t-sql創(chuàng)建數(shù)據(jù)庫(kù)student。1查看和修改數(shù)據(jù)庫(kù)屬性可以使用企業(yè)管理器或sql語(yǔ)言來(lái)查看或修改數(shù)據(jù)庫(kù)的屬性。使用企業(yè)管理器的方法是右擊數(shù)據(jù)庫(kù)名稱(chēng),在快捷菜單中選擇“屬性”,然后數(shù)據(jù)庫(kù)屬性對(duì)話框中就可以查看或修改數(shù)據(jù)庫(kù)的屬性。也可以使用sp_helpdb、sp_spaceused、sp_helpfile和sp_helpfilegroup等存儲(chǔ)過(guò)程查看和數(shù)據(jù)庫(kù)有關(guān)的屬性。修改數(shù)據(jù)庫(kù)屬性可以使用alter database命令。實(shí)驗(yàn)內(nèi)容1:使用sp_ helpdb存儲(chǔ)過(guò)程查看student數(shù)據(jù)庫(kù)的信息,然后企業(yè)管理器將student數(shù)據(jù)庫(kù)的事務(wù)日志文件的增長(zhǎng)大小改為按1mb字節(jié)增長(zhǎng),再使用sp

26、_ helpdb存儲(chǔ)過(guò)程查看student數(shù)據(jù)庫(kù)的信息。實(shí)驗(yàn)內(nèi)容2:使用alter database命令為student數(shù)據(jù)庫(kù)添加一個(gè)新的數(shù)據(jù)文件,文件邏輯名為student_data3,初始大小為2mb,增長(zhǎng)值為1mb,其他屬性默認(rèn)。 2數(shù)據(jù)庫(kù)的收縮數(shù)據(jù)庫(kù)收縮可以縮小數(shù)據(jù)庫(kù)的空閑空間。可以使用企業(yè)管理器或sql語(yǔ)言對(duì)數(shù)據(jù)庫(kù)進(jìn)行收縮工作。收縮數(shù)據(jù)庫(kù)使用的sql語(yǔ)言是dbcc shrinkdatabase命令。也可以使用alter database的set子句或sp_dboption將數(shù)據(jù)庫(kù)設(shè)為自動(dòng)收縮。實(shí)驗(yàn)內(nèi)容4:將student數(shù)據(jù)庫(kù)設(shè)為自動(dòng)收縮。提示:在查詢(xún)分析器中輸入如下sql腳本:cr

27、eate database bookon(name=book1,filename=d:book1.mdf,size=5,maxsize=15,filegrowth=2),(name=book2,filenamed:book2.ndf,size=5,maxsize=10,filegrowth=10%)log on3數(shù)據(jù)庫(kù)的更名更改數(shù)據(jù)庫(kù)的名稱(chēng)應(yīng)使用sp_renamedb存儲(chǔ)過(guò)程。實(shí)驗(yàn)內(nèi)容5:將student數(shù)據(jù)庫(kù)改名為stu。4數(shù)據(jù)庫(kù)選項(xiàng)的配置可以使用 alter database 語(yǔ)句的 set 子句、sp_dboption 系統(tǒng)存儲(chǔ)過(guò)程,或者在某些情況下使用 sql server 企業(yè)管理器

28、設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)。實(shí)驗(yàn)內(nèi)容6:使用企業(yè)管理器將stu數(shù)據(jù)庫(kù)設(shè)為只讀。實(shí)驗(yàn)內(nèi)容7:使用sp_dboption存儲(chǔ)過(guò)程取消stu數(shù)據(jù)庫(kù)的只讀設(shè)置。5數(shù)據(jù)庫(kù)的刪除刪除數(shù)據(jù)庫(kù)可以使用企業(yè)管理器或drop database命令。實(shí)驗(yàn)內(nèi)容8:使用drop database命令將stu數(shù)據(jù)庫(kù)刪除。實(shí)驗(yàn)思考:1、若需修改數(shù)據(jù)庫(kù)文件的大小,可以使用的方法有哪些?若要求使用t-sql語(yǔ)言,則命令應(yīng)如何編寫(xiě)?2、能不能刪除master數(shù)據(jù)庫(kù)?若一個(gè)用戶數(shù)據(jù)庫(kù)當(dāng)前正在被訪問(wèn),能不能被刪除?實(shí)驗(yàn)四 表的操作實(shí)驗(yàn)?zāi)康?1. 掌握使用企業(yè)管理器和t-sql語(yǔ)句創(chuàng)建表。2. 掌握使用企業(yè)管理器和t-sql語(yǔ)句修改表的結(jié)構(gòu)。3.

29、 掌握使用企業(yè)管理器和t-sql語(yǔ)句實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作。實(shí)驗(yàn)內(nèi)容: 1使用企業(yè)管理器按下表結(jié)構(gòu)創(chuàng)建表表名:course屬性名稱(chēng)屬性描述數(shù)據(jù)類(lèi)型字節(jié)數(shù)空否備注courseid課程號(hào)int4否coursename課程名稱(chēng)varchar20否category課程類(lèi)別char8period學(xué)時(shí)數(shù)smallint2credit學(xué)分tinyint12使用t-sql語(yǔ)句按下表結(jié)構(gòu)創(chuàng)建表表名:student屬性名稱(chēng)屬性描述數(shù)據(jù)類(lèi)型字節(jié)數(shù)空否備注studentnum學(xué)號(hào)char9否studentname姓名varchar8否sex性別bit1birthday出生日期smalldatetime4classid班級(jí)號(hào)

30、int4表名:class屬性名稱(chēng)屬性描述數(shù)據(jù)類(lèi)型字節(jié)數(shù)空否備注classid班級(jí)號(hào)int4否classname班級(jí)名varchar16否department系int4classteacher班主任varchar10classmonitor班長(zhǎng)char93.請(qǐng)?jiān)O(shè)計(jì)并創(chuàng)建系表、成績(jī)表及教師表4使用企業(yè)管理器修改表的結(jié)構(gòu)使用企業(yè)管理器將第1題所建立的course表中的category字段修改為varchar(20),為period和credit字段默認(rèn)值為0。提示:在查詢(xún)分析器中輸入如下sql腳本:create database bookon(name=book1,filename=d:book1.

31、mdf,size=5,maxsize=15,filegrowth=2),(name=book2,filenamed:book2.ndf,size=5,maxsize=10,filegrowth=10%)log on5使用t-sql語(yǔ)句修改表的結(jié)構(gòu)使用t-sql語(yǔ)句為student表添加nation(民族)字段和stature(身高)字段,字段數(shù)據(jù)類(lèi)型自定。6使用企業(yè)管理器實(shí)現(xiàn)對(duì)數(shù)據(jù)的操作使用企業(yè)管理器按下表向course添加數(shù)據(jù)。課程號(hào)課程名稱(chēng)課程類(lèi)別學(xué)時(shí)數(shù)學(xué)分1哲學(xué)公共 3622實(shí)用英語(yǔ)(1)公共 7233實(shí)用英語(yǔ)(2)公共 7234計(jì)算機(jī)應(yīng)用基礎(chǔ)公共 10255c語(yǔ)言程序設(shè)計(jì)專(zhuān)業(yè)基礎(chǔ)102

32、56關(guān)系數(shù)據(jù)庫(kù)技術(shù)基礎(chǔ)專(zhuān)業(yè)基礎(chǔ)10257.使用t-sql語(yǔ)句分別向?qū)W生表、班級(jí)表、系表、成績(jī)表及教師表錄入至少5條數(shù)據(jù)。實(shí)驗(yàn)思考:1、刪除表的命令是什么?要將實(shí)驗(yàn)中的student表刪除,命令應(yīng)怎樣寫(xiě)?2、要將course表中的學(xué)分字段刪除,相應(yīng)的sql語(yǔ)句怎么寫(xiě)?實(shí)驗(yàn)五 表的完整性約束與索引實(shí)驗(yàn)?zāi)康?1. 理解數(shù)據(jù)完整性的概念和sql server實(shí)現(xiàn)數(shù)據(jù)完整性的機(jī)制。2. 掌握使用企業(yè)管理器和t-sql語(yǔ)句定義數(shù)據(jù)完整性,重點(diǎn)掌握主鍵、外鍵、檢查、唯一和默認(rèn)值等約束的定義和使用。實(shí)驗(yàn)內(nèi)容: 1使用t-sql語(yǔ)句按下表結(jié)構(gòu)創(chuàng)建表(在創(chuàng)建表時(shí)定義約束)表名:grade屬性名稱(chēng)屬性描述數(shù)據(jù)類(lèi)型字

33、節(jié)數(shù)空否約束備注studentnum學(xué)號(hào)char9否主鍵courseid課程號(hào)int4否主鍵dailygrade平時(shí)成績(jī)decimal5,1不小于0且不大于20practicegrade實(shí)踐成績(jī)decimal5,1不小于0且不大于30testgrade期末成績(jī)decimal5,1不小于0且不大于50grade總評(píng)由平時(shí)成績(jī)(20%)、實(shí)踐成績(jī)(30%)和期末成績(jī)(50%)計(jì)算而來(lái)2使用t-sql語(yǔ)句修改表的結(jié)構(gòu)(1)為班級(jí)表classinfo添加入學(xué)時(shí)間enrolldate字段,并定義入學(xué)時(shí)間不小于2001年9月1日。(2)為班級(jí)表classinfo定義主鍵約束,定義班級(jí)號(hào)classid為主鍵

34、。(3)為班級(jí)表classinfo的classname定義唯一約束。3.創(chuàng)建索引(1) 使用企業(yè)管理器為學(xué)生表student創(chuàng)建一個(gè)以studentnum為索引關(guān)鍵字的惟一聚簇索引。(2) 將上一步所建立的索引名稱(chēng)修改為new_index。(3) 將前述所建立的new_index索引刪除。(4) 使用t-sql語(yǔ)句為教師表teacher創(chuàng)建一個(gè)名為teacher_index的惟一非聚簇索引,索引關(guān)鍵字為教師編號(hào),升序,填充因子為80%。(5) 使用t-sql語(yǔ)句為學(xué)生表student創(chuàng)建一個(gè)名為student_index的惟一非聚簇復(fù)合索引,索引關(guān)鍵字為學(xué)號(hào),升序,填充因子為50%。(6) 使

35、用t-sql語(yǔ)句將教師表中的teacher_index刪除。4.創(chuàng)建外鍵(1)為學(xué)生表student定義外鍵約束,使classid參照班級(jí)表classinfo中的classid,并為約束設(shè)置級(jí)聯(lián)更新。(2)為成績(jī)表定義外鍵約束,使studentnum參照student中的studentnum,并為約束設(shè)置級(jí)聯(lián)更新。實(shí)驗(yàn)思考:1、 實(shí)驗(yàn)四中你所創(chuàng)建的表中,還有需要?jiǎng)?chuàng)建約束的嗎?請(qǐng)分析實(shí)際需并創(chuàng)建。2、 實(shí)驗(yàn)四中你所創(chuàng)建的表中,還有需要?jiǎng)?chuàng)建外鍵約束的嗎?請(qǐng)分析實(shí)際需并創(chuàng)建。實(shí)驗(yàn)六 簡(jiǎn)單查詢(xún)實(shí)驗(yàn)?zāi)康模?. 熟悉select語(yǔ)句的基本語(yǔ)法,掌握各子句的基本用法。2. 能使用select語(yǔ)句進(jìn)行簡(jiǎn)單查詢(xún)

36、。實(shí)驗(yàn)內(nèi)容:現(xiàn)有以下關(guān)系:student(sno,sname,sex,birthday,class,scode)teacher(tno,tname,sex,birthday,prof,depart)specialty(scode,spname)course(cno,cname,tno)score(sno,cno,degree)其中:學(xué)生表student中有屬性sno學(xué)號(hào),sname學(xué)生姓名,sex性別,birthday出生日期,class班級(jí),scode專(zhuān)業(yè)代碼;教師表teacher中有屬性tno教師號(hào),tname教師姓名,sex性別,birthday出生日期,prof職稱(chēng),depart系別;

37、專(zhuān)業(yè)表specialty中有屬性scode專(zhuān)業(yè)代碼,spname專(zhuān)業(yè)名稱(chēng);課程表course中有屬性cno課程號(hào),cname課程名,tno教師號(hào);成績(jī)表score中有屬性sno學(xué)號(hào),cno課程號(hào),degree成績(jī)。完成以下查詢(xún):1、從教師數(shù)據(jù)表teacher查詢(xún)出所有教師的教師編號(hào),姓名,性別和出生日期,并使用中文列標(biāo)題。2、查詢(xún)學(xué)生表student的姓名中所有姓王的學(xué)生的基本信息。3、查詢(xún)學(xué)生表student的姓趙、錢(qián)、孫、李的學(xué)生的基本信息。4、查詢(xún)學(xué)號(hào)是0601002或0601003或0601005或0601027的學(xué)生的基本信息。5、從成績(jī)表中查詢(xún)所有成績(jī)不及格學(xué)生的學(xué)號(hào)和對(duì)應(yīng)課程號(hào)。

38、6、查詢(xún)出學(xué)習(xí)20號(hào)課程的成績(jī)前10名同學(xué)的學(xué)號(hào)和總評(píng)。實(shí)驗(yàn)七 高級(jí)查詢(xún)實(shí)驗(yàn)?zāi)康模?掌握多表查詢(xún)、分組查詢(xún)、聯(lián)合查詢(xún)和嵌套查詢(xún)的使用。2掌握使用企業(yè)管理器進(jìn)行查詢(xún)的方法。實(shí)驗(yàn)內(nèi)容:student(sno,sname,sex,birthday,class,scode)teacher(tno,tname,sex,birthday,prof,depart)specialty(scode,spname)course(cno,cname,tno)score(sno,cno,degree)1、查詢(xún)成績(jī)表中每位學(xué)生的學(xué)號(hào)和各科的總成績(jī),并按總成績(jī)降序排列。2、查詢(xún)專(zhuān)業(yè)為計(jì)算機(jī)應(yīng)用的學(xué)生的學(xué)號(hào)、姓名和專(zhuān)業(yè)代碼

39、(用兩種方法實(shí)現(xiàn))。3、查找課程表中沒(méi)有學(xué)生選修的課程的課程號(hào)和課程名稱(chēng)(用兩種方法實(shí)現(xiàn))。4、查詢(xún)課程名稱(chēng)中含有數(shù)據(jù)的課程的課程號(hào)、課程名稱(chēng)以及學(xué)習(xí)該課程的學(xué)生的學(xué)號(hào)和成績(jī)。5、查詢(xún)成績(jī)?cè)?080之間,或者課程號(hào)為03的學(xué)生的學(xué)號(hào)、姓名、性別和班級(jí)。思考與練習(xí):(1)列出student表中所有記錄的name、sex和class列(2)列出教師所有的單位(不重復(fù))(3)列出student表的所有記錄(以學(xué)號(hào)、姓名等)(4)輸出成績(jī)?cè)?0-80之間的所有記錄(5)輸出成績(jī)?yōu)?5,86和88的記錄(6)輸出班級(jí)為95001或性別為女 的同學(xué)(7)以class降序輸出student的所有記錄(8)以

40、cno升序、degree降序輸出score的所有記錄。(9)輸出95001班級(jí)的學(xué)生人數(shù)(10)輸出score中成績(jī)最高的學(xué)號(hào)和課程號(hào)(11)輸出3-105號(hào)課程的平均分(12)輸出至少有5個(gè)同學(xué)選修的并以3開(kāi)頭的課程號(hào)的平均分。(13)輸出最低分大于70分最高分小于90分的學(xué)生學(xué)號(hào)(14)輸出所有學(xué)生的name、sno和degree(15)輸出所有學(xué)生的sno、cname、degree(16)輸出所有同學(xué)的name,cname,degree(17)輸出95001班級(jí)所選課程及其平均分(19)輸出選修3-105課程的成績(jī)高于109號(hào)同學(xué)成績(jī)的所有同學(xué)(22)列出與108號(hào)同學(xué)同年出生的所有學(xué)生

41、的no、name和birthday。(23)顯示張三教師任課的學(xué)生成績(jī)(24)顯示選修人數(shù)多于5人的課程的教師姓名(25)顯示95033和95031班全體學(xué)生的記錄。(26)列出存在有85分以上成績(jī)的課程編號(hào)(27)列出“計(jì)算機(jī)系”教師所教課程的成績(jī)表。(28)查詢(xún)每個(gè)學(xué)生的選修課程數(shù)、總成績(jī)、平均成績(jī)。(29)列出選修編號(hào)為3-105課程且成績(jī)至少高于選修課程編號(hào)為3-245的同學(xué)的 cno,no和degree.(33)列出成績(jī)比該課程平均成績(jī)低的同學(xué)的成績(jī)(34)列出所有任課教師的name和depart(35)列出未講課教師的name和depart(36)輸出至少有兩名男同學(xué)的班級(jí)編號(hào)、(

42、37)輸出student中不姓王的同學(xué)(38)輸出student中每個(gè)學(xué)生的姓名和年齡(39)輸出student中最大和最小的birthday日期值(40)以班號(hào)和年齡從大到小顯示student中的所有記錄(41)輸出男教師所上課程名稱(chēng)(42)輸出每門(mén)課程最高分同學(xué)的sno,cno和degree(43)輸出與“李軍”同性別的所有同學(xué)的姓名(44)輸出與“李軍”同性別并同班的所有同學(xué)的姓名(45)輸出選修“計(jì)算機(jī)導(dǎo)論”課程的男同學(xué)的成績(jī)實(shí)驗(yàn)八 視圖的使用實(shí)驗(yàn)?zāi)康模?. 理解視圖的基本概念,掌握視圖的創(chuàng)建、修改和刪除。2. 掌握對(duì)視圖進(jìn)行查詢(xún)和更新。實(shí)驗(yàn)內(nèi)容:1、使用企業(yè)管理器創(chuàng)建一個(gè)名為“vie

43、w_1”的視圖,內(nèi)容是顯示學(xué)生表student中信計(jì)08班的學(xué)生的學(xué)號(hào)、姓名、性別和專(zhuān)業(yè)名稱(chēng)。2、使用查詢(xún)分析器創(chuàng)建一個(gè)名為“view_2”的視圖,內(nèi)容是顯示學(xué)生表中沒(méi)有選修課程的學(xué)生的學(xué)號(hào)、姓名和班級(jí),并且為該視圖加密。3、使用查詢(xún)分析器修改名為“view_1”的視圖,內(nèi)容修改為顯示學(xué)生表中男生的學(xué)號(hào)、姓名、性別和班級(jí),并且以后所有對(duì)該視圖的更新操作都必須符合所設(shè)定的條件。 4、查詢(xún)視圖“view_1”中班級(jí)為信計(jì)071的所有信息。5、向視圖“view_1”中的所有字段插入一條記錄。實(shí)驗(yàn)九 存儲(chǔ)過(guò)程實(shí)驗(yàn)?zāi)康模?. 理解存儲(chǔ)過(guò)程的概念,掌握各種存儲(chǔ)過(guò)程的創(chuàng)建方法。2. 掌握查看、修改和刪除存儲(chǔ)

44、過(guò)程的方法。3. 掌握?qǐng)?zhí)行存儲(chǔ)過(guò)程的方法。實(shí)驗(yàn)內(nèi)容:1、創(chuàng)建一個(gè)名為“proc_1”的存儲(chǔ)過(guò)程,用于查看學(xué)生表的所有信息。然后調(diào)用該存儲(chǔ)過(guò)程。2、創(chuàng)建一個(gè)名為“proc_2”的存儲(chǔ)過(guò)程,用于向?qū)W生表的所有字段添加一條記錄,記錄內(nèi)容由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過(guò)程。3、創(chuàng)建一個(gè)名為“proc_3”的存儲(chǔ)過(guò)程,用于刪除學(xué)生表中指定學(xué)號(hào)的記錄,具體學(xué)號(hào)由調(diào)用時(shí)決定。然后調(diào)用該存儲(chǔ)過(guò)程。4、修改存儲(chǔ)過(guò)程“proc_3”,用于查詢(xún)不小于指定成績(jī)的學(xué)生的基本信息,具體成績(jī)由調(diào)用時(shí)決定。5、創(chuàng)建一個(gè)名為“proc_4”的存儲(chǔ)過(guò)程,用于求一個(gè)3位整數(shù)的反序數(shù)。例如123的反序數(shù)為321。6、設(shè)計(jì)存儲(chǔ)過(guò)程,實(shí)現(xiàn)

45、根據(jù)傳遞參數(shù)(學(xué)號(hào)和課程號(hào))查詢(xún)指定學(xué)生和課程的成績(jī)。實(shí)驗(yàn)十 觸發(fā)器實(shí)驗(yàn)?zāi)康模?. 理解觸發(fā)器的概念與類(lèi)型。2. 掌握創(chuàng)建、修改和刪除觸發(fā)器的方法。3. 掌握使用觸發(fā)器維護(hù)數(shù)據(jù)完整性的方法。預(yù)備知識(shí) 一. 觸發(fā)器的概念觸發(fā)器是一種特殊類(lèi)型的存儲(chǔ)過(guò)程,與表緊密相連。它是通過(guò)事件進(jìn)觸發(fā)而被執(zhí)行的一段 t-sql語(yǔ)句,能進(jìn)行復(fù)雜的邏輯處理。當(dāng)用戶操作表中數(shù)據(jù)時(shí),觸發(fā)器將自動(dòng)執(zhí)行。觸發(fā)器的作用: 級(jí)聯(lián)修改數(shù)據(jù)庫(kù)中的相關(guān)表 執(zhí)行比核查約束更為復(fù)雜的約束操作 拒絕或回滾違反參考完整性的操作 比較表修改前后數(shù)據(jù)之間的差別,并根據(jù)差別采取相應(yīng)的操作 二觸發(fā)器的分類(lèi):1、after 類(lèi)型觸發(fā)器這類(lèi)觸發(fā)器將在表中

46、的數(shù)據(jù)變動(dòng)( insert 、update、delete)完成以后才被激發(fā),是為了對(duì)變動(dòng)的數(shù)據(jù)進(jìn)行檢查。如果發(fā)現(xiàn)錯(cuò)誤,將拒絕或回滾變動(dòng)的數(shù)據(jù)(rollback),一個(gè)表可以創(chuàng)建多個(gè)after 類(lèi)型的觸發(fā)器。 2、instead of 類(lèi)型觸發(fā)器instead of觸發(fā)器是sql server2000中新增的功能,這種類(lèi)型的觸發(fā)器將在數(shù)據(jù)變動(dòng)之前被激活,并取代數(shù)據(jù)的操作( insert 、update、delete ),轉(zhuǎn)而去執(zhí)行觸發(fā)器定義的操作。注意:觸發(fā)器是針對(duì)某一具體操作觸發(fā)的,所以在定義觸發(fā)器時(shí)必須指定觸發(fā)操作: insert 、update、delete。至少指定一種。如果時(shí)after

47、觸發(fā)器可以同時(shí)指定多個(gè),如果是instead of觸發(fā)器只能指定一個(gè)。2、觸發(fā)器的工作原理當(dāng)向數(shù)據(jù)表執(zhí)行insert、update、delete語(yǔ)句時(shí),若該表設(shè)置了觸發(fā)器,則sql server將根據(jù)不同的操作自動(dòng)生成一個(gè)或兩個(gè)臨時(shí)表:inserted表、deleted表,同時(shí)將操作數(shù)據(jù)送入inserted表或deleted表。 inserted表和deleted表是sql server為觸發(fā)器創(chuàng)建的臨時(shí)表,存儲(chǔ)在內(nèi)存中,不是存儲(chǔ)在數(shù)據(jù)庫(kù)中,不允許用戶直接對(duì)其修改。它的表結(jié)構(gòu)和定義觸發(fā)器相關(guān)表的結(jié)構(gòu)相同。觸發(fā)器工作完成后,與之相關(guān)的邏輯表將自動(dòng)刪除。1、insert觸發(fā)器的工作原理當(dāng)使用ins

48、ert語(yǔ)句向數(shù)據(jù)表插入一條記錄,相關(guān)的insert觸發(fā)器將自動(dòng)觸發(fā)執(zhí)行。此時(shí),insert觸發(fā)器自動(dòng)創(chuàng)建一個(gè)inserted表,插入的記錄被同時(shí)添加到inserted表和數(shù)據(jù)表中,觸發(fā)器檢測(cè)inserted表和數(shù)據(jù)表用于確定insert觸發(fā)器中的操作是否執(zhí)行。2、delete觸發(fā)器的工作原理當(dāng)使用 delete語(yǔ)句向數(shù)據(jù)表刪除記錄時(shí),與之相關(guān)的delete觸發(fā)器將自動(dòng)觸發(fā)執(zhí)行。此時(shí) delete觸發(fā)器自動(dòng)創(chuàng)建一個(gè)deleted表,刪除的記錄從數(shù)據(jù)表中被刪除,并放入deleted表中。因此,deleted表和數(shù)據(jù)表沒(méi)有相同的行,觸發(fā)器檢測(cè)deleted表和數(shù)據(jù)表用于確定delete觸發(fā)器中的操作

49、是否執(zhí)行。3、update觸發(fā)器的工作原理update語(yǔ)句相當(dāng)于在數(shù)據(jù)表中先執(zhí)行了delete操作,后執(zhí)行了insert操作,即先刪除舊記錄,馬上插入新記錄。當(dāng)數(shù)據(jù)表使用update語(yǔ)句修改記錄時(shí),update觸發(fā)器將自動(dòng)觸發(fā)執(zhí)行。此時(shí),updatet觸發(fā)器自動(dòng)創(chuàng)建一個(gè)inserted表和deleted表,將要?jiǎng)h除的記錄放入deleted表,將新的記錄放入inserted表。因此,觸發(fā)器檢測(cè)inserted表、deleted表和數(shù)據(jù)表,用于確定是否修改了數(shù)據(jù)行和update觸發(fā)器中的操作是否執(zhí)行。最后,當(dāng)確定觸發(fā)器中的操作是不可執(zhí)行的,用 rollback語(yǔ)句撤銷(xiāo)所有事務(wù),使數(shù)據(jù)表回來(lái)語(yǔ)句執(zhí)行

50、前的狀態(tài)。 三.使用t-sql語(yǔ)言管理觸發(fā)器1、創(chuàng)建觸發(fā)器的語(yǔ)句格式: create trigger trigger_name ontable|view with encryption for | after | instead of update, insert , delete as sql_statement,n參數(shù)說(shuō)明: trigger_name:指定觸發(fā)器的名稱(chēng)。雖然觸發(fā)器時(shí)基于數(shù)據(jù)表創(chuàng)建的,但是它在數(shù)據(jù)庫(kù)中是唯一的。 table|view:創(chuàng)建觸發(fā)器的表或視圖。只有instead of觸發(fā)器才能基于視圖創(chuàng)建。 with encryption:加密觸發(fā)器定義語(yǔ)句。和用于視圖的加密語(yǔ)句

51、一樣,也是不可逆的。 for | after | instead of:指定觸發(fā)器的類(lèi)型。如果指定for關(guān)鍵字和after關(guān)鍵字,表示創(chuàng)建的是after觸發(fā)器;如果指定instead of,表示創(chuàng)建的是instead of觸發(fā)器。 update, insert , delete :指定在表上執(zhí)行哪些數(shù)據(jù)修改語(yǔ)句時(shí)將激活觸發(fā)器。必須指定一個(gè)選項(xiàng)。允許以任意順序組合的這些關(guān)鍵字。instead of觸發(fā)器中每一種操作只能存在一個(gè)。 sql_statement:定義觸發(fā)器的語(yǔ)句(文本)。指定過(guò)程要執(zhí)行的操作。 四. 查看觸發(fā)器定義exec sp_helptext trigger_name'參

52、數(shù)說(shuō)明:trigger_name:觸發(fā)器的名稱(chēng)說(shuō)明:如果在定義觸發(fā)器時(shí)對(duì)定義文本進(jìn)行加密處理,則不能使用任何方法查看觸發(fā)器的定義文本。 五 修改、刪除觸發(fā)器對(duì)現(xiàn)存的觸發(fā)器機(jī)進(jìn)行修改,可以使用 alter tigger語(yǔ)句,語(yǔ)法格式如下: alter trigger trigger_name ontable|view with encryption for | after | instead of update, insert , delete as sql_statement,n 可以發(fā)現(xiàn)修改觸發(fā)器的語(yǔ)句只是將創(chuàng)建觸發(fā)器語(yǔ)句的 create trigger改成alter trigger,其他都

53、是一樣的。但是觸發(fā)器的名稱(chēng)必須是已經(jīng)存在的。刪除存儲(chǔ)過(guò)程可以使用 drop proc procedure_name。 實(shí)驗(yàn)內(nèi)容:1、創(chuàng)建一個(gè)名為“trig_1”的觸發(fā)器,當(dāng)向?qū)W生表添加記錄時(shí),該觸發(fā)器自動(dòng)顯示學(xué)生表的所有信息。2、創(chuàng)建一個(gè)名為“trig_2”的觸發(fā)器,當(dāng)試圖向?qū)W生表添加、修改或刪除記錄時(shí),該觸發(fā)器自動(dòng)顯示如下信息:“對(duì)不起,你無(wú)權(quán)進(jìn)行更新操作!”。3、修改“trig_2”的觸發(fā)器,當(dāng)向?qū)W生表修改記錄時(shí),該觸發(fā)器自動(dòng)顯示修改前和修改后的記錄。4、創(chuàng)建一個(gè)名為“trig_3”的觸發(fā)器,當(dāng)向?qū)W生表刪除記錄時(shí),該觸發(fā)器自動(dòng)刪除成績(jī)表中與之相關(guān)的所有記錄。5、創(chuàng)建一個(gè)名為“trig_4”

54、的觸發(fā)器,當(dāng)向成績(jī)表添加記錄時(shí),該觸發(fā)器自動(dòng)顯示與該記錄相關(guān)的學(xué)生的學(xué)號(hào)、姓名和班級(jí)。(本題要求創(chuàng)建之前先判斷該觸發(fā)器是否存在)實(shí)驗(yàn)十一 數(shù)據(jù)庫(kù)的備份與恢復(fù)實(shí)驗(yàn)?zāi)康模?. 理解備份的基本概念,掌握各種備份數(shù)據(jù)庫(kù)的方法。2. 掌握如何從備份中恢復(fù)數(shù)據(jù)庫(kù)。實(shí)驗(yàn)內(nèi)容:1、使用企業(yè)管理器創(chuàng)建一個(gè)名為“stubak”的備份設(shè)備(文件路徑及文件名自定),然后把“學(xué)生信息”數(shù)據(jù)庫(kù)完全備份到該備份設(shè)備中。備份完畢后使用備份對(duì)該數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。2、使用企業(yè)管理器在以上數(shù)據(jù)庫(kù)完全備份的基礎(chǔ)上對(duì)該數(shù)據(jù)庫(kù)進(jìn)行差異備份,并且追加到上述備份設(shè)備中。然后使用備份對(duì)該數(shù)據(jù)庫(kù)進(jìn)行恢復(fù)。3、使用t-sql語(yǔ)言創(chuàng)建一個(gè)名為“pubsbak”的備份設(shè)備,該設(shè)備在硬盤(pán)中所對(duì)應(yīng)的完整文件名為“d:sqlpubs.bak”。4、使用t-sql語(yǔ)言把“northwind”數(shù)據(jù)庫(kù)備份到“d:sqlnorth.bak”文件中。5、使用t-sql語(yǔ)言把上題的

溫馨提示

  • 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)論