![數(shù)據(jù)庫開發(fā)技術(shù)期末復(fù)習(xí)總結(jié)資料_第1頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/aeed0ecc-f617-4166-bbc7-96d3c725fb7f/aeed0ecc-f617-4166-bbc7-96d3c725fb7f1.gif)
![數(shù)據(jù)庫開發(fā)技術(shù)期末復(fù)習(xí)總結(jié)資料_第2頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/aeed0ecc-f617-4166-bbc7-96d3c725fb7f/aeed0ecc-f617-4166-bbc7-96d3c725fb7f2.gif)
![數(shù)據(jù)庫開發(fā)技術(shù)期末復(fù)習(xí)總結(jié)資料_第3頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/aeed0ecc-f617-4166-bbc7-96d3c725fb7f/aeed0ecc-f617-4166-bbc7-96d3c725fb7f3.gif)
![數(shù)據(jù)庫開發(fā)技術(shù)期末復(fù)習(xí)總結(jié)資料_第4頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/aeed0ecc-f617-4166-bbc7-96d3c725fb7f/aeed0ecc-f617-4166-bbc7-96d3c725fb7f4.gif)
![數(shù)據(jù)庫開發(fā)技術(shù)期末復(fù)習(xí)總結(jié)資料_第5頁](http://file3.renrendoc.com/fileroot_temp3/2021-12/4/aeed0ecc-f617-4166-bbc7-96d3c725fb7f/aeed0ecc-f617-4166-bbc7-96d3c725fb7f5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫應(yīng)用開發(fā)技術(shù)1、什么是數(shù)據(jù)庫應(yīng)用體系結(jié)構(gòu)? 數(shù)據(jù)庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)概述: 數(shù)據(jù)庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)是指數(shù)據(jù)庫系統(tǒng)中數(shù)據(jù)存儲層、業(yè)務(wù)處理層、界面表示層以及網(wǎng)絡(luò)通信之間的布局與分布關(guān)系。數(shù)據(jù)庫應(yīng)用系統(tǒng)體系結(jié)構(gòu)的三個層次:數(shù)據(jù)庫存儲層:完成對數(shù)據(jù)庫中數(shù)據(jù)的各種維護(hù)操作。業(yè)務(wù)處理層:又稱為應(yīng)用層或業(yè)務(wù)邏輯層,此即是數(shù)據(jù)庫應(yīng)用將要處理的與用戶緊密相關(guān)的各種業(yè)務(wù)操作。界面表示層:也稱為用戶界面層,主要完成輸入輸出數(shù)據(jù)及與用戶進(jìn)行交互的功能。 三級模式結(jié)構(gòu)2、 C/S結(jié)構(gòu)的基本概念 C/S(client/server)結(jié)構(gòu)即通常所稱的客戶機(jī)/服務(wù)器結(jié)構(gòu),是當(dāng)今世界最為流行的一種數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)。在這種
2、體系結(jié)構(gòu)中,根據(jù)功能把數(shù)據(jù)庫應(yīng)用分為客戶機(jī)應(yīng)用與服務(wù)器應(yīng)用兩大部分,由客戶機(jī)向服務(wù)器提出請求,服務(wù)器對客戶機(jī)的請求做出回應(yīng)。有效的實(shí)現(xiàn)服務(wù)、數(shù)據(jù)的共享以及應(yīng)用的分布。C/S結(jié)構(gòu)一般又根據(jù)應(yīng)用功能的層次劃分分為:兩層、三層及多層結(jié)構(gòu)。3、C/S結(jié)構(gòu)的組成 從用戶的角度看,C/S結(jié)構(gòu)基本由三個部分組成:客戶機(jī)、服務(wù)器、客戶機(jī)與服務(wù)器之間的連接件。 客戶機(jī):面向最終用戶的接口或應(yīng)用程序 服務(wù)器:監(jiān)聽客戶機(jī)調(diào)用、處理客戶機(jī)請求、存儲及維護(hù)數(shù)據(jù) 連接件:管理及維持客戶機(jī)與服務(wù)器的連接,完成數(shù)據(jù)交換及命令通訊、提供中間接口及標(biāo)準(zhǔn)4、C/S結(jié)構(gòu)分為三類: 服務(wù)器業(yè)務(wù)邏輯結(jié)構(gòu):客戶機(jī)主要負(fù)責(zé)用戶接口及基本數(shù)據(jù)
3、驗(yàn)證,大部分業(yè)務(wù)邏輯及數(shù)據(jù)存儲維護(hù)均由服務(wù)器完成; 均衡負(fù)載結(jié)構(gòu):用戶接口由客戶機(jī)完成,數(shù)據(jù)存儲維護(hù)由服務(wù)器完成,而業(yè)務(wù)邏輯根據(jù)情況均衡分布在客戶機(jī)和服務(wù)器上; 客戶機(jī)業(yè)務(wù)邏輯結(jié)構(gòu)(強(qiáng)客戶機(jī)結(jié)構(gòu)):服務(wù)器提供數(shù)據(jù)服務(wù),業(yè)務(wù)邏輯及用戶接口均由客戶機(jī)完成。 5、C/S結(jié)構(gòu)的優(yōu)點(diǎn):降低了工作站性能需求、減少工作站網(wǎng)絡(luò)負(fù)載、數(shù)據(jù)庫易于維護(hù)。6、C/S結(jié)構(gòu)的缺點(diǎn):增加了維護(hù)數(shù)據(jù)庫服務(wù)器的管理和支持人員的開銷;增加了硬件的開銷;增加數(shù)據(jù)庫軟件費(fèi)用;客戶端開發(fā)困難;復(fù)雜性;系統(tǒng)維護(hù)困難。7、C/S結(jié)構(gòu)的DBMS功能劃分 C/S體系結(jié)構(gòu),RU(RADUnify)體系結(jié)構(gòu),EWS(Extended Workst
4、ation Server)體系結(jié)構(gòu)8、B/S結(jié)構(gòu)的基本概念 B/S結(jié)構(gòu),即Browser/Server(瀏覽器/服務(wù)器)結(jié)構(gòu),是隨著Internet技術(shù)的興起,對C/S結(jié)構(gòu)的一種變化或者改進(jìn)的結(jié)構(gòu)。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn),形成所謂3-tier結(jié)構(gòu)。B/S結(jié)構(gòu),主要是利用了不斷成熟的WWW瀏覽器技術(shù),結(jié)合瀏覽器的多種Script語言(VBScript、JavaScript)和ActiveX技術(shù),用通用瀏覽器就實(shí)現(xiàn)了原來需要復(fù)雜專用軟件才能實(shí)現(xiàn)的強(qiáng)大功能,并節(jié)約了開發(fā)成本,是一種全新的軟件系統(tǒng)構(gòu)造技術(shù)。隨著Windo
5、ws 98/Windows 2000將瀏覽器技術(shù)植入操作系統(tǒng)內(nèi)部,這種結(jié)構(gòu)更成為當(dāng)今應(yīng)用軟件的首選體系結(jié)構(gòu)。 9、B/S結(jié)構(gòu)的優(yōu)點(diǎn):降低開發(fā)成本及開發(fā)復(fù)雜度;系統(tǒng)易于維護(hù);系統(tǒng)易于管理;易于推廣使用 10、B/S結(jié)構(gòu)與C/S結(jié)構(gòu)的比較n 硬件環(huán)境不同n 安全要求不同n 對程序架構(gòu)不同n 軟件重用不同n 系統(tǒng)維護(hù)不同n 處理問題不同n 用戶接口不同n 信息流不同11、PowerDesigner的模型文件:概念數(shù)據(jù)模型 (CDM) ,物理數(shù)據(jù)模型 (PDM) ,業(yè)務(wù)程序模型 (BPM),面向?qū)ο竽P?(OOM) ,需求模型(RQM),信息流模型(ILM)12、什么是CDM?o CDM 表現(xiàn)數(shù)據(jù)庫的
6、全部邏輯的結(jié)構(gòu),與任何的軟件或數(shù)據(jù)存儲結(jié)構(gòu)無關(guān)。 一個概念模型經(jīng)常包括在物理數(shù)據(jù)庫中仍然不實(shí)現(xiàn)的數(shù)據(jù)對象。 它給運(yùn)行計(jì)劃或業(yè)務(wù)活動的數(shù)據(jù)一個正式表現(xiàn)方式。o CDM是一組嚴(yán)格定義的模型元素的集合,這些模型元素精確地描述了系統(tǒng)的靜態(tài)特性、動態(tài)特性以及完整性約束條件等13、關(guān)于聯(lián)系:o 聯(lián)系(Relationship)是指實(shí)體集之間或?qū)嶓w集內(nèi)部實(shí)例之間的連接。o 按照實(shí)體類型中實(shí)例之間的數(shù)量對應(yīng)關(guān)系,通??蓪⒙?lián)系分為4類,即一對一(ONETOONE)聯(lián)系、一對多(ONETOMANY)聯(lián)系、多對一(MANYTOONE)聯(lián)系和多對多聯(lián)系(MANYTOMANY)。14、聯(lián)系的類型:標(biāo)定聯(lián)系 ,遞歸聯(lián)系。
7、15、什么是PDM?o PDM定義了模型的物理實(shí)現(xiàn)細(xì)節(jié)。16、CDM PDM OOM三者的轉(zhuǎn)換關(guān)系:17、從CDM生成PDM的對象規(guī)則:CDM對象 在PDM中生成的對象 備注 實(shí)體(Entity) 表(Table) 實(shí)體屬性(Entity Attribute) 列Table Column) 主標(biāo)識符(Primary Identifier) 根據(jù)是否為依賴關(guān)系確定是主鍵或外鍵 標(biāo)識符(Identifier) 候選鍵(Alternate key) 關(guān)系(Relationship) 引用(Reference) 18、關(guān)系鍵的確定在PDM中生成的鍵類型取決于CDM中用于定義一個關(guān)系(Relations
8、hip)的基數(shù)和依賴類型。 依賴性一對多關(guān)系;非依賴性多對多關(guān)系;非依賴性一對一關(guān)系;非依賴性一對多關(guān)系19、數(shù)據(jù)模型概述:數(shù)據(jù)模型是用于描述數(shù)據(jù)或信息的標(biāo)記。(數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)操作、數(shù)據(jù)上的約束)20、常用的數(shù)據(jù)模型:關(guān)系模型、層次模型、網(wǎng)狀模型、面向?qū)ο蟮臄?shù)據(jù)模型。21、在SQL中定義關(guān)系模式:Create table/ Create View22、關(guān)系數(shù)據(jù)庫模式設(shè)計(jì)三、SQL語言強(qiáng)化訓(xùn)練與T-SQL第一節(jié)、SQL語言及其基本結(jié)構(gòu)1、SQL的概念及作用:一種介于關(guān)系代數(shù)與關(guān)系演算之間的語言,成為關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。功能:查詢、定義、操作、控制。2、SQL指令構(gòu)成;3、標(biāo)準(zhǔn)SQL與個性化SQ
9、L;第二節(jié)、SELECT訓(xùn)練1、單表查詢查詢出至少選修了4門課程的學(xué)號和門數(shù)SELECT Sno,COUNT(Sno) FROM Sc GROUP BY Sno HAVING COUNT(Sno)>=4求選課在4門以上的平均成績,不統(tǒng)計(jì)不及格的課程,按降序排列總成績SELECT Sno,AVG(G) Average FROM Sc WHERE G>=60 GROUP BY Sno HAVING COUNT(*)>=4 ORDER BY Average DESCENDINGSELECT Sno,AVG(G) FROM Sc WHERE G>=60 GROUP BY Sno
10、 HAVING COUNT(*)>=4 ORDER BY 2 DESCENDING 2、庫函數(shù)(集函數(shù))查詢o 求計(jì)算機(jī)系學(xué)生的平均年齡SELECT AVG(Age) FROM Student WHERE Dept='CS'o 求S3學(xué)生的總分和平均分SELECT SUM(G),AVG(G) FROM Sc WHERE Sno='S3'o 求計(jì)算機(jī)系的學(xué)生總數(shù)SELECT COUNT(Sno) FROM Student WHERE Dept='CS'SELECT COUNT(*) FROM Student WHERE Dept='C
11、S'o 查詢共有幾個系SELECT COUNT (*) FROM Student ?SELECT COUNT (Dept) FROM Student ?SELECT COUNT (DISTINCT Dept) FROM Studento 求課程C1的最高分和最低分以及高低分之間的差距SELECT MAX(G),MIN(G),MAX(G)-MIN(G) FROM Sc WHERE Cno=C1 3、連表查詢o 復(fù)合條件連接n 查詢“張三”的成績SELECT Cno,G FROM Student,Sc WHERE Student.Sno=Sc.Sno AND Sn=張三 n 查詢所有學(xué)生(
12、姓名)選修的課程名和成績SELECT Sn,Cn,G FROM Student,Course,Sc WHERE Student.Sno=Sc.Sno AND Course.Cno=Sc.Cno 4、子查詢塊嵌套查詢5、并交差集合查詢6、數(shù)據(jù)庫的更新n INSERT INTO R(A1,.An)VALUES(v1,v2.vn)例6.35: 把 Sydney Greenstreet 添加到演員列表中去。Insert into starsIn(movieTitle,movieYear,starName) Values(The Maltese Falcon,1942,Sydeny Greenstree
13、t);Insert into starsIn Values(The Maltese Falcon,1942,Sydeny Greenstreet);Example 6.35:往關(guān)系Studio(name,address,presC#)添加在關(guān)系 Movie(title,year,length,inColor,studioName,producerC#)提到的但沒有在studio中出現(xiàn)過的所有電影公司。Insert into studio(name) select distinct studioName from Movie where studioName not in (select nam
14、e from studio);n DELETE FROM R WHERE <condition>例6.37: 從關(guān)系StarsIn(movieTitle,movieYear,starName)刪除 Sydney Greenstreet出演電影n The Malese Falcon 這一事實(shí)。 delete from starsIn where movieTitle=The maltese Falcon and movieYear=1942 and starName=Sydney Greenstreet;n Update R SET <new-value assignments
15、> Where <condition>每個新值賦值由一個屬性、一個等號和一個表達(dá)式組成。例6.39 修改關(guān)系MovieExec(name,address ,cert#,netWorth),在每個電影公司制片經(jīng)理的電影制片人名字前加上稱呼Pres.。Update movieExec SET name=Pres. |name Where cert# IN (select presC# from studio);第三節(jié)、Transact-SQL 概述 2、Transact-SQL應(yīng)用基礎(chǔ):游標(biāo)關(guān)系數(shù)據(jù)庫中的操作會對整個行集產(chǎn)生影響。由 SELECT 語句返回的行集包括所有滿足該語句
16、 WHERE 子句中條件的行。由語句所返回的這一完整的行集被稱為結(jié)果集。應(yīng)用程序,特別是交互式聯(lián)機(jī)應(yīng)用程序,并不總能將整個結(jié)果集作為一個單元來有效地處理。這些應(yīng)用程序需要一種機(jī)制以便每次處理一行或一部分行。游標(biāo)就是提供這種機(jī)制的結(jié)果集擴(kuò)展。 Transact-SQL 游標(biāo)主要用在存儲過程、觸發(fā)器和 Transact-SQL 腳本中,它們使結(jié)果集的內(nèi)容對其它 Transact-SQL 語句同樣可用。 3、Transact-SQL應(yīng)用:游標(biāo)進(jìn)程在存儲過程或觸發(fā)器中使用 Transact-SQL 游標(biāo)的典型進(jìn)程為: o 聲明 Transact-SQL 變量包含游標(biāo)返回的數(shù)據(jù)。為每一結(jié)果集列聲明一個變
17、量。聲明足夠大的變量以保存由列返回的值,并聲明可從列數(shù)據(jù)類型以隱性方式轉(zhuǎn)換得到的數(shù)據(jù)類型。o 使用 DECLARE CURSOR 語句把 Transact-SQL 游標(biāo)與一個 SELECT 語句相關(guān)聯(lián)。DECLARE CURSOR 語句同時定義游標(biāo)的特征,比如游標(biāo)名稱以及游標(biāo)是否為只讀或只進(jìn)特性。o 使用 OPEN 語句執(zhí)行 SELECT 語句并生成游標(biāo)。o 使用 FETCH INTO 語句提取單個行,并把每列中的數(shù)據(jù)轉(zhuǎn)移到指定的變量中。然后,其它 Transact-SQL 語句可以引用這些變量來訪問已提取的數(shù)據(jù)值。Transact-SQL 不支持提取行塊。o 結(jié)束游標(biāo)時,使用 CLOSE 語
18、句。關(guān)閉游標(biāo)可以釋放某些資源,比如游標(biāo)結(jié)果集和對當(dāng)前行的鎖定,但是如果重新發(fā)出一個 OPEN 語句,則該游標(biāo)結(jié)構(gòu)仍可用于處理。由于游標(biāo)仍然存在,此時還不能重新使用游標(biāo)的名稱。DEALLOCATE 語句則完全釋放分配給游標(biāo)的資源,包括游標(biāo)名稱。在游標(biāo)被釋放后,必須使用 DECLARE 語句來重新生成游標(biāo)。4、兩種方法定義使用游標(biāo)變量 5、游標(biāo)的提取和滾動6、打開或關(guān)閉游標(biāo)打開游標(biāo):OPEN GLOBAL cursor_name | cursor_variable_name 關(guān)閉游標(biāo):CLOSE GLOBAL cursor_name | cursor_variable_name 刪除游標(biāo)引用:DE
19、ALLOCATE GLOBAL cursor_name | cursor_variable_name 7、游標(biāo)示例(1)下面的示例打開一個游標(biāo)并且提取所有的行。DECLARE Employee_Cursor CURSOR FOR SELECT LastName, FirstName FROM Northwind.dbo.Employees WHERE LastName like 'B%' OPEN Employee_Cursor FETCH NEXT FROM Employee_Cursor WHILE FETCH_STATUS = 0 BEGIN FETCH NEXT FRO
20、M Employee_Cursor END CLOSE Employee_Cursor DEALLOCATE Employee_Cursor (2) DECLARE au_lname varchar(40), au_fname varchar(20) DECLARE authors_cursor CURSOR FOR SELECT au_lname, au_fname FROM authors WHERE au_lname LIKE "B%" ORDER BY au_lname, au_fname OPEN authors_cursor FETCH NEXT FROM au
21、thors_cursor INTO au_lname, au_fname WHILE FETCH_STATUS = 0 BEGIN PRINT "Author: " + au_fname + " " + au_lname FETCH NEXT FROM authors_cursor INTO au_lname, au_fname END CLOSE authors_cursor DEALLOCATE authors_cursor 第四節(jié)、存儲過程1、存儲過程的概念:是一組為了完成特定功能的SQL 語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫。用戶通過指定存儲過程的名字并
22、給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。(在SQL Server 的系列版本中存儲過程分為兩類:系統(tǒng)提供的存儲過程和用戶自定義存儲過程。系統(tǒng)過程主要存儲在master 數(shù)據(jù)庫中并以sp_為前綴,并且系統(tǒng)存儲過程主要是從系統(tǒng)表中獲取信息,從而為系統(tǒng)管理員管理SQL Server 提供支持。通過系統(tǒng)存儲過程,MS SQL Server 中的許多管理性或信息性的活動(如了解數(shù)據(jù)庫對象、數(shù)據(jù)庫信息)都可以被順利有效地完成。盡管這些系統(tǒng)存儲過程被放在master 數(shù)據(jù)庫中,但是仍可以在其它數(shù)據(jù)庫中對其進(jìn)行調(diào)用,在調(diào)用時不必在存儲過程名前加上數(shù)據(jù)庫名。而且當(dāng)創(chuàng)建一個新數(shù)據(jù)庫時,一些系統(tǒng)存儲過程會在新數(shù)
23、據(jù)庫中被自動創(chuàng)建。用戶自定義存儲過程是由用戶創(chuàng)建并能完成某一特定功能(如查詢用戶所需數(shù)據(jù)信息)的存儲過程。) 2、用CREATE PROCEDURE 命令創(chuàng)建存儲過程o 用Create Procedure 創(chuàng)建存儲過程的語法規(guī)則如下:CREATE PROC EDURE procedure_name ; number parameter data_type VARYING = default OUTPUT ,.n WITH RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION FOR REPLICATION AS sql_statement .n 3、C
24、REATE PROCEDURE 命令參數(shù)略解o procedure_name 是要創(chuàng)建的存儲過程的名字。 o parameter 是存儲過程的參數(shù)。當(dāng)調(diào)用該存儲過程時,用戶必須給出所有的參數(shù)值,除非定義了參數(shù)的缺省值。一個存儲過程至多有1024 個參數(shù)。 o Data_type 是參數(shù)的數(shù)據(jù)類型。 o OUTPUT表明該參數(shù)是一個返回參數(shù)。用OUTPUT 參數(shù)可以向調(diào)用者返回信息。Text 類型參數(shù)不能用作OUTPUT 參數(shù)。o RECOMPILE指明SQL Server 并不保存該存儲過程的執(zhí)行計(jì)劃,該存儲過程每執(zhí)行一次都又要重新編譯。o ENCRYPTION加密。o AS指明該存儲過程將要
25、執(zhí)行的動作。o Sql_statement是任何數(shù)量和類型的包含在存儲過程中的SQL 語句。 4、存儲過程示例o (一)使用帶有復(fù)雜 SELECT 語句的簡單過程 USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'au_info_all' AND type = 'P') DROP PROCEDURE au_info_all GO CREATE PROCEDURE au_info_all AS SELECT au_lname, au_fname, title, pub_name FROM a
26、uthors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id INNER JOIN titles t ON t.title_id = ta.title_id INNER JOIN publishers p ON t.pub_id = p.pub_id GO o (二)使用帶有參數(shù)的簡單過程 USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'au_info' AND type = 'P') DROP PROCEDURE au_info GO
27、 CREATE PROCEDURE au_info lastname varchar(40), firstname varchar(20) AS SELECT au_lname, au_fname, title, pub_name FROM authors a INNER JOIN titleauthor ta ON a.au_id = ta.au_id INNER JOIN titles t ON t.title_id = ta.title_id INNER JOIN publishers p ON t.pub_id = p.pub_id WHERE au_fname = firstname
28、 AND au_lname = lastname GO o (三)使用 OUTPUT 參數(shù) USE pubs GO IF EXISTS(SELECT name FROM sysobjects WHERE name = 'titles_sum' AND type = 'P') DROP PROCEDURE titles_sum GO CREATE PROCEDURE titles_sum TITLE varchar(40) = '%', SUM money OUTPUT AS SELECT 'Title Name' = title
29、FROM titles WHERE title LIKE TITLE SELECT SUM = SUM(price) FROM titles WHERE title LIKE TITLE GO o (四)使用 OUTPUT 游標(biāo)參數(shù) USE pubs IF EXISTS (SELECT name FROM sysobjects WHERE name = 'titles_cursor' and type = 'P') DROP PROCEDURE titles_cursor GO CREATE PROCEDURE titles_cursor titles_curs
30、or CURSOR VARYING OUTPUT AS SET titles_cursor = CURSOR FORWARD_ONLY STATIC FOR SELECT * FROM titles OPEN titles_cursor GO 5、管理存儲過程(1)查看存儲過程 o 通過Enterprise Manager 管理工具同樣可以查看存儲過程的源代碼 o 使用sp_helptext 存儲過程查看存儲過程的源代碼,其語法格式為:sp_helptext 存儲過程名稱(2)重新命名存儲過程 o 修改存儲過程的名字使用系統(tǒng)存儲過程sp_rename。 其命令格式為:sp_rename 原存儲
31、過程名, 新存儲過程名(3) 刪除存儲過程 o 刪除存儲過程使用drop 命令,drop 命令可將一個或多個存儲過程或者存儲過程組從當(dāng)前數(shù)據(jù)庫中刪除。其語法規(guī)則為: DROP PROCEDURE procedure ,n(4)執(zhí)行存儲過程 執(zhí)行已創(chuàng)建的存儲過程使用EXECUTE |EXEC命令6、Transact-SQL控制流語言關(guān)鍵字 描述 BEGIN.END 定義語句塊。 BREAK 退出最內(nèi)層的 WHILE 循環(huán)。 CONTINUE 重新開始 WHILE 循環(huán)。 GOTO label 從 label 所定義的 label 之后的語句處繼續(xù)進(jìn)行處理。 IF.ELSE 定義條件以及當(dāng)一個條件
32、為 FALSE 時的操作。 RETURN 無條件退出。 WAITFOR 為語句的執(zhí)行設(shè)置延遲。 WHILE 當(dāng)特定條件為 TRUE 時重復(fù)語句。7、Transact-SQL事務(wù)控制o BEGIN TRANSACTION標(biāo)記一個顯式本地事務(wù)的起始點(diǎn)。 o COMMIT TRANSACTION標(biāo)志一個成功的隱性事務(wù)或用戶定義事務(wù)的結(jié)束。o ROLLBACK TRANSACTION將顯式事務(wù)或隱性事務(wù)回滾到事務(wù)的起點(diǎn)或事務(wù)內(nèi)的某個保存點(diǎn)。6.3.1 可串行化如果完全不約束DBMS對數(shù)據(jù)庫進(jìn)行操作的順序,那么可能出現(xiàn)錯誤。例6.40 顧客選擇航班座位Flights(fltNo,fltDate,seat
33、No,seatStatus)select seatNo from flights where fltNo=123 and fltDate=2008-12-25 and seatNo=22A;update flights set seatStatus=Occupied where fltNo=123 and fltDate=2008-12-25 and seatNo=22A;四、客戶端開發(fā)技術(shù)及工具第一節(jié) ODBC應(yīng)用與開發(fā)1、什么是ODBC? ODBC(Open Database Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)中有關(guān)數(shù)據(jù)庫的一個組成部分,它
34、建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(Application Programming Interface,應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。 2、ODBC的體系結(jié)構(gòu);ODBC的組成結(jié)構(gòu)各層的功能3、應(yīng)用ODBC的優(yōu)勢(1)應(yīng)用ODBC保證了數(shù)據(jù)庫的獨(dú)立性 (2)應(yīng)用ODBC保證了數(shù)據(jù)庫之間的互操作能力 4、ODBC操縱第二節(jié) ADO應(yīng)用與開發(fā)1、什么是ADO?l ADO,即ActiveX Data Objects,是一種應(yīng)用廣泛的數(shù)據(jù)庫訪問技術(shù),它基于OLEDB技術(shù),是對OL
35、EDB面向?qū)ο蟮姆庋b。l OLEDB與ODBC相比,在底層的數(shù)據(jù)庫引擎和每一個獨(dú)立的數(shù)據(jù)庫引擎之間的接口存在著較大的不同。在ODBC中,每一種類型的數(shù)據(jù)庫都必須有相應(yīng)的驅(qū)動器動態(tài)鏈接庫(DLL),ODBC引擎使用該DLL打開相應(yīng)類型的數(shù)據(jù)庫并進(jìn)行記錄的讀寫修改等操作。OLEDB同樣需要驅(qū)動器,但不同的是,OLEDB的驅(qū)動器是通過ActiveX實(shí)現(xiàn)的。一個ActiveX就定義了用來實(shí)現(xiàn)特定接口的類,這種方式減少了程序和數(shù)據(jù)庫引擎之間的層次,因而提高了數(shù)據(jù)庫編程的速度。l ADO實(shí)際上就是一個ActiveX對象集,封裝了多種對象方法屬性。 2、ADO對象模型及其應(yīng)用特征l 其中,Connectio
36、n,Command,Recordset和Fields對象還有Properties集合。 l Connection 對象代表打開的、與數(shù)據(jù)源的連接; l Command 對象定義了將對數(shù)據(jù)源執(zhí)行的指定命令; l Recordset 對象表示的是來自基本表或命令執(zhí)行結(jié)果的記錄全集; l Errors 對象包含與單個操作(涉及提供者)有關(guān)的數(shù)據(jù)訪問錯誤的詳細(xì)信息; l Fields 對象代表使用普通數(shù)據(jù)類型的數(shù)據(jù)的列的集合; l Parameter 對象代表與基于參數(shù)化查詢或存儲過程的 Command 對象相關(guān)聯(lián)的參數(shù)或自變量; l Property 對象代表由提供者定義的 ADO 對象的動態(tài)特征;
37、 3、Connection對象(1)Connection對象的作用 Connection對象是數(shù)據(jù)庫與外界溝通的唯一橋梁,所有對數(shù)據(jù)庫的操作都必須依賴于Connection對象。一個Connection對象代表了一個程序到數(shù)據(jù)庫的連接。(2)Connection對象的屬性表一Connection對象的屬性 屬性 說明 Attributes 設(shè)定Connection對象控制事務(wù)處理的特性 CommandTimeout 指示在終止嘗試和產(chǎn)生錯誤之前執(zhí)行命令期間需等待的時間 ConnectionString 包含用于建立連接數(shù)據(jù)源的信息 ConnectionTimeout 指示在終止嘗試和產(chǎn)生錯誤前
38、建立連接期間所等待的時間 CursorLocation 設(shè)置或返回游標(biāo)服務(wù)的位置 DefaultDatabase 可設(shè)置或返回指定 Connection 對象上默認(rèn)數(shù)據(jù)庫的名稱 IsolationLevel 可設(shè)置 Connection 對象的隔離級別 Mode 可設(shè)置或返回當(dāng)前連接上提供者正在使用的訪問權(quán)限。Mode 屬性只能在關(guān)閉 Connection 對象時方可設(shè)置 Provider 可設(shè)置或返回連接提供者(OLEDB)的名稱,如果沒有指定提供者,該屬性將默認(rèn)為 MSDASQL (Microsoft OLE DB Provider for ODBC ) State 說明其對象狀態(tài)是打開或
39、是關(guān)閉,可為AdStateClosed或AdStateOpen Version 返回 ADO 執(zhí)行的版本號 (3)表二Connection對象的方法 方法 說明 BeginTrans 開始新事務(wù) CommitTrans 保存任何更改并結(jié)束當(dāng)前事務(wù) RollbackTrans 取消當(dāng)前事務(wù)中所作的任何更改并結(jié)束事務(wù) Open 打開到數(shù)據(jù)源的連接 Close 關(guān)閉數(shù)據(jù)庫連接 Execute 執(zhí)行指定的查詢、SQL 語句、存儲過程或特定提供者的文本等內(nèi)容 (4)Connection對象應(yīng)用實(shí)例l 定義及實(shí)例化 DIM MyConn SET MyConn = Server.CreateObject(A
40、DODB.CONNECTION)l 打開連接 DIM ConnStr ConnStr = “DSN=mydsn;uid=userid;pwd=userpwd” MyConn.ConnectionString = ConnStr IF MyConn.State = AdStateClosed THEN MyConn.Open END IFl 或MyConn.Open ConnStr l 關(guān)閉連接 IF MyConn.State = AdStateOpen THEN MyConn.Close END IFl 釋放連接 SET MyConn = nothing(5)使用Connection對象返回記
41、錄集l DIM MyRS l SET MyRS = Server.CreateObject(“ADODB.RECORDSET”)l DIM SelectSQLStr l SelectSQLStr = “select.” l MyRS = MyConn.Execute SelectSQLStr 或MyRS.Open SelectSQLStr, MyConn (6)使用Connection對象進(jìn)行數(shù)據(jù)更新l DIM SQLStr l SQLStr = “update” 或SQLStr = “insert into” 或SQLStr = “delete from” l MyConn.BeginTra
42、ns MyConn.Execute SQLStrIF err.number <> 0 THEN MyConn.RollbackTransELSE MyConn.CommitTrans END IF第三節(jié)ADO.NET應(yīng)用開發(fā)1、ADO.NET簡介l ADO.NET是一組用于和數(shù)據(jù)源進(jìn)行交互的面向?qū)ο箢悗?。通常情況下,數(shù)據(jù)源是數(shù)據(jù)庫,但它同樣也能夠是文本文件、Excel表格或者XML文件。 l ADO.NET允許和不同類型的數(shù)據(jù)源以及數(shù)據(jù)庫進(jìn)行交互。然而并沒有與此相關(guān)的一系列類來完成這樣的工作。因?yàn)椴煌臄?shù)據(jù)源采用不同的協(xié)議,所以對于不同的數(shù)據(jù)源必須采用相應(yīng)的協(xié)議。一些老式的數(shù)據(jù)源使
43、用ODBC協(xié)議,許多新的數(shù)據(jù)源使用OleDb協(xié)議,并且現(xiàn)在還不斷出現(xiàn)更多的數(shù)據(jù)源,這些數(shù)據(jù)源都可以通過.NET的ADO.NET類庫來進(jìn)行連接。 l ADO.NET是一種基于標(biāo)準(zhǔn)的程序設(shè)計(jì)模型,可以用來創(chuàng)建分布式應(yīng)用以實(shí)現(xiàn)數(shù)據(jù)共享。l 在ADO.NET中,DataSet占據(jù)重要地位,它是數(shù)據(jù)庫里部分?jǐn)?shù)據(jù)在內(nèi)存中的拷貝。與ADO中的RecordSet不同,DataSet可以包括任意個數(shù)據(jù)表,每個數(shù)據(jù)表都可以用于表示自某個數(shù)據(jù)庫表或視圖的數(shù)據(jù)。DataSet駐留在內(nèi)存中,且不與原數(shù)據(jù)庫相連,即無需與原數(shù)據(jù)庫保持連接。l 完成工作的底層技術(shù)是XML,它是DataSet所采用的存儲和傳輸格式。在運(yùn)行期間
44、,組件(如某個業(yè)務(wù)邏輯對象或 web表單)之間需要交換DataSet中的數(shù)據(jù)。數(shù)據(jù)以XML文件的形式從一個組件傳輸給另一個組件,由接收組件將文件還原為DataSet形式。DataSet的有關(guān)方法與關(guān)系數(shù)據(jù)模型完全一樣。2、ADO.NET包含的對象l SqlConnection 對象 和數(shù)據(jù)庫交互,你必須連接它。連接幫助指明數(shù)據(jù)庫服務(wù)器、數(shù)據(jù)庫名字、用戶名、密碼,和連接數(shù)據(jù)庫所需要的其它參數(shù)。connection對象會被command對象使用,這樣就能夠知道是在哪個數(shù)據(jù)庫上面執(zhí)行命令。 l SqlCommand對象 與數(shù)據(jù)庫交互的過程意味著你必須指明想要發(fā)生的操作。這是依靠command對象執(zhí)行
45、的。你使用command對象來發(fā)送SQL語句給數(shù)據(jù)庫。 command對象使用connection對象來指出與哪個數(shù)據(jù)庫進(jìn)行連接。你能夠單獨(dú)使用command對象來直接執(zhí)行命令,或者將一個 command對象的引用傳遞給SqlDataAdapter,它保存了一組能夠操作下面描述的一組數(shù)據(jù)的命令。 l SqlDataReader對象 許多數(shù)據(jù)操作要求你只是讀取一串?dāng)?shù)據(jù)。data reader對象允許你獲得從command對象的SELECT語句得到的結(jié)果??紤]性能的因素,從data reader返回的數(shù)據(jù)都是快速的且只是“向前”的數(shù)據(jù)流。這意味著你只能按照一定的順序從數(shù)據(jù)流中取出數(shù)據(jù)。這對于速度來
46、說是有好處的,但是如果你需要 操作數(shù)據(jù),更好的辦法是使用DataSet。 l DataSet對象 DataSet對象是數(shù)據(jù)在內(nèi)存中的表示形式。它包括多個DataTable對象,而 DataTable包含列和行,就象一個普通的數(shù)據(jù)庫中的表。你甚至能夠定義表之間的關(guān)系來創(chuàng)建主從關(guān)系(parent-child relationships)。DataSet是在特定的場景下使用幫助管理內(nèi)存中的數(shù)據(jù)并支持對數(shù)據(jù)的斷開操作的。DataSet是被所有Data Providers使用的對象,因此它并不像Data Provider一樣需要特別的前綴。 l SqlDataAdapter對象 某些時候你使用的數(shù)據(jù)主要
47、是只讀的,并且你很少需要將其改變至底層的數(shù)據(jù)源。同樣一些情況要求在內(nèi)存中緩存數(shù)據(jù),以此來減少并不改變的數(shù)據(jù)被數(shù)據(jù)庫調(diào)用的次數(shù)。Data adapter通過斷開模型來幫助你方便的完成對以上情況的處理。當(dāng)在一單批次的對數(shù)據(jù)庫的讀寫操作的持續(xù)的改變返回至數(shù)據(jù)庫的時候,Data adapter 填充(fill)DataSet對象。data adapter包含對連接對象以及當(dāng)對數(shù)據(jù)庫進(jìn)行讀取或者寫入的時候自動的打開或者關(guān)閉連接的引用。另外,data adapter包含對數(shù)據(jù)的SELECT,INSERT,UPDATE和DELETE操作的command對象引用。你將為DataSet中的每一個 table都定
48、義data adapter,它將為你照顧所有與數(shù)據(jù)庫的連接。所有你將做的工作是告訴data adapter什么時候裝載或者寫入到數(shù)據(jù)庫。 3、ADO.NET的體系結(jié)構(gòu)換個角度看ADO.NET的體系結(jié)構(gòu):4、ADO.NET中數(shù)據(jù)庫連接l System.Data.SqlClient.SqlConnection常用的一些連接字符串(C#代碼): SqlConnection conn = new SqlConnection( "Server=(local);Integrated Security=SSPI;database=Pubs"); SqlConnection conn =
49、new SqlConnection("server=(local)NetSDK;database=pubs;Integrated Security=SSPI"); SqlConnection conn = new SqlConnection("Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind;"); SqlConnection conn = new SqlConnection(" data source=(local);initial catalog
50、=xr;integrated security=SSPI;persist security info=False;workstation id=XURUI;packet size=4096; "); SqlConnection myConn = new SqlConnection("Persist Security Info=False;Integrated Security=SSPI;database=northwind;server=mySQLServer"); SqlConnection conn = new SqlConnection( &qu
51、ot; uid=sa;pwd=passwords;initial catalog=pubs;data source=;Connect Timeout=900"); l System.Data.OleDb.OleDbConnection常用的一些連接字符串(C#代碼): OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:MyWeb8105GrocerToGo.mdb"); OleDbConnection conn =
52、new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Password=; User ID=Admin;Data Source=grocertogo.mdb;"); OleDbConnection conn = new OleDbConnection("Provider=MSDAORA; Data Source=ORACLE8i7;Persist Security Info=False;Integrated Security=yes"); OleDbConnection conn = new OleD
53、bConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:binLocalAccess40.mdb"); OleDbConnection conn = new OleDbConnection("Provider=SQLOLEDB;Data Source=MySQLServer;Integrated Security=SSPI"); l System.Data.OracleClient.OracleConnection常用的一些連接字符串(C#代碼): OracleConnection myC
54、onn = new System.Data.OracleClient.OracleConnection("Data Source=Oracle8i;Integrated Security=yes"); l 其他廠商提供的數(shù)據(jù)庫連接: DB2Connection myConn = new IBM.Data.DB2.DB2Connection("DATABASE = SAMPLE;UID=<username> PWD=<password>"); DB2Connection myConn = new IBM.Data.DB2.DB2Co
55、nnection("DATABASE = SAMPLE"); l System.Data.Odbc.OdbcConnection常用的一些連接字符串(C#代碼): OdbcConnection conn = new OdbcConnection("Driver=SQL Server;Server=MyServer;Trusted_Connection=yes;Database=Northwind;"); OdbcConnection conn = new OdbcConnection("Driver=Microsoft ODBC for Oracle;Server=ORACLE8i7;Persist Security Info=False;Trusted_Connection=yes"); OdbcConnection conn = new OdbcConnection("Driver=Microsoft Access Driver (*.mdb);DBQ=c:binnwind.mdb"); OdbcConnection conn = new OdbcConnection("Driver=Microsoft Excel Driver (*.xls);DBQ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國運(yùn)動專用護(hù)具行業(yè)發(fā)展趨勢及投資前景預(yù)測報(bào)告
- 中國食用海藻種植項(xiàng)目投資可行性研究報(bào)告
- 養(yǎng)殖租山合同范本
- 電鍍工藝評審報(bào)告模板
- qiche購銷合同范本
- 制氧機(jī)租賃合同范本
- 2025年木工專用砂輪行業(yè)深度研究分析報(bào)告
- 二級殘疾護(hù)理申請書
- 榮譽(yù)稱號申請書
- 二級殘疾低保申請書
- (更新版)HCIA安全H12-711筆試考試題庫導(dǎo)出版-下(判斷、填空、簡答題)
- 糖尿病運(yùn)動指導(dǎo)課件
- 蛋白表達(dá)及純化課件
- 完整版金屬學(xué)與熱處理課件
- T∕CSTM 00640-2022 烤爐用耐高溫粉末涂料
- 304不銹鋼管材質(zhì)證明書
- 民用機(jī)場不停航施工安全管理措施
- 港口集裝箱物流系統(tǒng)建模與仿真技術(shù)研究-教學(xué)平臺課件
- 新教科版2022年五年級科學(xué)下冊第2單元《船的研究》全部PPT課件(共7節(jié))
- QTD01鋼質(zhì)焊接氣瓶檢驗(yàn)工藝指導(dǎo)書
- 人教版七年級英語下冊全冊英語單詞默寫直接打印
評論
0/150
提交評論