《數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用》PPT課件.ppt_第1頁(yè)
《數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用》PPT課件.ppt_第2頁(yè)
《數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用》PPT課件.ppt_第3頁(yè)
《數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用》PPT課件.ppt_第4頁(yè)
《數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用》PPT課件.ppt_第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、第九章 SQL Server數(shù)據(jù)庫(kù)簡(jiǎn)單應(yīng)用,本章內(nèi)容,數(shù)據(jù)庫(kù)的創(chuàng)建與管理 表對(duì)象的創(chuàng)建與管理 索引的創(chuàng)建與管理 Transact SQL編程基礎(chǔ) 存儲(chǔ)過(guò)程 觸發(fā)器 數(shù)據(jù)庫(kù)完整性管理 SQL Server數(shù)據(jù)庫(kù)安全性管理,9.1 數(shù)據(jù)庫(kù)的創(chuàng)建與管理,數(shù)據(jù)庫(kù)是SQL Server存放數(shù)據(jù)和數(shù)據(jù)對(duì)象的容器,一般可通過(guò)兩種方法對(duì)它進(jìn)行創(chuàng)建、查看、修改、刪除、備份、恢復(fù): 1、通過(guò)企業(yè)管理器所提供的可視化界面進(jìn)行管理; 2、使用Transact SQL語(yǔ)句,通過(guò)查詢分析器進(jìn)行管理 3、備份和恢復(fù)是維護(hù)數(shù)據(jù)庫(kù)安全性和完整性的管理方法,其語(yǔ)句為:BACKUP DATABASE 和 RESTORE DATAB

2、ASE,9.2 表對(duì)象的創(chuàng)建與管理,SQL Server可存儲(chǔ)20億個(gè)表,每個(gè)表可以有1024列 NULL(空值)的概念 表中一旦有了記錄,字段類型有時(shí)不能修改,除非刪除字段,再重新建立。若要增加一列,必須保證該列允許為null值,否則無(wú)法成功。 利用企業(yè)管理器、查詢分析器創(chuàng)建表 查看與修改表的結(jié)構(gòu),查詢與維護(hù)表數(shù)據(jù),刪除表 創(chuàng)建視圖,9.3 索引的創(chuàng)建與管理,索引好象一本書(shū)的目錄,能夠提高數(shù)據(jù)搜索速度。 索引是在基本表的列上建立的一種數(shù)據(jù)庫(kù)對(duì)象,它和基本表分開(kāi)存儲(chǔ),它的建立和撤消對(duì)數(shù)據(jù)的內(nèi)容沒(méi)有影響。 當(dāng)索引建立后,它便記錄了被索引列的每一個(gè)取值在表中的位置。當(dāng)表中加入新的數(shù)據(jù)時(shí),索引中也會(huì)

3、增加相應(yīng)的數(shù)據(jù)項(xiàng)。當(dāng)對(duì)數(shù)據(jù)庫(kù)中的基本表建立了索引,進(jìn)行數(shù)據(jù)查詢時(shí),首先在相應(yīng)的索引中查找,如果找到了則返回該數(shù)據(jù)庫(kù)在基本表中的確切位置,再?gòu)幕颈碇腥〕鋈坑涗浿?9.3 索引的創(chuàng)建與管理,索引一旦建立,完全由系統(tǒng)自動(dòng)選擇和維護(hù),因此,創(chuàng)建索引時(shí)注意以下問(wèn)題:1、基本表的記錄數(shù)量越多,記錄越長(zhǎng),越有必要?jiǎng)?chuàng)建索引,記錄小時(shí),創(chuàng)建索引意義不大2、索引是為了加快查詢的速度,但同時(shí)會(huì)影響插入/刪除/修改的速度 索引通??山⒃赪HERE、ORDER BY、GROUP BY子句中出現(xiàn)頻率高的數(shù)據(jù)列上 以下情況盡量不要?jiǎng)?chuàng)建索引P246,9.3 索引的類型,從列的使用角度可將索引分為1、單列索引:對(duì)單獨(dú)一列

4、建立的索引,一般對(duì)主關(guān)鍵字2、惟一索引:不允許在表中相應(yīng)列上插入任何相同的取值3、復(fù)合索引:在兩個(gè)以上列建立的索引 從是否改變記錄的物理位置分為1、聚簇索引:會(huì)改變基本表中記錄的物理存儲(chǔ)順序,每個(gè)表只能建立一個(gè),會(huì)降低插入、刪除、修改數(shù)據(jù)的速度2、非聚簇索引:不改變基本表中記錄的物理存儲(chǔ)順序,需要較多的磁盤(pán)空間,9.3 索引的創(chuàng)建和刪除,使用企業(yè)管理器:1、在創(chuàng)建或設(shè)計(jì)表時(shí)2、所有任務(wù)-管理索引 使用Transact SQL語(yǔ)句1、 創(chuàng)建 Create unique clustered nonclustered index 索引名 on 表名 列名12、刪除 Drop index 索引名,9.

5、4 Transact SQL編程基礎(chǔ),程序注釋語(yǔ)句1、方法1:: /* 注釋 */,多行2、方法2: :-注釋,單行 局部變量(其范圍局限于批處理命令內(nèi))1、聲明方法: DECLARE 變量名 數(shù)據(jù)類型2、參數(shù)說(shuō)明:變量名必須以開(kāi)頭,必須符合標(biāo)識(shí)符的命名規(guī)則;數(shù)據(jù)類型可以使用除了text/ntext/image以外的所有系統(tǒng)數(shù)據(jù)類型和用戶自定義類型3、賦值方法a、select 變量名=表達(dá)式,select語(yǔ)句的查詢功能和賦值功能不能同時(shí)使用,否則會(huì)出錯(cuò)b、set 變量名=表達(dá)式,在update語(yǔ)句中使用賦值語(yǔ)句時(shí),必須嚴(yán)格匹配數(shù)據(jù)類型,9.4 Transact SQL編程基礎(chǔ),全局變量:全局變

6、量用于記錄服務(wù)器活動(dòng)狀態(tài)的一組數(shù)據(jù),在7.0以后版本中,全局變量成了一種特殊形式的函數(shù),通過(guò)在名稱前保留兩個(gè)符號(hào)()區(qū)別于局部變量。 connections 變量返回自上次啟動(dòng)以來(lái)連接或試圖連接的次數(shù)select getdate() as 當(dāng)前日期和時(shí)間 connections as 登錄次數(shù),9.4 程序結(jié)構(gòu),條件分支(IFELSE,CASE多重分支結(jié)構(gòu)) 循環(huán)(WHILE) 順序 每個(gè)語(yǔ)句塊的開(kāi)始和結(jié)束標(biāo)記為:BEGINEND RETURN返回語(yǔ)句 理解例9-7至例9-11,9.4.4 游標(biāo),游標(biāo)的作用:1、SQL命令是面向集合的2、如果需要針對(duì)記錄進(jìn)行“個(gè)性化”操作,則需要游標(biāo)。3、游標(biāo)

7、提供了一種在服務(wù)器內(nèi)部處理結(jié)果集的方法,可以識(shí)別一個(gè)數(shù)據(jù)集內(nèi)指定的行,從而可以有選擇地按行操作,9.4.4 游標(biāo),聲明游標(biāo):DECLARE 游標(biāo)名CURSORFOR select語(yǔ)句FOR 打開(kāi)游標(biāo)OPEN 游標(biāo)名 關(guān)閉游標(biāo)CLOSE 游標(biāo)名,9.4.4 游標(biāo),釋放游標(biāo):DEALLOCATE 游標(biāo)名 使用游標(biāo)取數(shù)FETCHFROMINTO 兩個(gè)與游標(biāo)操作有關(guān)和系統(tǒng)全局變量FETCH_STATUSCURSOR_ROWS,9.4.4 游標(biāo),利用游標(biāo)修改數(shù)據(jù):1、必須將游標(biāo)聲明為可更新的游標(biāo)2、不能使用read only關(guān)鍵字3、要使用for update of 指明可更新的列4、更新操作updat

8、e 表名 set 列名=表達(dá)式,where current of 游標(biāo)名5、刪除操作delete from 表名 where current of 游標(biāo)名,9.4.5 事務(wù),事務(wù)的作用:保持?jǐn)?shù)據(jù)完整性。 事務(wù)的處理控制語(yǔ)句 開(kāi)始一個(gè)事務(wù)(BEGIN TRAN) 提交一個(gè)事務(wù)(COMMIT) 回滾一個(gè)事務(wù)(ROLLBACK) 在數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)中,事務(wù)控制語(yǔ)句的一般用法是第1步:BEGIN TRAN 事務(wù)名;第2步:對(duì)數(shù)據(jù)進(jìn)行增、刪、改等操作第3步:提交事務(wù)或回滾?;具壿嬍牵喝绻麤](méi)有發(fā)生異常情況,則通過(guò)COMMIT語(yǔ)句提交事務(wù),確認(rèn)第2步操作;否則執(zhí)行ROLLBACK回滾命令撤消第2步操作,

9、9.5 存儲(chǔ)過(guò)程,存儲(chǔ)過(guò)程:是一組預(yù)先編譯好的Transact SQL代碼,可以作為一個(gè)獨(dú)立的數(shù)據(jù)庫(kù)對(duì)象被用戶使用,被應(yīng)用程序直接調(diào)用。 存儲(chǔ)過(guò)程的好處有 執(zhí)行速度快 模塊化的程序設(shè)計(jì) 減少網(wǎng)絡(luò)流量 保證系統(tǒng)的安全性,9.5 存儲(chǔ)過(guò)程,創(chuàng)建存儲(chǔ)過(guò)程的方法1、Transact SQL語(yǔ)法create proc 存儲(chǔ)過(guò)程名as sql語(yǔ)句2、利用企業(yè)管理器,9.5 存儲(chǔ)過(guò)程,執(zhí)行存儲(chǔ)過(guò)程1、如果對(duì)存儲(chǔ)過(guò)程的調(diào)用是批處理的第一條語(yǔ)句,則可直接使用存儲(chǔ)過(guò)程的名字調(diào)用該存儲(chǔ)過(guò)程2、否則:EXECUTE/EXEC 存儲(chǔ)過(guò)程名,9.5 存儲(chǔ)過(guò)程,修改存儲(chǔ)過(guò)程1、使用ALTER PROC語(yǔ)句2、通過(guò)“屬性”窗

10、口 刪除存儲(chǔ)過(guò)程 1、使用DROP PROC語(yǔ)句2、通過(guò)右鍵菜單,示例,創(chuàng)建一個(gè)存儲(chǔ)過(guò)程XXK2,顯示出AAA庫(kù)中每個(gè)學(xué)生的學(xué)號(hào)、姓名、專業(yè)等信息及選課門(mén)數(shù),create procedure xxk2 as begin select x.學(xué)號(hào),x.姓名,x.專業(yè),count(*) as 門(mén)數(shù) from students x , score y where x.學(xué)號(hào)=y.學(xué)號(hào) group by x.學(xué)號(hào),x.姓名,x.專業(yè) end,9.6 觸發(fā)器,觸發(fā)器是一種特殊的存儲(chǔ)過(guò)程,可以看做是表的一部分。 它基于一個(gè)表而創(chuàng)建,但可以針對(duì)多個(gè)表進(jìn)行操作。 主要作用是:保證數(shù)據(jù)的完整性。主要針對(duì)UPDATE

11、、DELETE、INSERT語(yǔ)句進(jìn)行設(shè)置,9.6 觸發(fā)器,創(chuàng)建觸發(fā)器1、Transact SQL語(yǔ)句create trigger 觸發(fā)器名 on 表名for as sql語(yǔ)句2、利用企業(yè)管理器,9.6 觸發(fā)器,刪除、修改觸發(fā)器1、Transact SQL語(yǔ)句DROP TRIGGER 觸發(fā)器名ALTER TRIGGER 觸發(fā)器名on 表名2、利用企業(yè)管理器,9.7 數(shù)據(jù)庫(kù)完整性管理,數(shù)據(jù)完整性是指存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)的正確性和相容性,以防止不符合語(yǔ)義的數(shù)據(jù)進(jìn)入數(shù)據(jù)庫(kù)。 SQL Server實(shí)施完整性的途徑主要有: 約束(Constraint) 標(biāo)識(shí)列(Identity Column) 默認(rèn)值(D

12、efault) 規(guī)則(Rule) 觸發(fā)器(Trigger) 數(shù)據(jù)類型(Data Type) 索引(Index) 存儲(chǔ)過(guò)程(Stored Procedure) 考試重點(diǎn)表9-3(P271,9.7.1 約束(constraint,定義:在創(chuàng)建表時(shí)定義,與表共存亡 用途:限制用戶輸入到表中的數(shù)據(jù)的值的范圍 分類:列級(jí)約束、表級(jí)約束 查看:sp_helpconstraint 表名 種類:Primary Key,Foreign Key,Unique,Check 刪除:alter table 表名 drop constraint 約束名,9.7.2 規(guī)則(rule,規(guī)則:?jiǎn)为?dú)存儲(chǔ)的數(shù)據(jù)對(duì)象,對(duì)列的值進(jìn)行規(guī)定和限制。當(dāng)用戶向綁定有規(guī)則的數(shù)據(jù)列中insert和update數(shù)據(jù)時(shí),規(guī)則會(huì)檢查修改值的完整性 步驟:先創(chuàng)建規(guī)則,再將規(guī)則與某個(gè)列綁定,不再使用時(shí)刪除它,9.7.2 規(guī)則(rule,使用Transact SQL創(chuàng)建和刪除規(guī)則1、創(chuàng)建create rule 規(guī)則名 as 條件表達(dá)式2、刪除drop 規(guī)則名 使用Transact SQL綁定規(guī)則sp_bindrule 規(guī)則名,表名.列名 使用Transact SQL解除綁定規(guī)則sp_unbindrule 表名.列名 使用企業(yè)管理器管理規(guī)則,9.7.

溫馨提示

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