版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目七
存儲(chǔ)過(guò)程和觸發(fā)器任務(wù)1存儲(chǔ)過(guò)程任務(wù)2觸發(fā)器任務(wù)1存儲(chǔ)過(guò)程任務(wù)引入小林正在創(chuàng)建一個(gè)大型數(shù)據(jù)庫(kù)系統(tǒng),其中創(chuàng)建完成某一特定功能的存儲(chǔ)過(guò)程。那么,怎么創(chuàng)建存儲(chǔ)過(guò)程?怎么使用存儲(chǔ)過(guò)程?存儲(chǔ)過(guò)程有哪些參數(shù)呢?知識(shí)準(zhǔn)備存儲(chǔ)過(guò)程存儲(chǔ)在數(shù)據(jù)庫(kù)內(nèi),可由應(yīng)用程序通過(guò)一個(gè)調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其他強(qiáng)大的編程功能。存儲(chǔ)過(guò)程可以使得數(shù)據(jù)庫(kù)的管理、顯示關(guān)于數(shù)據(jù)庫(kù)及其用戶信息的工作容易得多。存儲(chǔ)過(guò)程包含程序流、邏輯以及對(duì)數(shù)據(jù)庫(kù)的查詢。它們可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值??梢猿鲇谌魏问褂肧QL語(yǔ)句的目的來(lái)使用存儲(chǔ)過(guò)程,它具有以下優(yōu)點(diǎn):可以在單個(gè)存儲(chǔ)過(guò)程中執(zhí)行一系列SQL語(yǔ)句??梢詮淖约旱拇鎯?chǔ)過(guò)程內(nèi)引用其他存儲(chǔ)過(guò)程,這可以簡(jiǎn)化一系列復(fù)雜語(yǔ)句。存儲(chǔ)過(guò)程在創(chuàng)建時(shí)即在服務(wù)器上進(jìn)行編譯,所以執(zhí)行起來(lái)比單個(gè)SQL語(yǔ)句快,且能減少網(wǎng)絡(luò)通信的負(fù)擔(dān)。一、創(chuàng)建存儲(chǔ)過(guò)程要使用存儲(chǔ)過(guò)程,首先要?jiǎng)?chuàng)建一個(gè)存儲(chǔ)過(guò)程。使用CREATEPROCEDURE語(yǔ)句創(chuàng)建存儲(chǔ)過(guò)程。其中,各參數(shù)含義如下:procedure_name:新存儲(chǔ)過(guò)程的名稱。number:是可選的整數(shù),用來(lái)對(duì)同名的過(guò)程分組,以便用一條DROPPROCEDURE語(yǔ)句將同組的過(guò)程一起除去。@parameter:過(guò)程中的參數(shù)。data_type:參數(shù)的數(shù)據(jù)類型。VARYING:指定作為輸出參數(shù)支持的結(jié)果集(由存儲(chǔ)過(guò)程動(dòng)態(tài)構(gòu)造,內(nèi)容可以變化)。僅適用于游標(biāo)參數(shù)。Default:參數(shù)的默認(rèn)值。OUTPUT:表明參數(shù)是返回參數(shù)。{RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}:RECOMPILE表明SQLServer不會(huì)緩存該過(guò)程的計(jì)劃,該過(guò)程將在運(yùn)行時(shí)重新編譯。ENCRYPTION表示SQLServer加密syscomments表中包含CREATEPROCEDURE語(yǔ)句文本的條目。FORREPLICATION:指定不能在訂閱服務(wù)器上執(zhí)行為復(fù)制創(chuàng)建的存儲(chǔ)過(guò)程。sql_statement:過(guò)程中要包含的任意數(shù)目和類型的SQL語(yǔ)句。二、執(zhí)行存儲(chǔ)過(guò)程執(zhí)行存儲(chǔ)過(guò)程使用EXECUTE語(yǔ)句其中,各參數(shù)含義如下:@return_status:是一個(gè)可選的整型變量,保存存儲(chǔ)過(guò)程的返回狀態(tài)。procedure_name:是調(diào)用的存儲(chǔ)過(guò)程的名稱。number:是可選的整數(shù),用于將相同名稱的過(guò)程進(jìn)行組合,使得它們可以用一句DROPPROCEDURE語(yǔ)句除去。該參數(shù)不能用于擴(kuò)展存儲(chǔ)過(guò)程。@procedure_name_var:是局部定義變量名,代表存儲(chǔ)過(guò)程名稱。@parameter:是過(guò)程參數(shù),在CREATEPROCEDURE語(yǔ)句中定義。value:是過(guò)程中參數(shù)的值。OUTPUT:指定存儲(chǔ)過(guò)程必須返回一個(gè)參數(shù)。DEFAULT:根據(jù)過(guò)程的定義,提供參數(shù)的默認(rèn)值。案例——?jiǎng)?chuàng)建存儲(chǔ)過(guò)程stud_grade,用于檢索所有學(xué)生的成績(jī)記錄案例——使用系統(tǒng)存儲(chǔ)過(guò)程查看EMIS數(shù)據(jù)庫(kù)和學(xué)生表的相關(guān)信息檢索所有學(xué)生的成績(jī)記錄
查看EMIS數(shù)據(jù)庫(kù)和學(xué)生表的相關(guān)信息三、存儲(chǔ)過(guò)程的參數(shù)在創(chuàng)建和使用存儲(chǔ)過(guò)程時(shí),其參數(shù)是非常重要的。下面詳細(xì)討論存儲(chǔ)過(guò)程的參數(shù)傳遞和返回。1.使用參數(shù)在調(diào)用存儲(chǔ)過(guò)程時(shí),有兩種傳遞參數(shù)的方法。2.使用默認(rèn)參數(shù)創(chuàng)建存儲(chǔ)過(guò)程時(shí),可以為參數(shù)提供一個(gè)默認(rèn)值,默認(rèn)值必須為常量或者NULL。3.使用返回參數(shù)在創(chuàng)建存儲(chǔ)過(guò)程時(shí),可以定義返回參數(shù)。案例——?jiǎng)?chuàng)建存儲(chǔ)過(guò)程average,返回兩個(gè)參數(shù)@st_name和@st_avg,分別代表了姓名和平均分。查詢學(xué)號(hào)為“17043120”的學(xué)生姓名和平均分4.存儲(chǔ)過(guò)程的返回值存儲(chǔ)過(guò)程在執(zhí)行后都會(huì)返回一個(gè)整型值。5.存儲(chǔ)過(guò)程的刪除不再需要存儲(chǔ)過(guò)程時(shí)可將其刪除。通過(guò)DROPPROCEDURE語(yǔ)句來(lái)完成。任務(wù)2觸發(fā)器任務(wù)引入小林想要保證數(shù)據(jù)庫(kù)系統(tǒng)中數(shù)據(jù)完整性,還想在多個(gè)表中添加、更新或刪除行時(shí),保留表之間所定義的關(guān)系,他咨詢師兄,師兄告訴他可以在程序中設(shè)置一個(gè)觸發(fā)器。那么,怎么創(chuàng)建觸發(fā)器?怎么使用觸發(fā)器呢?知識(shí)準(zhǔn)備觸發(fā)器在INSERT、UPDATE或DELETE語(yǔ)句對(duì)表或視圖進(jìn)行修改時(shí)會(huì)被自動(dòng)執(zhí)行。觸發(fā)器可以查詢其他表,并可以包含復(fù)雜的SQL語(yǔ)句。一個(gè)表可以有多個(gè)觸發(fā)器。觸發(fā)器具有如下優(yōu)點(diǎn):觸發(fā)器可通過(guò)數(shù)據(jù)庫(kù)中的相關(guān)表實(shí)現(xiàn)級(jí)聯(lián)更改。但是,通過(guò)級(jí)聯(lián)引用完整性約束可以更有效地執(zhí)行這些更改。觸發(fā)器可以強(qiáng)制比用CHECK約束定義的約束更為復(fù)雜的約束。觸發(fā)器也可以評(píng)估數(shù)據(jù)修改前后的表狀態(tài),并根據(jù)其差異采取對(duì)策。一個(gè)表中的多個(gè)同類觸發(fā)器(INSERT、UPDATE或DELETE)允許采取多個(gè)不同的對(duì)策,以響應(yīng)同一個(gè)修改語(yǔ)句。確保數(shù)據(jù)規(guī)范化。一、創(chuàng)建觸發(fā)器1.使用SSM創(chuàng)建觸發(fā)器(1)在資源管理器相應(yīng)的數(shù)據(jù)庫(kù)中的表節(jié)點(diǎn)下選擇“觸發(fā)器”,右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建觸發(fā)器”選項(xiàng),如圖所示。(2)打開對(duì)應(yīng)的窗口,在窗口中修改創(chuàng)建觸發(fā)器的模板代碼,如圖所示。2.使用T-SQL創(chuàng)建觸發(fā)器
快捷菜單
創(chuàng)建觸發(fā)器模板二、使用觸發(fā)器在SQLServer中,除了INSERT、UPDATE和DELETE3種觸發(fā)器外,還提供了INSTEADOFINSERT、INSTEADOFUPDATE和INSTEADOFDELETE觸發(fā)器。1.INSERT觸發(fā)器當(dāng)向表中插入記錄時(shí),INSERT觸發(fā)器被執(zhí)行。一般情況下,這種觸發(fā)器常用來(lái)檢查插入數(shù)據(jù)是否滿足要求。案例——?jiǎng)?chuàng)建一個(gè)觸發(fā)器,當(dāng)執(zhí)行INSERT操作時(shí),該觸發(fā)器被觸發(fā)(1)創(chuàng)建觸發(fā)器。(2)執(zhí)行INSERT操作。2.UPDATE觸發(fā)器當(dāng)向表中更新記錄時(shí),UPDATE觸發(fā)器被執(zhí)行。案例——?jiǎng)?chuàng)建一個(gè)觸發(fā)器,當(dāng)執(zhí)行UPDATE操作時(shí),該觸發(fā)器被觸發(fā)(1)創(chuàng)建觸發(fā)器。(2)執(zhí)行UPDATE操作。3.DELETE觸發(fā)器創(chuàng)建觸發(fā)器測(cè)試觸發(fā)器trigger1的執(zhí)行創(chuàng)建觸發(fā)器測(cè)試觸發(fā)器trigger2的執(zhí)行三、刪除觸發(fā)器除了在對(duì)象資源管理器中刪除觸發(fā)器外,也可以使用DROPTRIGGER語(yǔ)句來(lái)刪除觸發(fā)器。案例——?jiǎng)h除trigger1觸發(fā)器項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一創(chuàng)建名為PRO的存儲(chǔ)過(guò)程來(lái)查詢部門號(hào)為30的員工信息實(shí)戰(zhàn)二創(chuàng)建一個(gè)觸發(fā)器,更新7521號(hào)員工的工資為6000(1)創(chuàng)建觸發(fā)器。(2)觸發(fā)觸發(fā)器并更新數(shù)據(jù)。查詢部門號(hào)為30的員工信息更改工資項(xiàng)目八
數(shù)據(jù)安全與保護(hù)任務(wù)1賬號(hào)和角色任務(wù)2備份和還原數(shù)據(jù)庫(kù)任務(wù)3數(shù)據(jù)的導(dǎo)入和導(dǎo)出任務(wù)1賬號(hào)和角色任務(wù)引入小林經(jīng)過(guò)這一段時(shí)間的學(xué)習(xí),終于建成一個(gè)達(dá)到自己要求的數(shù)據(jù)庫(kù)系統(tǒng),為了防止別人訪問(wèn)或修改數(shù)據(jù)庫(kù),他創(chuàng)建了一個(gè)登陸賬號(hào)和用戶名。那么,怎么創(chuàng)建登陸賬號(hào)?怎么創(chuàng)建用戶名名,并將用戶名關(guān)聯(lián)到登陸賬號(hào)?知識(shí)準(zhǔn)備在SQLServer中,賬號(hào)有兩種,一種是登錄服務(wù)器的登錄賬號(hào)(loginname),另外一種是使用數(shù)據(jù)庫(kù)的用戶賬號(hào)(username)。登錄賬號(hào)只是讓用戶登錄到SQLServer中,登錄名本身并不能讓用戶訪問(wèn)服務(wù)器中的數(shù)據(jù)庫(kù)。要訪問(wèn)特定的數(shù)據(jù)庫(kù),還必須具有用戶名。用戶名在特定的數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建,并關(guān)聯(lián)一個(gè)登錄名(當(dāng)一個(gè)用戶創(chuàng)建時(shí),必須關(guān)聯(lián)一個(gè)登錄名)。用戶定義的信息存放在服務(wù)器上的每個(gè)數(shù)據(jù)庫(kù)的sysusers表中,用戶沒(méi)有密碼同它相關(guān)聯(lián)。通過(guò)授權(quán)給用戶來(lái)指定用戶可以訪問(wèn)的數(shù)據(jù)庫(kù)對(duì)象的權(quán)限。一、服務(wù)器的登錄賬號(hào)在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建登錄賬號(hào)。在對(duì)象資源管理器中。展開“安全性”→“登錄”節(jié)點(diǎn),即可看到系統(tǒng)創(chuàng)建的默認(rèn)登錄賬號(hào),如圖所示。其中,默認(rèn)登錄賬號(hào)sa是超級(jí)管理員賬號(hào),允許SQLServer的系統(tǒng)管理員登錄。系統(tǒng)默認(rèn)創(chuàng)建的登錄賬號(hào)案例——新建一個(gè)登錄賬號(hào),使其能夠通過(guò)混合驗(yàn)證的方式訪問(wèn)教育管理系統(tǒng)快捷菜單
“登錄名-新建”對(duì)話框“服務(wù)器角色”選項(xiàng)卡“用戶映射”選擇頁(yè)“狀態(tài)”選擇頁(yè)快捷菜單“服務(wù)器屬性”對(duì)話框“連接到服務(wù)器”對(duì)話框服務(wù)器二、數(shù)據(jù)庫(kù)的用戶如果用戶想訪問(wèn)SQLServer,首先必須要有一個(gè)適當(dāng)?shù)牡卿涃~號(hào)和密碼來(lái)登錄到SQLServer,用戶登錄后,并不意味著就能自動(dòng)訪問(wèn)由SQLServer管理的數(shù)據(jù)庫(kù)中的數(shù)據(jù)了,他們還必須有一個(gè)適當(dāng)?shù)臄?shù)據(jù)庫(kù)用戶賬號(hào),才能訪問(wèn)SQLServer的數(shù)據(jù)。登錄賬號(hào)存儲(chǔ)在主數(shù)據(jù)庫(kù)的系統(tǒng)登錄表中,用戶賬號(hào)存儲(chǔ)在各個(gè)數(shù)據(jù)庫(kù)的系統(tǒng)用戶表中。如圖所示,有4個(gè)不同的登錄賬號(hào)有權(quán)登錄到SQLServer數(shù)據(jù)庫(kù)
SQLServer登錄賬號(hào)和數(shù)據(jù)庫(kù)用戶賬號(hào)
系統(tǒng)自動(dòng)創(chuàng)建的用戶賬號(hào)案例——在數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)用戶賬號(hào),并將其關(guān)聯(lián)到liuly登錄賬號(hào)中
快捷菜單
“選擇登錄名”對(duì)話框“查找對(duì)象”對(duì)話框新建用戶賬號(hào)三、角色角色是一個(gè)強(qiáng)大的工具,可以將用戶集中到一個(gè)單元中,然后對(duì)該單元應(yīng)用權(quán)限。對(duì)一個(gè)角色授予、拒絕或廢除的權(quán)限也適用于該角色的任何成員。可以建立一個(gè)角色來(lái)代表單位中一類工作人員所執(zhí)行的工作,然后給這個(gè)角色授予適當(dāng)?shù)臋?quán)限。當(dāng)工作人員開始工作時(shí),只需將他們添加為該角色成員,當(dāng)他們離開工作時(shí),將他們從該角色中刪除。而不必在每個(gè)人接受或離開工作時(shí),反復(fù)授予、拒絕和廢除其權(quán)限。權(quán)限在用戶成為角色成員時(shí)自動(dòng)生效。和登錄賬號(hào)類似,用戶賬號(hào)也可以分成組,稱為數(shù)據(jù)庫(kù)角色(DatabaseRoles)。在SQLServer中,角色可分為兩種:數(shù)據(jù)庫(kù)角色:由數(shù)據(jù)庫(kù)成員所組成的組,此成員可以是用戶或者其他的數(shù)據(jù)庫(kù)角色。應(yīng)用程序角色:用來(lái)控制應(yīng)用程序存取數(shù)據(jù)庫(kù)的,本身并不包含任何成員。1.?dāng)?shù)據(jù)庫(kù)角色在數(shù)據(jù)庫(kù)創(chuàng)建時(shí),系統(tǒng)默認(rèn)創(chuàng)建10個(gè)固定的標(biāo)準(zhǔn)角色。展開school數(shù)據(jù)庫(kù)“安全性”節(jié)點(diǎn)中“角色”→“數(shù)據(jù)庫(kù)角色”,即可看到其中默認(rèn)的10個(gè)固定角色,如圖所示。
默認(rèn)的10個(gè)標(biāo)準(zhǔn)角色案例——為liuly分配數(shù)據(jù)庫(kù)讀寫權(quán)限
快捷菜單“數(shù)據(jù)庫(kù)角色屬性—db_datareader”對(duì)話框“選擇數(shù)據(jù)庫(kù)用戶或角色”對(duì)話框“查找對(duì)象”對(duì)話框案例——?jiǎng)?chuàng)建新角色2.應(yīng)用程序角色SQLServer中的安全系統(tǒng)在最低級(jí)別,即數(shù)據(jù)庫(kù)本身上實(shí)現(xiàn)。無(wú)論使用什么應(yīng)用程序與SQLServer通信,這都是控制用戶活動(dòng)的最佳方法。快捷菜單
“數(shù)據(jù)庫(kù)角色-新建”對(duì)話框任務(wù)2備份和還原數(shù)據(jù)庫(kù)任務(wù)引入小林發(fā)現(xiàn)了創(chuàng)建的數(shù)據(jù)庫(kù)有的數(shù)據(jù)丟失了,急的小林直上火。這時(shí)他同學(xué)告訴他,最好經(jīng)常備份數(shù)據(jù)庫(kù),這樣能減少丟失數(shù)據(jù)的危險(xiǎn)。那么,怎么備份數(shù)據(jù)庫(kù)呢?怎么將備份的數(shù)據(jù)庫(kù)進(jìn)行還原呢?知識(shí)準(zhǔn)備對(duì)于計(jì)算機(jī)用戶來(lái)說(shuō),對(duì)一些重要文件、資料定期進(jìn)行備份是一種良好的習(xí)慣。同樣,對(duì)于數(shù)據(jù)庫(kù)管理員和用戶,對(duì)數(shù)據(jù)庫(kù)備份與還原(或恢復(fù))依然是一項(xiàng)重要且不可缺少的工作。因?yàn)樵谝粋€(gè)復(fù)雜的大型數(shù)據(jù)庫(kù)中,造成數(shù)據(jù)丟失的原因有很多。用戶可能對(duì)數(shù)據(jù)庫(kù)進(jìn)行誤操作或者惡意操作、物理磁盤的數(shù)據(jù)沖突、外界突發(fā)事件的影響等等,這些都有可能造成數(shù)據(jù)損失甚至是系統(tǒng)崩潰。在這時(shí)候,就需要根據(jù)以前的數(shù)據(jù)庫(kù)備份采取符合需求的還原和重建工作。一、備份數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)備份就是創(chuàng)建備份完成時(shí)數(shù)據(jù)庫(kù)內(nèi)存在的數(shù)據(jù)的副本。數(shù)據(jù)庫(kù)備份是一件相當(dāng)麻煩的工作,需要認(rèn)真進(jìn)行規(guī)劃。因?yàn)椴煌膫浞莶呗灾苯佑绊懙綌?shù)據(jù)庫(kù)的還原工作。例如,如果在備份數(shù)據(jù)庫(kù)的時(shí)候采取的策略是只備份數(shù)據(jù)庫(kù)而不備份事務(wù)日志,那么在出現(xiàn)意外情況后對(duì)數(shù)據(jù)庫(kù)進(jìn)行還原,就只能還原到上一次備份之前的程度,備份之后的信息全部丟失。所以要針對(duì)不同的情況全面考慮以采取最符合實(shí)際的備份策略。(一)數(shù)據(jù)庫(kù)備份1.使用SSMS創(chuàng)建數(shù)據(jù)庫(kù)備份
快捷菜單“SQLServer備份”對(duì)話框的“常規(guī)”選項(xiàng)卡“選擇備份目的”對(duì)話框“介質(zhì)選項(xiàng)”選項(xiàng)卡“備份選項(xiàng)”選項(xiàng)卡
提示對(duì)話框2.使用T-SQL命令備份數(shù)據(jù)庫(kù)(二)數(shù)據(jù)庫(kù)事務(wù)日志備份事務(wù)日志是自上次備份事務(wù)日志后對(duì)數(shù)據(jù)庫(kù)執(zhí)行的所有事務(wù)的一系列記錄。可以使用事務(wù)日志備份將數(shù)據(jù)庫(kù)還原到特定的即時(shí)點(diǎn)(如輸入多余數(shù)據(jù)前的那一點(diǎn))或還原到故障點(diǎn)。一般情況下,事務(wù)日志備份比數(shù)據(jù)庫(kù)備份使用的資源少。因此可以比數(shù)據(jù)庫(kù)備份更經(jīng)常地創(chuàng)建事務(wù)日志備份。經(jīng)常備份將減少丟失數(shù)據(jù)的危險(xiǎn)。事務(wù)日志備份有時(shí)比數(shù)據(jù)庫(kù)備份大。例如,數(shù)據(jù)庫(kù)的事務(wù)率很高,從而導(dǎo)致事務(wù)日志迅速增大。在這種情況下,應(yīng)更經(jīng)常地創(chuàng)建事務(wù)日志備份。數(shù)據(jù)庫(kù)事務(wù)日志備份的創(chuàng)建步驟和數(shù)據(jù)庫(kù)備份的創(chuàng)建方法是一樣的,只需要在“備份數(shù)據(jù)庫(kù)”對(duì)話框的“備份類型”下拉列表中選擇“事務(wù)日志”即可,這里就不在詳細(xì)講述了。二、數(shù)據(jù)庫(kù)還原數(shù)據(jù)庫(kù)還原也稱為數(shù)據(jù)庫(kù)恢復(fù)。(一)還原數(shù)據(jù)庫(kù)備份1.使用SSMS還原數(shù)據(jù)庫(kù)備份“刪除對(duì)象”對(duì)話框快捷菜單“選擇備份設(shè)備”對(duì)話框“定位備份文件”對(duì)話框
“還原數(shù)據(jù)庫(kù)”對(duì)話框提示對(duì)話框
還原EMIS數(shù)據(jù)庫(kù)2.使用T-SQL命令還原數(shù)據(jù)庫(kù)備份(二)還原事務(wù)日志備份還原事務(wù)日志備份除以下參數(shù)說(shuō)明外,其他參數(shù)與RESTOREDATABASE語(yǔ)句的相同:STOPAT=date_time|@date_time_var:指定將數(shù)據(jù)庫(kù)還原到其在指定的日期和時(shí)間時(shí)的狀態(tài)。如果對(duì)STOPAT使用變量,則該變量必須是varchar、char、smalldatetime或datetime數(shù)據(jù)類型。只有在指定的日期和時(shí)間前寫入的事務(wù)日志記錄才能應(yīng)用于數(shù)據(jù)庫(kù)。STOPATMARK='mark_name'[AFTERdatetime]:指定還原到指定的標(biāo)記,包括包含該標(biāo)記的事務(wù)。STOPBEFOREMARK='mark_name'[AFTERdatetime]:指定還原到指定的標(biāo)記,但不包括包含該標(biāo)記的事務(wù)。任務(wù)3數(shù)據(jù)的導(dǎo)入和導(dǎo)出任務(wù)引入小林想在SQLServer數(shù)據(jù)庫(kù)服務(wù)器與其它數(shù)據(jù)庫(kù)服務(wù)器間移動(dòng)數(shù)據(jù),怎么才能將數(shù)據(jù)移動(dòng)到其他數(shù)據(jù)服務(wù)器中呢?小林就這問(wèn)題咨詢老師,老師告訴他可以將SQLServer數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)導(dǎo)出,或者將其他數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)導(dǎo)入到SQLServer數(shù)據(jù)庫(kù)服務(wù)器來(lái)實(shí)現(xiàn)。那么,怎么將數(shù)據(jù)導(dǎo)出呢?怎么將數(shù)據(jù)導(dǎo)入呢?知識(shí)準(zhǔn)備導(dǎo)入和導(dǎo)出數(shù)據(jù)是在不同應(yīng)用之間按普通格式讀寫數(shù)據(jù)從而實(shí)現(xiàn)數(shù)據(jù)交換的過(guò)程。一、數(shù)據(jù)的導(dǎo)出“SQLServer導(dǎo)入和導(dǎo)出向?qū)А睂?duì)話框“選擇數(shù)據(jù)源”頁(yè)面
“選擇目標(biāo)”頁(yè)面“指定表復(fù)制或查詢”頁(yè)面
“選擇源表和源視圖”頁(yè)面“列映射”對(duì)話框“查看數(shù)據(jù)類型映射”頁(yè)面“查看數(shù)據(jù)類型映射”頁(yè)面“執(zhí)行已完成”頁(yè)面導(dǎo)出的數(shù)據(jù)二、數(shù)據(jù)的導(dǎo)入“選擇數(shù)據(jù)源”頁(yè)面“選擇目標(biāo)”頁(yè)面
“選擇源表和源視圖”頁(yè)面“完成向?qū)А表?yè)面“執(zhí)行成功”頁(yè)面
導(dǎo)入的表項(xiàng)目總結(jié)項(xiàng)目實(shí)戰(zhàn)實(shí)戰(zhàn)一創(chuàng)建一個(gè)登錄賬號(hào)ABC/123456(1)在對(duì)象資源管理器中選擇“登錄名”節(jié)點(diǎn),右擊鼠標(biāo),在彈出的快捷菜單選擇“新建登錄”選項(xiàng),打開“登錄名-新建”對(duì)話框。(2)輸入登錄名為“ABC”,選擇“SQLServer身份驗(yàn)證”單選按鈕,輸入密碼為123456。然后在“默認(rèn)數(shù)據(jù)庫(kù)”列表框中選擇“company”數(shù)據(jù)庫(kù)。(3)在“服務(wù)器角色”選擇頁(yè)中,選擇“securityadmin”服務(wù)器角色。(4)在“用戶映射”選擇頁(yè)中勾選“company”數(shù)據(jù)庫(kù)復(fù)選框。(5)設(shè)置完成后,單擊“確定”按鈕,創(chuàng)建一個(gè)名稱為ABC的登錄賬號(hào)。實(shí)戰(zhàn)二在company數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)用戶賬號(hào),并將其關(guān)聯(lián)到ABC登錄賬號(hào)中(1)在對(duì)象資源管理器中,展開“數(shù)據(jù)庫(kù)”→company節(jié)點(diǎn),選擇“用戶”節(jié)點(diǎn),右擊鼠標(biāo),在彈出的快捷菜單中選擇“新建用戶”命令,打開“數(shù)據(jù)庫(kù)用戶-新建”對(duì)話框。(2)在“用戶名”和“登錄名”中輸入ABC。(3)設(shè)置完成后,單擊“確定”按鈕,即可在ABC數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)新的用戶賬號(hào)。項(xiàng)目九
JAVA與數(shù)據(jù)庫(kù)任務(wù)1概述任務(wù)2利用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)3利用Hibernate訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)4利用JAVA創(chuàng)建圖形界面任務(wù)1概述任務(wù)導(dǎo)入小林已經(jīng)在SQLServer創(chuàng)建好了數(shù)據(jù)庫(kù),并學(xué)會(huì)在SQLServer查詢所需數(shù)據(jù),現(xiàn)在他想通過(guò)JAVA來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。那么,可以使用哪些方法來(lái)通過(guò)JAVA訪問(wèn)數(shù)據(jù)庫(kù)呢?在使用JAVA訪問(wèn)數(shù)據(jù)庫(kù)之前的先安裝Java開發(fā)包。那么,怎么安裝JAVA的開發(fā)包JDK呢?知識(shí)準(zhǔn)備一、JAVA訪問(wèn)數(shù)據(jù)庫(kù)的方法JAVA可以訪問(wèn)的數(shù)據(jù)庫(kù)類型有許多種,以上主流的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)都支持。JAVA訪問(wèn)數(shù)據(jù)庫(kù)的方法有如下幾類:1.使用JDBC(JavaDataBaseConnection,Java數(shù)據(jù)庫(kù)連接)方式JDBC是Java應(yīng)用訪問(wèn)關(guān)系型數(shù)據(jù)庫(kù)的接口規(guī)范。2.使用MyBatis框架方式Mybatis是開源的持久層框架,能夠?qū)DBC進(jìn)行簡(jiǎn)單的封裝,但其并不是完全的ORM(ObjectRelationalMapping,對(duì)象關(guān)系映射),無(wú)法脫離數(shù)據(jù)庫(kù)進(jìn)行適配。3.使用ORM框架方式ORM是內(nèi)存中的對(duì)象和關(guān)系型數(shù)據(jù)庫(kù)中的記錄之間的映射關(guān)系,實(shí)現(xiàn)了JPA(JavaPersistenceAPI)規(guī)范,Sun引入新的JPAORM規(guī)范出于兩個(gè)原因:其一,簡(jiǎn)化現(xiàn)有JavaEE和JavaSE應(yīng)用開發(fā)工作;其二,Sun希望整合ORM技術(shù),形成統(tǒng)一的標(biāo)準(zhǔn)化的規(guī)范。二、JDK的安裝JDK的全稱為JavaDevelopmentKit,即Java開發(fā)包,這是用Java訪問(wèn)數(shù)據(jù)庫(kù)的必裝軟件工具包,對(duì)于JDBC和JPA本來(lái)就是JDK的一部分,ORM方式的使用也會(huì)依賴于JDK,下文以JDK17.0.2(64位)在Windows1064位的安裝為例進(jìn)行講解。ORM框架流行度排名圖(1)登錄Oracle公司官網(wǎng),下載JavaSE的最新穩(wěn)定版。(2)下載完成后,雙擊下載的文件啟動(dòng)安裝向?qū)В鐖D所示。(3)單擊“下一步(Next)”按鈕,選擇安裝JavaSE的目標(biāo)文件夾,如圖所示。(4)單擊“下一步(Next)”按鈕,開始安裝程序,并顯示進(jìn)度條。(5)如果不需要訪問(wèn)JDK的官方文檔,單擊安裝向?qū)е械摹瓣P(guān)閉(Close)”按鈕,即可完成安裝。
安裝向?qū)?/p>
指定目標(biāo)文件夾(6)在任務(wù)欄單擊“顯示桌面”菜單項(xiàng),這種可看到桌面,此時(shí)按住“Shift”鍵不松開,單擊鼠標(biāo)右鍵,出現(xiàn)如圖所示的菜單,然后選擇“在此處打開PowerShell窗口”菜單項(xiàng)完成安裝菜單查看安裝的JDK版本任務(wù)2利用JDBC訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)導(dǎo)入小林已經(jīng)安裝好了JAVA的開發(fā)包JDK,他想利用JDBC訪問(wèn)在SQLServer中創(chuàng)建的教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù),并對(duì)學(xué)院表中的數(shù)據(jù)進(jìn)行修改和查詢。那么,怎么下載安裝JDBC呢?怎么利用JDBC訪問(wèn)數(shù)據(jù)庫(kù)呢?知識(shí)準(zhǔn)備在利用JDBC訪問(wèn)SQLServer數(shù)據(jù)庫(kù)之前得先安裝JDBC,下面介紹JDBC驅(qū)動(dòng)包的下載和配置。(1)JavaJDBCforSQLServer驅(qū)動(dòng)包的下載(2)以JavaJDBCforSQLServer驅(qū)動(dòng)包配置構(gòu)建路徑(ConfigureBuildPath)以下2種辦法根據(jù)項(xiàng)目類型選擇其中一種即可。方法一:針對(duì)普通的JavaProject采取手工配置構(gòu)建路徑的辦法方法二:針對(duì)MavenProject,采用自動(dòng)配置構(gòu)建路徑的辦法。添加用戶庫(kù)的菜單入口“新建用戶庫(kù)”對(duì)話框選擇JAR包對(duì)話框添加SQLServerJDBC依賴來(lái)自動(dòng)配置
選擇Maven項(xiàng)目選擇簡(jiǎn)單的項(xiàng)目配置Maven項(xiàng)目案例——訪問(wèn)EMIS數(shù)據(jù)庫(kù)中學(xué)院表通過(guò)Java控制臺(tái)程序來(lái)查詢EMIS數(shù)據(jù)庫(kù)中的所有學(xué)院,并完成增加、修改和刪除學(xué)院的功能。
運(yùn)行結(jié)果任務(wù)3利用Hibernate訪問(wèn)數(shù)據(jù)庫(kù)任務(wù)導(dǎo)入小林通過(guò)上一個(gè)任務(wù)的學(xué)習(xí)已經(jīng)掌握了利用JDBC訪問(wèn)數(shù)據(jù)庫(kù)的方法,他還想利用Hibernate訪問(wèn)在SQLServer中創(chuàng)建的教學(xué)管理系統(tǒng)數(shù)據(jù)庫(kù),并對(duì)課程表中的數(shù)據(jù)進(jìn)行修改和查詢。那么,怎么下載安裝Hibernate框架呢?怎么利用Hibernate訪問(wèn)數(shù)據(jù)庫(kù)呢?知識(shí)準(zhǔn)備在利用Hibernate訪問(wèn)SQLServer數(shù)據(jù)庫(kù)之前得先安裝Hibernate框架,下面介紹Hibernate框架的下載和配置。
添加用戶庫(kù)的菜單入口“添加庫(kù)(AddLibrary)”對(duì)話框
新建用戶庫(kù)對(duì)話框
添加外部JAR包Hibernate庫(kù)配置完成后的界面搜索和安裝過(guò)程確認(rèn)HibernateTools功能點(diǎn)選中的對(duì)話框
安裝條款同意對(duì)話框非簽名軟件的的確認(rèn)框Eclipse重啟的確認(rèn)框Hibernate配置是否成功的驗(yàn)證框案例——訪問(wèn)EMIS數(shù)據(jù)庫(kù)中課程表通過(guò)Java控制臺(tái)程序來(lái)查詢EMIS數(shù)據(jù)庫(kù)中的所有課程,并完成增加、修改和刪除課程的功能。選擇Hibernate配置文件(cfg.xml)向?qū)Ц肝募A選擇對(duì)話框Hibernate配置文件的數(shù)據(jù)庫(kù)連接配置Hibernate配置文件的Hibernate屬性配置添加類新建類Course的基本信息類Course的基本屬性和方法類Course的getter/setter方法setter和getter方法自動(dòng)生成的觸發(fā)菜單創(chuàng)建setter和getter方法圖9-36CourseDemo的基本信息
課程表操作的運(yùn)行結(jié)果
編輯映射項(xiàng)配置瀏覽選擇eduMIS2/Course.hbm.xml文件完成編輯后的效果圖
新建HibernateXML映射文件建立類名Course和Course.hbm.xml文件的映射關(guān)系CourseDemo.java的運(yùn)行結(jié)果任務(wù)4利用JAVA創(chuàng)建圖形界面任務(wù)導(dǎo)入小林通覺(jué)得不管是利用JDBC訪問(wèn)數(shù)據(jù)庫(kù)他還是利用Hibernate訪問(wèn)數(shù)據(jù)庫(kù)都比較麻煩,他想在JAVA的界
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 節(jié)水灌溉輸水管道施工合同范本
- 個(gè)人吊車租賃協(xié)議書范本
- 黃山健康職業(yè)學(xué)院《嵌入式系統(tǒng)設(shè)計(jì)A(實(shí)驗(yàn))》2023-2024學(xué)年第二學(xué)期期末試卷
- 出租車經(jīng)營(yíng)出租合同范本
- 遼寧理工職業(yè)大學(xué)《nternatonaMarketng》2023-2024學(xué)年第二學(xué)期期末試卷
- 福建理工大學(xué)《現(xiàn)代設(shè)計(jì)史》2023-2024學(xué)年第二學(xué)期期末試卷
- 南華大學(xué)船山學(xué)院《計(jì)算機(jī)倫理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 海南省2024七年級(jí)道德與法治上冊(cè)第一單元少年有夢(mèng)第一課開啟初中生活課后練習(xí)新人教版
- 廣西民族大學(xué)相思湖學(xué)院《計(jì)算機(jī)三維繪圖綜合實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 音樂(lè)合唱排練安排
- 市場(chǎng)監(jiān)督管理局反電信網(wǎng)絡(luò)詐騙工作總結(jié)
- 2024-2030年中國(guó)免疫細(xì)胞存儲(chǔ)行業(yè)發(fā)展模式及投資戰(zhàn)略分析報(bào)告
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院《常微分方程》2023-2024學(xué)年第一學(xué)期期末試卷
- 游戲賬號(hào)借用合同模板
- 2022年中考英語(yǔ)語(yǔ)法-專題練習(xí)-名詞(含答案)
- 2011年公務(wù)員國(guó)考《申論》真題卷及答案(地市級(jí))
- 《籃球體前變向運(yùn)球技術(shù)》教案(共三篇)
- 多元化評(píng)價(jià)體系構(gòu)建
- 部編版六年級(jí)下冊(cè)道德與法治全冊(cè)教案教學(xué)設(shè)計(jì)
- 商業(yè)模式的設(shè)計(jì)與創(chuàng)新課件
- DBJ04∕T 290-2012 袖閥管注漿加固地基技術(shù)規(guī)程
評(píng)論
0/150
提交評(píng)論