版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1 培訓(xùn)內(nèi)容培訓(xùn)內(nèi)容 第一章:數(shù)據(jù)庫基礎(chǔ)知識介紹 第二章:SQL Server的安裝與系統(tǒng)結(jié)構(gòu) 第三章:SQL Server的日常使用與管理 第四章:SQL Server的開發(fā)應(yīng)用 第五章:數(shù)據(jù)庫性能問題 培訓(xùn)安排培訓(xùn)安排2 培訓(xùn)目標(biāo)培訓(xùn)目標(biāo) 熟悉數(shù)據(jù)庫基礎(chǔ)知識 掌握SQL Server的安裝與數(shù)據(jù)庫的創(chuàng)建 掌握簡單的日常管理 進(jìn)行SQL開發(fā)總結(jié):獨(dú)立創(chuàng)建一個(gè)開發(fā)系統(tǒng)的過程 初步開發(fā)的能力34 內(nèi)容內(nèi)容 數(shù)據(jù)庫的組成與簡單概念 當(dāng)前流行的數(shù)據(jù)庫 MS SQL Server 2000簡介 目標(biāo)和要求目標(biāo)和要求 掌握數(shù)據(jù)庫基本概念5 數(shù)據(jù)庫系統(tǒng):指引進(jìn)數(shù)據(jù)庫技術(shù)后的計(jì)算數(shù)據(jù)庫系統(tǒng):指引進(jìn)數(shù)據(jù)庫技術(shù)
2、后的計(jì)算機(jī)系統(tǒng)。包括:硬件系統(tǒng),數(shù)據(jù)庫集合,機(jī)系統(tǒng)。包括:硬件系統(tǒng),數(shù)據(jù)庫集合,數(shù)據(jù)庫管理系統(tǒng)數(shù)據(jù)庫管理系統(tǒng)(DBMS)及相關(guān)軟件,數(shù)據(jù)及相關(guān)軟件,數(shù)據(jù)庫管理員和用戶。庫管理員和用戶。6物理設(shè)備DBMSApplications(應(yīng)用)網(wǎng)絡(luò),協(xié)議介質(zhì),接口DB Tools(管理工具)存儲管理數(shù)據(jù)庫管理數(shù)據(jù)庫中的對象管理1.表單2.視圖3.觸發(fā)器4.索引5.存儲過程4.函數(shù)、包7部門序號部門序號integerVarchar(20)varchar(20)char(6)char(2)longstring行行列列101911019210202LabrieLabrieMartinAngelaEvaJose
3、FRFRSPx19891x19433x21467HRKarlDHRKarlDHRAmyL 存儲數(shù)據(jù)的地方 由行(row記錄)和列(column字段)組成類型類型8部門序號部門序號AndersonAndersonBegerlongstringvarchar(20)char(6)char(2)longstring觸發(fā)器觸發(fā)器存儲過程存儲過程主主鍵鍵FKCheckx#101911019210202LabrieLabrieMartinAngelaEvaJoseFRFRSPx19891x19433x21467HRKarlDHRKarlDHRAmyL9 一個(gè)表只能包含一個(gè)一個(gè)表只能包含一個(gè)
4、PRIMARY KEY 約束。約束。 如果沒有在如果沒有在 PRIMARY KEY 約束中指定約束中指定 CLUSTERED 或或 NONCLUSTERED,并且沒有為,并且沒有為 UNIQUE 約束指定聚集約束指定聚集索引,則將對該索引,則將對該 PRIMARY KEY 約束使用約束使用 CLUSTERED。 在在 PRIMARY KEY 約束中定義的所有列都必須定義為約束中定義的所有列都必須定義為 NOT NULL。如果沒有指定為空性,加入。如果沒有指定為空性,加入 PRIMARY KEY 約束的所有列的為空性都將設(shè)置為約束的所有列的為空性都將設(shè)置為 NOT NULL。 10如果如果 UN
5、IQUE 約束中沒有指定約束中沒有指定 CLUSTERED 或或 NONCLUSTERED,則默,則默認(rèn)為認(rèn)為 NONCLUSTERED。每個(gè)每個(gè) UNIQUE 約束都生成一個(gè)索引。約束都生成一個(gè)索引。 例:創(chuàng)建表職工(職工號,姓名,身份證號)的同時(shí)定義身份證號取值唯一。例:創(chuàng)建表職工(職工號,姓名,身份證號)的同時(shí)定義身份證號取值唯一。T-SQL語句如下:語句如下:CREATE TABLE 職工(職工號char(8) NOT NULL,姓名char(10) ,身份證號 char(18) NULL CONSTRAINT uni_sfz UNIQUE )例:為存在的表職工(職工號,姓名,身份證號
6、)定義身份證號取值唯一的例:為存在的表職工(職工號,姓名,身份證號)定義身份證號取值唯一的約束約束。 T-SQL語句如下:語句如下:ALTER TABLE 職工ADD CONSTRAINT uni_sfz UNIQUE NONCLUSTERED(身份證號)例:刪除上例建立的主鍵約束。例:刪除上例建立的主鍵約束。T-SQL語句如下:語句如下:ALTER TABLE 職工 DROP CONSTRAINT uni_sfz11 若將表中某列定義了若將表中某列定義了DEFAULT約束后,用戶在約束后,用戶在插入新的數(shù)據(jù)行時(shí),如未指定該列值,系統(tǒng)自動插入新的數(shù)據(jù)行時(shí),如未指定該列值,系統(tǒng)自動將該列值賦為默
7、認(rèn)值(默認(rèn)值可以是空值)。將該列值賦為默認(rèn)值(默認(rèn)值可以是空值)。 使用企業(yè)管理器定義、刪除使用企業(yè)管理器定義、刪除DEFAULT約束約束 語法格式:語法格式:CONSTRAINT 約束名約束名 DEFAULT 默認(rèn)約束值默認(rèn)約束值 FOR 列名列名 使用使用T-SQL語句刪除語句刪除DEFAULT約束約束 語法格式:語法格式:DROP CONSTRAINT 約束名約束名12例:創(chuàng)建表學(xué)生(學(xué)號,姓名,性別)的同時(shí)定義性別的默認(rèn)值為例:創(chuàng)建表學(xué)生(學(xué)號,姓名,性別)的同時(shí)定義性別的默認(rèn)值為男男。T-SQL語句如下:語句如下:CREATE TABLE 學(xué)生學(xué)生(學(xué)號學(xué)號char(8) NOT N
8、ULL,姓名姓名char(10) ,性別性別 char(2) DEFAULT 男男 )例:為存在的表學(xué)生(學(xué)號,姓名,性別)定義性別的默認(rèn)值為例:為存在的表學(xué)生(學(xué)號,姓名,性別)定義性別的默認(rèn)值為男男 。T-SQL語句如下:語句如下:ALTER TABLE 學(xué)生學(xué)生 ADD CONSTRAINT dft_xs DEFAULT 男男 FOR 性別性別例:刪除上例建立的默認(rèn)約束。例:刪除上例建立的默認(rèn)約束。T-SQL語句如下:語句如下:ALTER TABLE 學(xué)生學(xué)生 DROP CONSTRAINT dft_xs13 外鍵外鍵 (FK) 是是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間
9、的鏈接的一列或多列間的鏈接的一列或多列。通過將保存表中。通過將保存表中主鍵值的一列或多列添加到另一個(gè)表中,主鍵值的一列或多列添加到另一個(gè)表中,可創(chuàng)建兩個(gè)表之間的鏈接可創(chuàng)建兩個(gè)表之間的鏈接。 在增加外鍵結(jié)束: ALTER TABLE MS_CF02 ADD CONSTRAINT FK_MS_CF01_CFSB_MS_CF02_CFSB FOREIGN KEY (CFSB) REFERENCES MS_CF01 14 規(guī)則也是一種數(shù)據(jù)庫對象,可以綁定到一列或多規(guī)則也是一種數(shù)據(jù)庫對象,可以綁定到一列或多列上,作用與列上,作用與CHECK約束相似,在插入數(shù)據(jù)行時(shí),約束相似,在插入數(shù)據(jù)行時(shí),指定接受的數(shù)
10、據(jù)值的范圍。指定接受的數(shù)據(jù)值的范圍。 規(guī)則對象在功能上與規(guī)則對象在功能上與CHECK約束是一樣的,在約束是一樣的,在使用上有所區(qū)別:使用上有所區(qū)別: CHECK約束是和表的定義聯(lián)系在一起的,刪除約束是和表的定義聯(lián)系在一起的,刪除表的同時(shí)表的同時(shí)CHECK約束也被刪除約束也被刪除 規(guī)則對象作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,規(guī)則對象作為一種單獨(dú)存儲的數(shù)據(jù)庫對象,獨(dú)獨(dú)立于表之外立于表之外(用(用CREATE RULE定義),刪除表定義),刪除表時(shí)并不刪除規(guī)則對象(用時(shí)并不刪除規(guī)則對象(用DROP RULE刪除),刪除),15 使用使用T-SQL語句語句CREATE RULE創(chuàng)建規(guī)則創(chuàng)建規(guī)則對象對象 語法
11、格式:語法格式: CREATE RULE 規(guī)則名 AS 規(guī)則條件 例:例: 定義規(guī)則對象:設(shè)置成績在0分和100分之間。CREATE RULE cj_rlAS cj=0 and cj=10016 使用使用sp_bindrule語句綁定規(guī)則對象語句綁定規(guī)則對象 語法格式:語法格式:sp_bindrule rulename= 規(guī)則對象名 objname= 綁定的列名 例:例: 將規(guī)則對象cj_rl綁定到成績表的成績列。 exec sp_bindrule cj_rl,成績.成績17使用使用sp_unbindrule語句解除綁定語句解除綁定語法格式:語法格式:sp_unbindrule objname
12、= 綁定的列名例:例: 刪除學(xué)生表性別列和規(guī)則對象cj_rl的綁定。 exec sp_unbindrule 成績.成績使用使用T-SQL語句語句DROP RULE刪除規(guī)則對象刪除規(guī)則對象語法格式:語法格式: DROP RULE 規(guī)則對象名例:刪除規(guī)則對象例:刪除規(guī)則對象cj_rl 。 DROP DEFAULT cj_rl 注:刪除規(guī)則對象時(shí),首先要解除規(guī)則對象的綁定,然注:刪除規(guī)則對象時(shí),首先要解除規(guī)則對象的綁定,然 后才能刪除后才能刪除規(guī)則對象規(guī)則對象。18 索引是關(guān)系型數(shù)據(jù)庫的一個(gè)基本概念。索引是關(guān)系型數(shù)據(jù)庫的一個(gè)基本概念。 數(shù)據(jù)庫的索引類似圖書的索引,能夠使數(shù)據(jù)庫數(shù)據(jù)庫的索引類似圖書的索
13、引,能夠使數(shù)據(jù)庫程序不用瀏覽整個(gè)表,就可以找到表中的數(shù)據(jù)。程序不用瀏覽整個(gè)表,就可以找到表中的數(shù)據(jù)。 索引是一個(gè)表中所包含的值的列表,它說明了索引是一個(gè)表中所包含的值的列表,它說明了表中包含各個(gè)值的行所在的存儲位置。表中包含各個(gè)值的行所在的存儲位置。 用戶可以利用索引快速訪問數(shù)據(jù)庫表中的特定用戶可以利用索引快速訪問數(shù)據(jù)庫表中的特定信息。信息。 但使用索引存儲地址將占用磁盤空間,同時(shí)在但使用索引存儲地址將占用磁盤空間,同時(shí)在數(shù)據(jù)維護(hù)時(shí),也將花費(fèi)一定的時(shí)間。因此要數(shù)據(jù)維護(hù)時(shí),也將花費(fèi)一定的時(shí)間。因此要合理合理設(shè)計(jì)索引設(shè)計(jì)索引。19 語法格式:語法格式:CREATE UNIQUE CLUSTERED
14、 | NONCLUSTERED INDEX 索引名索引名 ON 表名或視圖名表名或視圖名(列名列名 ASC|DESC,n)ON 文件組名文件組名此選項(xiàng)表示創(chuàng)此選項(xiàng)表示創(chuàng)建惟一索引建惟一索引此選項(xiàng)表示創(chuàng)此選項(xiàng)表示創(chuàng)建聚集索引建聚集索引此選項(xiàng)表示創(chuàng)此選項(xiàng)表示創(chuàng)建非聚集索引建非聚集索引升序升序降序降序20 例:例: 為表為表“學(xué)生課程表學(xué)生課程表”創(chuàng)建基于創(chuàng)建基于“課程名課程名”列的惟列的惟一非聚集索引一非聚集索引au_csn。CREATE UNIQUE INDEX au_csn ON 學(xué)生課程表(課程名)為表為表“XSQK”創(chuàng)建基于創(chuàng)建基于“學(xué)號學(xué)號”列的惟一聚集索引列的惟一聚集索引in_xh。C
15、REATE UNIQUE CLUSTERED INDEX in_xh ON XSQK(學(xué)號)21 使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_helpindes查看查看 語法格式:語法格式: Sp_helpindex 表名或視圖名表名或視圖名 例:查看表例:查看表ZY_FYMX上的索引信息。上的索引信息。 Sp_helpindex ZY_FYMX22 當(dāng)一個(gè)索引不再需要時(shí),可以將其從數(shù)據(jù)庫中刪當(dāng)一個(gè)索引不再需要時(shí),可以將其從數(shù)據(jù)庫中刪除,以回收當(dāng)前使用的存儲空間,便于數(shù)據(jù)庫中除,以回收當(dāng)前使用的存儲空間,便于數(shù)據(jù)庫中的任何對象使用。的任何對象使用。 注:通過設(shè)置注:通過設(shè)置PRIMARY KEY約束
16、或約束或UNIQUE約約束所建立的索引不允許用戶刪除,只能通過刪除束所建立的索引不允許用戶刪除,只能通過刪除約束或刪除表的方法刪除。約束或刪除表的方法刪除。 使用使用T-SQL命令刪除索引命令刪除索引 語法格式:語法格式: DROP INDEX 表名表名.索引名索引名|視圖視圖.索引名索引名23 視圖:虛擬的表(簡化、安全、方便)視圖:虛擬的表(簡化、安全、方便) title authorLast of the MohicansThe Village Watch-TowerPoemsJames Fenimore CooperKate Douglas WigginWilfred Owentitl
17、e_no title authorsynopsis123Last of the MohicansThe Village Watch-TowerPoemsJames Fenimore CooperKate Douglas WigginWilfred OwenCREATE VIEW dbo.TitleViewAS SELECT title, authorFROM title24 Indexes are B-Trees Structures Which Allow Fast Access to Data(為了能快速存為了能快速存取數(shù)據(jù)的一種樹形結(jié)構(gòu)取數(shù)據(jù)的一種樹形結(jié)構(gòu)) 建立適當(dāng)?shù)乃饕梢詼p少I/O
18、存取的次數(shù)AAA E IJ K LMJMM N Q25 聚集聚集(Clustered)Index 資料已經(jīng)做過物理排序,適合大量資料的處理 每一個(gè)資料表只能有一個(gè)聚集索引 非非聚集聚集(Non-Clustered)Index 不做物理排序,可以多個(gè)。 適用與資料密度低的列,也就是 WHERE 條件時(shí)具有高選擇性(SELECTIVITY) 復(fù)復(fù)合(合(Composited) Index 所要用到的列都已經(jīng)包含在索引頁(Index Page)中,故不需要去到物理的資料頁(Data Page)一筆一筆去找 為特定查詢命令量身定作用26 存儲過程存儲過程 為完成特定的功能而匯集在一起的一組SQL 程序
19、語句,將其保存在數(shù)據(jù)庫中,并由SQL Server服務(wù)器通過過程名來調(diào)用它們。 存儲過程在創(chuàng)建時(shí)就被編譯和優(yōu)化,調(diào)用一次以后,相關(guān)信息就保存在內(nèi)存中,下次調(diào)用時(shí)可以直接執(zhí)行。 優(yōu)點(diǎn):性能、安全性、業(yè)務(wù)封裝CREATE PROC dbo.find_isbn title longstring = null, translation char(8) = EnglishASIF title is null BEGIN PRINT Please provide a title (or partial title) and the translation PRINT find_isbn Oliver%,
20、Japanese27 系統(tǒng)存儲過程系統(tǒng)存儲過程 存儲在存儲在master數(shù)據(jù)庫中,以數(shù)據(jù)庫中,以sp_為前綴??梢詾榍熬Y??梢栽谄渌麛?shù)據(jù)庫中對其進(jìn)行調(diào)用。在其他數(shù)據(jù)庫中對其進(jìn)行調(diào)用。 用戶自定義存儲過程用戶自定義存儲過程 由用戶創(chuàng)建并能完成某一特定功能的存儲過程。由用戶創(chuàng)建并能完成某一特定功能的存儲過程?;蚍Q本地存儲過程。包括臨時(shí)存儲過程、遠(yuǎn)程存或稱本地存儲過程。包括臨時(shí)存儲過程、遠(yuǎn)程存儲過程、擴(kuò)展存儲過程。儲過程、擴(kuò)展存儲過程。 臨時(shí)存儲過程又包括局部的和全局的臨時(shí)存儲臨時(shí)存儲過程又包括局部的和全局的臨時(shí)存儲過程,前者在過程名的前面帶過程,前者在過程名的前面帶#,后者在過程名,后者在過程名的
21、前面帶的前面帶#。全局臨時(shí)存儲過程對所有用戶都可。全局臨時(shí)存儲過程對所有用戶都可見。見。 擴(kuò)展存儲過程的前綴是擴(kuò)展存儲過程的前綴是xp_ 。 28用用T-SQL命令創(chuàng)建命令創(chuàng)建存儲過程的三個(gè)組成部分:存儲過程的三個(gè)組成部分:(1)所有的)所有的輸入?yún)?shù)輸入?yún)?shù)以及傳給調(diào)用者的以及傳給調(diào)用者的輸出參數(shù)輸出參數(shù);(2)被執(zhí)行的針對數(shù)據(jù)庫的)被執(zhí)行的針對數(shù)據(jù)庫的操作語句操作語句,包括調(diào)用其他存儲過程的語,包括調(diào)用其他存儲過程的語句;句;(3)返回返回給調(diào)用者的給調(diào)用者的狀態(tài)值狀態(tài)值,以指明調(diào)用是成功還是失敗。,以指明調(diào)用是成功還是失敗。T-SQL創(chuàng)建存儲過程的基本語法格式:創(chuàng)建存儲過程的基本語法格式
22、:CREATE PROCEDURE 存儲過程名稱 參數(shù)定義AS SQL語句例例1:創(chuàng)建存儲過程,實(shí)現(xiàn)查詢所有學(xué)生信息的功能:創(chuàng)建存儲過程,實(shí)現(xiàn)查詢所有學(xué)生信息的功能。Create proc proc_7_1AsSelect * From xsqk29 例例2: 創(chuàng)建存儲過程創(chuàng)建存儲過程proc_7_2,要求實(shí)現(xiàn)根據(jù)學(xué)生學(xué)號,要求實(shí)現(xiàn)根據(jù)學(xué)生學(xué)號,產(chǎn)生不同結(jié)果,如果該學(xué)生信息不存在,則顯示產(chǎn)生不同結(jié)果,如果該學(xué)生信息不存在,則顯示“無此學(xué)號的學(xué)生!無此學(xué)號的學(xué)生!”,否則返回該學(xué)生的基本,否則返回該學(xué)生的基本信息信息。Create proc proc_7_2sno char(8)AsIf exi
23、sts(Select * From xsqk where 學(xué)號= sno) select * From xsqk where 學(xué)號= snoElse print 無此學(xué)號的學(xué)生!30例例4:在學(xué)生成績庫中創(chuàng)建存儲過程:在學(xué)生成績庫中創(chuàng)建存儲過程proc_7_t2,要求實(shí)現(xiàn)如要求實(shí)現(xiàn)如下功能:根據(jù)學(xué)生學(xué)號,如果此學(xué)生存在,則產(chǎn)生該生的下功能:根據(jù)學(xué)生學(xué)號,如果此學(xué)生存在,則產(chǎn)生該生的課程成績列表,其中包括學(xué)號、課程號、課程名稱、成績、課程成績列表,其中包括學(xué)號、課程號、課程名稱、成績、學(xué)分等;如果此學(xué)生不存在,則顯示學(xué)分等;如果此學(xué)生不存在,則顯示“無此學(xué)生!無此學(xué)生!”。并。并調(diào)用此存儲過程,
24、顯示調(diào)用此存儲過程,顯示“02020101”學(xué)生的課程成績情學(xué)生的課程成績情況。況。create proc proc_7_t2 sno char(8) as if exists(select * from xsqk where 學(xué)號=sno) Select 學(xué)號, xscj.課程號, 課程名, 成績, xskc.學(xué)分 From xscj, xskc Where xscj.課程號 = xskc.課程號 and 學(xué)號= sno else print 無此學(xué)生!31 實(shí)際應(yīng)用例子,取當(dāng)前實(shí)際應(yīng)用例子,取當(dāng)前ID號號CREATE PROCEDURE sp_getidas_in_code varchar
25、(40),an_out_id varchar(20) OUTPUTASBEGIN DECLARE an_count int SELECT an_count = COUNT (*) FROM GY_IDENTITY WHERE BMC = as_in_code IF (an_count = 0) INSERT INTO GY_IDENTITY(BMC,DQZ,CSZ,DZZ)VALUES(as_in_code,1,1,1) ELSE UPDATE GY_IDENTITY SET DQZ = DQZ + 1 WHERE BMC = as_in_code SELECT an_out_id = DQZ
26、 FROM GY_IDENTITY WHERE BMC = as_in_code SELECT CONVERT(VARCHAR(20),an_out_id)ENDGO32 說明:說明: (1)在一個(gè)批處理中,)在一個(gè)批處理中,Create procedure語句語句不能與其他不能與其他SQL語句合并在一起(封裝性)。語句合并在一起(封裝性)。 (2)存儲過程作為數(shù)據(jù)庫對象其命名必須符合)存儲過程作為數(shù)據(jù)庫對象其命名必須符合命名規(guī)則。命名規(guī)則。 (3)只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建屬于當(dāng)前數(shù)據(jù)庫)只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建屬于當(dāng)前數(shù)據(jù)庫的存儲過程。的存儲過程。 (4)一個(gè)存儲過程的最大尺寸為)一個(gè)存儲過程的
27、最大尺寸為128M。33 語法格式:語法格式:ALTER PROCEDURE 存儲過程名稱 參數(shù)定義AS SQL語句 例:修改在例例:修改在例7.5中已創(chuàng)建的存儲過程中已創(chuàng)建的存儲過程proc_7_t1,要求在要求在顯示列中加入成績列。顯示列中加入成績列。alter proc proc_7_t1asSelect xsqk.學(xué)號, 姓名, 性別, xskc.課程號, 課程名, xskc.學(xué)分, 成績 From xsqk, xscj, xskc Where xsqk.學(xué)號 = xscj.學(xué)號 and xscj.課程號 = xskc.課程號 and 班級 = 計(jì)算機(jī)020334 語法格式:語法格式:
28、 DROP PROCEDURE 存儲過程名稱存儲過程名稱 例:刪除存儲過程例:刪除存儲過程proc_7_1。 drop proc proc_7_1 一般地,在用一般地,在用T-SQL命令創(chuàng)建存儲過程時(shí),總是先確定命令創(chuàng)建存儲過程時(shí),總是先確定要創(chuàng)建的存儲過程是否已經(jīng)存在,如果存在,那么就刪除要創(chuàng)建的存儲過程是否已經(jīng)存在,如果存在,那么就刪除重建。我們可以用如下語句實(shí)現(xiàn):重建。我們可以用如下語句實(shí)現(xiàn): If exists( select name from sysobjects where name = proc_7_1 and type = P) drop proc proc_7_135觸發(fā)器
29、:用戶定義的觸發(fā)器:用戶定義的SQL 事務(wù)命令的集合。當(dāng)對一個(gè)表進(jìn)行插入、事務(wù)命令的集合。當(dāng)對一個(gè)表進(jìn)行插入、更改、刪除時(shí),這組命令就會自動執(zhí)行。更改、刪除時(shí),這組命令就會自動執(zhí)行。主要作用:實(shí)現(xiàn)由主鍵和外鍵所不能保證的參照完整性和數(shù)據(jù)的一主要作用:實(shí)現(xiàn)由主鍵和外鍵所不能保證的參照完整性和數(shù)據(jù)的一致性;強(qiáng)化約束;跟蹤變化;級聯(lián)運(yùn)行;存儲過程的調(diào)用。致性;強(qiáng)化約束;跟蹤變化;級聯(lián)運(yùn)行;存儲過程的調(diào)用。 Transaction cannot be processed. * Member number cannot be modifiedCREATE TRIGGER member_update ON
30、 member FOR UPDATEASIF UPDATE (member_no)BEGINRAISERROR (Transaction cannot be processed.* Member number cannot be modified., 10, 1)ROLLBACK TRANSACTIONmember_nolastnamefirstname middleinitial photograph10020100211002210023AndersonBarrBarrAndersonAndrewAndrewBillBillARNULLB1234BarrAndrew RUPDATE mem
31、berSET member_no = 10021WHERE member_no = 123436 觸發(fā)器的種類觸發(fā)器的種類 AFTER觸發(fā)器觸發(fā)器 只有對表執(zhí)行某一操作這只有對表執(zhí)行某一操作這后,才能被觸發(fā)??梢詾楸淼耐徊僮鞫ê?,才能被觸發(fā)??梢詾楸淼耐徊僮鞫x多個(gè)觸發(fā)器,其觸發(fā)次序可使用義多個(gè)觸發(fā)器,其觸發(fā)次序可使用sp_settriggerorder來完成。來完成。 INSTEAD OF觸發(fā)器觸發(fā)器 并不執(zhí)行其所定義并不執(zhí)行其所定義的操作而僅是執(zhí)行觸發(fā)器本身,對所執(zhí)行的操作而僅是執(zhí)行觸發(fā)器本身,對所執(zhí)行的的SQL語句的一個(gè)替代操作,對同一操作語句的一個(gè)替代操作,對同一操作只能定義一個(gè)只
32、能定義一個(gè)instead of 觸發(fā)器。觸發(fā)器。37 INSERTED和和DELETED臨時(shí)表臨時(shí)表 觸發(fā)器代碼最強(qiáng)大的功能之一是能夠比較記錄的新舊版觸發(fā)器代碼最強(qiáng)大的功能之一是能夠比較記錄的新舊版本,用戶可以根據(jù)記錄的改變適時(shí)地做出決定。本,用戶可以根據(jù)記錄的改變適時(shí)地做出決定。 插入一行時(shí),插入一行時(shí),INSERTED表保存了一份插入行的拷貝。表保存了一份插入行的拷貝。 刪除一行時(shí),刪除一行時(shí),DELETED表保存了刪除行的拷貝。表保存了刪除行的拷貝。 更新一行時(shí),更新一行時(shí),INSERTED表中保存了一份新行的拷貝,表中保存了一份新行的拷貝, DELETED表中保存了一份舊行的拷貝。表中
33、保存了一份舊行的拷貝。 可以使用這兩個(gè)臨時(shí)的駐留內(nèi)存的表測試某些數(shù)據(jù)修改可以使用這兩個(gè)臨時(shí)的駐留內(nèi)存的表測試某些數(shù)據(jù)修改的效果及設(shè)置觸發(fā)器操作的條件,便不能直接對這兩個(gè)臨的效果及設(shè)置觸發(fā)器操作的條件,便不能直接對這兩個(gè)臨時(shí)表中的數(shù)據(jù)進(jìn)行更改。時(shí)表中的數(shù)據(jù)進(jìn)行更改。38 用用T-SQL命令創(chuàng)建命令創(chuàng)建 語法格式:語法格式:CREATE TRIGGER 觸發(fā)器名稱ON 表或視圖 FOR | AFTER(默認(rèn)) | INSTEAD OF DELETE,INSERT,UPDATEAS SQL語句 39這個(gè)例子是用來跟蹤藥房系統(tǒng)發(fā)藥減庫存情況的每一筆明細(xì)帳這個(gè)例子是用來跟蹤藥房系統(tǒng)發(fā)藥減庫存情況的每一筆
34、明細(xì)帳,當(dāng)有庫存與臺帳不符時(shí)當(dāng)有庫存與臺帳不符時(shí),可以據(jù)此來可以據(jù)此來判斷是哪一筆交易有問題判斷是哪一筆交易有問題,從面進(jìn)一步定位發(fā)生錯(cuò)誤的模塊從面進(jìn)一步定位發(fā)生錯(cuò)誤的模塊.CREATE TRIGGER dbo.TRI_YF_KCMX_UPDATE ON dbo.YF_KCMX FOR UPDATE AS declare ypxh numeric(10) declare ypcd numeric(10) declare yfsb numeric(2) declare ckbh numeric(2) declare yypsl numeric(10,2) declare xypsl numeri
35、c(10,2) declare host char(50) IF UPDATE (YPSL) BEGIN select yypsl = deleted.YPSL FROM deleted select ypxh = inserted.YPXH,ypcd = inserted.YPCD,yfsb = inserted.YFSB,ckbh = inserted.CKBH, xypsl = inserted.YPSL from inserted if(yfsb = 1) BEGIN select host = hostname from master.dbo.sysprocesses where s
36、pid = spid insert into EMP_KCMX(YFSB,CKBH,YPXH,YPCD,YYPSL,YPSL,XYPSL,HOST,JLSJ) values(yfsb,ckbh,ypxh,ypcd,yypsl,0,xypsl,host,getdate() END END40 CTEATE TRIGGER 語句必須是批處理的第一個(gè)語句必須是批處理的第一個(gè)語句;語句; 表的所有者具有創(chuàng)建觸發(fā)器的默認(rèn)權(quán)限,表的所表的所有者具有創(chuàng)建觸發(fā)器的默認(rèn)權(quán)限,表的所有者不能把該權(quán)限傳給其他用戶;有者不能把該權(quán)限傳給其他用戶; 觸發(fā)器是數(shù)據(jù)庫對象,其命名必須符合命名規(guī)則。觸發(fā)器是數(shù)據(jù)庫對象,其命名
37、必須符合命名規(guī)則。 盡管在觸發(fā)器的盡管在觸發(fā)器的SQL語句中可以參照其他數(shù)據(jù)庫語句中可以參照其他數(shù)據(jù)庫中的對象,但是,觸發(fā)器只能創(chuàng)建在當(dāng)前數(shù)據(jù)庫中的對象,但是,觸發(fā)器只能創(chuàng)建在當(dāng)前數(shù)據(jù)庫中。中。 一個(gè)觸發(fā)器只能對應(yīng)一個(gè)表,這是由觸發(fā)器的機(jī)一個(gè)觸發(fā)器只能對應(yīng)一個(gè)表,這是由觸發(fā)器的機(jī)制決定的。制決定的。 41 修改觸發(fā)器的名字修改觸發(fā)器的名字 sp_rename 觸發(fā)器原名稱觸發(fā)器原名稱,新名稱新名稱 2. 修改觸發(fā)器正文修改觸發(fā)器正文 使用企業(yè)管理器使用企業(yè)管理器 使用使用T-SQL命令命令 語法格式:語法格式: ALTER TRIGGER 觸發(fā)器名稱觸發(fā)器名稱 ON 表或視圖表或視圖 FOR
38、| AFTER | INSTEAD OF DELETE,INSERT,UPDATE AS SQL語句語句42 語法格式:語法格式: DROP TRIGGER 觸發(fā)器名稱觸發(fā)器名稱 如果刪除觸發(fā)器所在的表時(shí),系統(tǒng)將自動如果刪除觸發(fā)器所在的表時(shí),系統(tǒng)將自動刪除與該表相關(guān)的觸發(fā)器。刪除與該表相關(guān)的觸發(fā)器。43關(guān)系數(shù)據(jù)庫系統(tǒng)基本概念 設(shè)備設(shè)備(device,tablespace,datafile):存放數(shù)據(jù)存放數(shù)據(jù)庫的物理定義;庫的物理定義; 日志日志(log):記錄對數(shù)據(jù)庫的任何操作,用于備記錄對數(shù)據(jù)庫的任何操作,用于備份和恢復(fù);份和恢復(fù); 用戶用戶(User):可以使用數(shù)據(jù)庫中具體內(nèi)容的人可以使用
39、數(shù)據(jù)庫中具體內(nèi)容的人員定義;員定義; 角色角色(Role):給同一用戶賦予不同的角色,享給同一用戶賦予不同的角色,享有不同的權(quán)限;有不同的權(quán)限; 權(quán)限權(quán)限(Privilege):賦予用戶操作數(shù)據(jù)的權(quán)限;賦予用戶操作數(shù)據(jù)的權(quán)限;44 數(shù)據(jù)庫的發(fā)展數(shù)據(jù)庫的發(fā)展 當(dāng)前流行數(shù)據(jù)庫:關(guān)系型數(shù)據(jù)庫當(dāng)前流行數(shù)據(jù)庫:關(guān)系型數(shù)據(jù)庫 Oracle MS Sql Server Sybase DB2 Infomix 面向?qū)ο蟮臄?shù)據(jù)庫面向?qū)ο蟮臄?shù)據(jù)庫 Cach 19501960197019801990 2000層次模型層次模型網(wǎng)絡(luò)模型網(wǎng)絡(luò)模型關(guān)系模型關(guān)系模型的提出的提出早期關(guān)系模早期關(guān)系模型的實(shí)現(xiàn)型的實(shí)現(xiàn)關(guān)系模型關(guān)系模
40、型的繁榮的繁榮SQL Server 2000后關(guān)系模后關(guān)系模型數(shù)據(jù)庫型數(shù)據(jù)庫45 歷史歷史 最初由Microsoft,Sybase 和Ashton-Tate三家公司共同開發(fā)的,于1988 年推出了第一個(gè)OS/2 版本,在Windows NT 推出后Microsoft與Sybase 在SQL Server 的開發(fā)上就分道揚(yáng)鑣了,Microsoft 將SQL Server 移植到Windows NT系統(tǒng)上專注于開發(fā)推廣SQL Server 的Windows NT 版本,Sybase 則較專注于SQL Server在UNIX 操作系統(tǒng)上的應(yīng)用 版本歷史版本歷史 96年,SQL Server6.5 9
41、8年,SQL Server 7.0 2000年,SQL Server 2000,中文版 2005年10發(fā)布MS SQL Server 200546 表表(Table):數(shù)據(jù)庫存儲數(shù)據(jù)的地方,由屬性和記數(shù)據(jù)庫存儲數(shù)據(jù)的地方,由屬性和記錄構(gòu)成的二維關(guān)系表錄構(gòu)成的二維關(guān)系表; 視圖視圖(View):基于單表或多表的查詢;基于單表或多表的查詢; 存儲過程存儲過程(Store procedure):存儲于數(shù)據(jù)庫服務(wù)存儲于數(shù)據(jù)庫服務(wù)器上的一系列操作的合集,由服務(wù)器執(zhí)行,可以器上的一系列操作的合集,由服務(wù)器執(zhí)行,可以增強(qiáng)可管理性和運(yùn)行效率;增強(qiáng)可管理性和運(yùn)行效率; 觸發(fā)器觸發(fā)器(Triggers):當(dāng)對表的
42、某種操作發(fā)生時(shí),就當(dāng)對表的某種操作發(fā)生時(shí),就引發(fā)其他的一些邏輯處理;引發(fā)其他的一些邏輯處理; 主鍵主鍵(Primary Key):用于惟一地確定一條記錄用于惟一地確定一條記錄 索引索引(Index):服務(wù)于快速查詢,寄生于表的一種服務(wù)于快速查詢,寄生于表的一種服務(wù);服務(wù); 數(shù)據(jù)庫數(shù)據(jù)庫(database):上述各對象的集合;上述各對象的集合;4748 內(nèi)容內(nèi)容 MS Sql Server 2000的不同版本及要求 MS Sql Server 2000的安裝 系統(tǒng)管理工具簡單介紹 系統(tǒng)的組成 系統(tǒng)設(shè)置 目標(biāo)和要求目標(biāo)和要求 熟練掌握數(shù)據(jù)庫安裝過程 了解不同版本要求 了解系統(tǒng)設(shè)置49 企業(yè)版(企業(yè)
43、版(Enterprise Edition) 支持所有的SQL Server 2000 特性,可作為大型Web站點(diǎn)、企業(yè)OLTP(聯(lián)機(jī)事務(wù)處理)以及數(shù)據(jù)倉庫系統(tǒng)等的產(chǎn)品數(shù)據(jù)庫服務(wù)器 標(biāo)準(zhǔn)版(標(biāo)準(zhǔn)版(Standard Edition) 用于小型的工作組或部門 個(gè)人版(個(gè)人版(Personal Edition) 用于單機(jī)系統(tǒng)或客戶機(jī) 開發(fā)者版(開發(fā)者版(Developer Edition) 用于程序員開發(fā)應(yīng)用程序,這些程序需要SQL Server 2000 作為數(shù)據(jù)存儲設(shè)備。此外,此外,SQL Server 2000 還有桌面引擎(還有桌面引擎(Desktop Engine) 和和Windows C
44、E 版。用戶可以根據(jù)實(shí)際情況選擇所要安裝的版。用戶可以根據(jù)實(shí)際情況選擇所要安裝的SQL Server 2000 版本。版本。 50計(jì)算機(jī) Intel 以及兼容芯片 (Pentium 166 MHz 或者更高內(nèi)存最小 32 MB最小 64 MB (Windows NT/2000 Server,企業(yè)版本) 硬盤95 到 270 MB,一般為 250 MB 文件系統(tǒng)NTFS 或者 FAT推薦使用NTFS格式的文件系統(tǒng)MB操作系統(tǒng)Windows NT Server, Enterprise Edition, 4.0 with SP4 or later; Windows NT Server 4.0 wit
45、h SP6 or later;Windows NT Workstation 4.0 with SP4 or later; orWindows 95/98 Windows95/98Windows NT/2000其他要求Internet Explorer 4.01 及 SP1 或者更高版本5152535455565758596061626364 安裝前了解版本要求,確保硬件及軟件環(huán)安裝前了解版本要求,確保硬件及軟件環(huán)境要求境要求 正式系統(tǒng)注意安裝目錄的選擇正式系統(tǒng)注意安裝目錄的選擇 正式系統(tǒng)注意用戶數(shù)正式系統(tǒng)注意用戶數(shù)65 為什么需要講系統(tǒng)的設(shè)置?為什么需要講系統(tǒng)的設(shè)置? 微小的差異可能照成系統(tǒng)性
46、能的巨大差別 內(nèi)容內(nèi)容 操作系統(tǒng)安裝設(shè)置 數(shù)據(jù)庫參數(shù)設(shè)置66 啟用網(wǎng)絡(luò)應(yīng)用模式為啟用網(wǎng)絡(luò)應(yīng)用模式為“最大化網(wǎng)絡(luò)應(yīng)用程最大化網(wǎng)絡(luò)應(yīng)用程序數(shù)據(jù)吞吐量序數(shù)據(jù)吞吐量”67 避免講系統(tǒng)避免講系統(tǒng)pagefile.sys與與ms sql server檔案放在同一硬盤上檔案放在同一硬盤上68 文件系統(tǒng)選擇文件系統(tǒng)選擇 安全與性能考慮:NTFS 絕對不要使用壓縮 開關(guān)不必要的服務(wù)開關(guān)不必要的服務(wù) IIS Web Server,SMTP Virtual Server 不要與大量網(wǎng)絡(luò)流量應(yīng)用服務(wù)期安裝在同一機(jī)器中 主域控制器、Exchange Server、MSMQ、FTP Server、Print Server
47、、MTS69 通訊協(xié)議設(shè)定通訊協(xié)議設(shè)定 僅安裝需要用到的協(xié)議,多余的會拖跨系統(tǒng)70 內(nèi)存設(shè)置內(nèi)存設(shè)置:由由SQL Server自動調(diào)整自動調(diào)整 考慮使用考慮使用“為為SQL Server保留物理內(nèi)保留物理內(nèi)存存”71 考慮使用考慮使用“在在Windows上提升上提升SQL Server的優(yōu)先級的優(yōu)先級” 預(yù)設(shè)值是 0,也就是優(yōu)先權(quán)7。 啟動后 SQL Server 將在 Microsoft Windows NT 4.0 或 Windows 2000 排程器中以優(yōu)先權(quán)13 執(zhí)行。 專為執(zhí)行 SQL Server 的 Server 適用72 SQL SERVER 服務(wù)管理服務(wù)管理 SQL SERV
48、ER 日常使用基本管理工具日常使用基本管理工具73 SQL Server 服務(wù)管理器服務(wù)管理器 SQL Server 服務(wù) 分布式交易協(xié)調(diào)器 (Distributed Transaction Coordinator ) 全文搜尋引擎服務(wù)(Microsoft Search ) SQL Server 代理程序 (SQL Server Agent )74 使用使用 Windows 2000 服務(wù)控制管理器服務(wù)控制管理器75 使用企業(yè)管理器使用企業(yè)管理器76 使用命令啟動使用命令啟動 net start mssqlserver net start SQLServerAgent 在單用戶模式下啟動在單用
49、戶模式下啟動 SQL Server sqlservr.exe -c m 在特殊情況下使用在特殊情況下使用,例如可能要更改服務(wù)器配置例如可能要更改服務(wù)器配置選項(xiàng)或恢復(fù)已損壞的選項(xiàng)或恢復(fù)已損壞的 master 數(shù)據(jù)庫或其它系數(shù)據(jù)庫或其它系統(tǒng)數(shù)據(jù)庫。統(tǒng)數(shù)據(jù)庫。 77 菜單菜單 企業(yè)管理器(Enterprise Manager) 服務(wù)管理器(Service Manager) 查詢分析器(Query Analyzer) 導(dǎo)入與導(dǎo)出數(shù)據(jù)(Input and Export Data) 服務(wù)/客戶網(wǎng)絡(luò)實(shí)用工具。(Server/Client Network Utility) 事件探察器: 聯(lián)機(jī)叢書 任務(wù)欄任務(wù)欄
50、 服務(wù)管理器 DEMO78 數(shù)據(jù)庫及所有對象任務(wù)的管理數(shù)據(jù)庫及所有對象任務(wù)的管理 數(shù)據(jù)庫管理(創(chuàng)建、配置、修改、刪除、備份) 用戶管理 安全管理 日志管理 自動任務(wù)管理 集成管理平臺集成管理平臺 DEMO7980 內(nèi)容內(nèi)容 數(shù)據(jù)庫管理介紹 創(chuàng)建新的數(shù)據(jù)庫 數(shù)據(jù)庫的備份與恢復(fù) 數(shù)據(jù)庫鎖的管理 安全管理(用戶與權(quán)限) 目標(biāo)和要求目標(biāo)和要求 熟練掌握數(shù)據(jù)庫日常管理81系統(tǒng)的安裝與升級系統(tǒng)的安裝與升級創(chuàng)建并管理數(shù)據(jù)庫創(chuàng)建并管理數(shù)據(jù)庫數(shù)據(jù)庫及用戶的安全管理:網(wǎng)絡(luò)安全、系統(tǒng)核查數(shù)據(jù)庫及用戶的安全管理:網(wǎng)絡(luò)安全、系統(tǒng)核查備份與恢復(fù)備份與恢復(fù)使用者管理使用者管理其他例行檢查工作其他例行檢查工作調(diào)整及系統(tǒng)監(jiān)控調(diào)
51、整及系統(tǒng)監(jiān)控容量規(guī)劃容量規(guī)劃系統(tǒng)最佳化系統(tǒng)最佳化文件管理文件管理其他其他管理員任務(wù)繁重,比喻:大內(nèi)總管管理員任務(wù)繁重,比喻:大內(nèi)總管總結(jié):總結(jié):1.保證系統(tǒng)的高效運(yùn)行 2.保證系統(tǒng)的穩(wěn)定與安全安裝升級安裝升級創(chuàng)建數(shù)創(chuàng)建數(shù)據(jù)庫據(jù)庫系統(tǒng)最佳系統(tǒng)最佳管理數(shù)據(jù)庫管理數(shù)據(jù)庫用戶管理用戶管理備份恢復(fù)備份恢復(fù)網(wǎng)絡(luò)安全網(wǎng)絡(luò)安全容量規(guī)劃容量規(guī)劃82 內(nèi)容內(nèi)容 數(shù)據(jù)庫管理介紹 創(chuàng)建新的數(shù)據(jù)庫 數(shù)據(jù)庫的備份與恢復(fù) 數(shù)據(jù)庫鎖的管理 安全管理(用戶與權(quán)限) 目標(biāo)和要求目標(biāo)和要求 熟練掌握數(shù)據(jù)庫日常管理83 數(shù)據(jù)庫是如何存儲的?數(shù)據(jù)庫是如何存儲的? 創(chuàng)建數(shù)據(jù)庫的辦法創(chuàng)建數(shù)據(jù)庫的辦法 創(chuàng)建文件組創(chuàng)建文件組 如何創(chuàng)建表如何創(chuàng)
52、建表84 創(chuàng)建數(shù)據(jù)庫創(chuàng)建數(shù)據(jù)庫 數(shù)據(jù)庫 表 主鍵 索引 Demo85 數(shù)據(jù)庫現(xiàn)在直接與文件對應(yīng)。每一個(gè)數(shù)據(jù)庫都數(shù)據(jù)庫現(xiàn)在直接與文件對應(yīng)。每一個(gè)數(shù)據(jù)庫都對應(yīng)著至少一個(gè)數(shù)據(jù)文件對應(yīng)著至少一個(gè)數(shù)據(jù)文件(Data file)和日志文和日志文件件(Log file) 主數(shù)據(jù)文件主數(shù)據(jù)文件(Primary Data file):數(shù)據(jù)庫的起點(diǎn),數(shù)據(jù)庫的起點(diǎn),存儲數(shù)據(jù)庫對象的定義。后綴為存儲數(shù)據(jù)庫對象的定義。后綴為.mdf 輔助數(shù)據(jù)文件輔助數(shù)據(jù)文件(Secondary Data file),后綴后綴為為.ndf 日志文件,存儲數(shù)據(jù)庫的事務(wù)日志信息。日志文件,存儲數(shù)據(jù)庫的事務(wù)日志信息。 初始建立時(shí),拷貝初始建立
53、時(shí),拷貝Model庫庫 Data Page = 8K,單行不能跨頁單行不能跨頁86Data file.mdf or .ndfLog file.ldfExtent (8 contiguous 8-KB pages)Page (8 KB)Table,indexesData Max row size= 8060 bytesDatabase87 定義好的定義好的SQL 語句語句 定義好的基礎(chǔ)數(shù)據(jù)定義好的基礎(chǔ)數(shù)據(jù) 工具工具 SETUP(標(biāo)準(zhǔn)) PowerDesigner PowerBuider bcp88語句格式:語句格式:CREATE DATABASE 數(shù)據(jù)庫名ON (數(shù)據(jù)文件文件組定義(FILEGR
54、OUP)LOG ON (日志文件定義)數(shù)據(jù)日志文件定義格式包括:數(shù)據(jù)日志文件定義格式包括:邏輯文件名, 物理文件名, 容量 (初始、最大、增長幅度)NAME , FILENAME , SIZE , MAXSIZE, FILEGROWTH定義主數(shù)據(jù)文件加:定義主數(shù)據(jù)文件加:PRIMARY定義文件組加:定義文件組加:FileGroup 文件組名文件組名89例 : 創(chuàng) 建 一 個(gè)例 : 創(chuàng) 建 一 個(gè) student數(shù) 據(jù) 庫 , 操 作 系 統(tǒng) 文 件 名 為 :數(shù) 據(jù) 庫 , 操 作 系 統(tǒng) 文 件 名 為 :student_dat.mdf,數(shù)據(jù)文件大小為數(shù)據(jù)文件大小為2MB,以以10%速度增長
55、,速度增長,日志文件大小為日志文件大小為1MB。T-SQL語句如下:語句如下:create database student on (name=student_dat, filename=d:databasestudent_dat.mdf, filegrowth=10%) log on (name=student_log, filename=d:databasestudent_log.ldf, filegrowth=10%)90 可以使用不同的方法來修改數(shù)據(jù)庫。可以使用不同的方法來修改數(shù)據(jù)庫。 在企業(yè)管理器中修改數(shù)據(jù)庫在企業(yè)管理器中修改數(shù)據(jù)庫 用用T-SQL語句修改數(shù)據(jù)庫語句修改數(shù)據(jù)庫 ALT
56、ER DATABASE 數(shù)據(jù)庫名數(shù)據(jù)庫名 ADD FILE 數(shù)據(jù)文件定義數(shù)據(jù)文件定義 TO FILEGROUP ADD LOG FILE 事務(wù)日志文件定義事務(wù)日志文件定義 REMOVE FILE 邏輯文件名邏輯文件名 ADD FILEGROUP 文件組名文件組名 REMOVE FILEGROUP 文件組名文件組名 MODIFY FILE 數(shù)據(jù)文件定義數(shù)據(jù)文件定義 MODIFY NAME = 新數(shù)據(jù)庫名新數(shù)據(jù)庫名 MODIFY FILEGROUP 文件組名文件組名91 例:例: 向數(shù)據(jù)庫中添加文件 ALTER DATABASE student ADD FILE ( NAME = student_
57、dat2, FILENAME = d:databasestudent_dat2.ndf, SIZE = 5MB, MAXSIZE = 30MB, FILEGROWTH = 5MB ) 更改文件 ALTER DATABASE student MODIFY FILE (NAME =student_dat, SIZE = 20MB) 92 用用T-SQL語句壓縮數(shù)據(jù)庫語句壓縮數(shù)據(jù)庫 語法語法: DBCC SHRINKDATABASE (數(shù)據(jù)庫名,壓縮后所剩余空間百分比) 例:例: 下例將 Student 用戶數(shù)據(jù)庫中名為 student_dat的文件收縮到 7 MB。 USE Student go
58、DBCC SHRINKFILE (student_dat, 7) 93 用用T-SQL語句刪除數(shù)據(jù)庫語句刪除數(shù)據(jù)庫 語法語法: DROP DATABASE 數(shù)據(jù)庫名稱數(shù)據(jù)庫名稱 注:不能除去當(dāng)前正在使用的數(shù)據(jù)庫;不注:不能除去當(dāng)前正在使用的數(shù)據(jù)庫;不能除去系統(tǒng)數(shù)據(jù)庫;在除去用于復(fù)制的數(shù)能除去系統(tǒng)數(shù)據(jù)庫;在除去用于復(fù)制的數(shù)據(jù)庫之前,首先刪除復(fù)制;據(jù)庫之前,首先刪除復(fù)制; 若要使用若要使用DROP DATABASE,連接的數(shù)據(jù)為上下文連接的數(shù)據(jù)為上下文必須在必須在master數(shù)據(jù)庫中。數(shù)據(jù)庫中。94 查看數(shù)據(jù)庫定義信息查看數(shù)據(jù)庫定義信息 使用系統(tǒng)存儲過程使用系統(tǒng)存儲過程sp_helpdb查看數(shù)據(jù)庫
59、查看數(shù)據(jù)庫或所有數(shù)據(jù)庫的信息?;蛩袛?shù)據(jù)庫的信息。 語法格式:語法格式:sp_helpdb 數(shù)據(jù)庫名稱。數(shù)據(jù)庫名稱。 如果不指定數(shù)據(jù)庫名稱,將返回所有數(shù)據(jù)如果不指定數(shù)據(jù)庫名稱,將返回所有數(shù)據(jù)庫的信息。庫的信息。 查看數(shù)據(jù)庫數(shù)據(jù)、日志空間查看數(shù)據(jù)庫數(shù)據(jù)、日志空間 使用使用sp_spaceused查看數(shù)據(jù)庫數(shù)據(jù)空間。查看數(shù)據(jù)庫數(shù)據(jù)空間。 語法格式:語法格式:sp_spaceused 數(shù)據(jù)庫對象數(shù)據(jù)庫對象95 如果如果master系統(tǒng)數(shù)據(jù)庫遭到破壞系統(tǒng)數(shù)據(jù)庫遭到破壞 ,如何處理如何處理? 從當(dāng)前備份還原。 用重建主控實(shí)用工具完全重建。 原則:如果可以訪問 master 數(shù)據(jù)庫(至少部分可用)而能夠啟
60、動 SQL Server 實(shí)例,則可以從完整數(shù)據(jù)庫備份中還原 master 數(shù)據(jù)庫。如果由于 master 數(shù)據(jù)庫嚴(yán)重?fù)p壞而無法啟動 SQL Server 實(shí)例,則首先需要使用重建主控實(shí)用工具重建 master 數(shù)據(jù)庫,然后才可以用普通方法還原當(dāng)前數(shù)據(jù)庫備份。注注:運(yùn)行運(yùn)行 Rebuildm.exe。位于。位于 Program FilesMicrosoft SQL Server80ToolsBinn 目錄中目錄中 96 表表(Table)是最重要的數(shù)據(jù)庫對象是最重要的數(shù)據(jù)庫對象 創(chuàng)建表的兩個(gè)方法創(chuàng)建表的兩個(gè)方法 T-SQL Create Table table_name() SQL-EM97
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)地產(chǎn)潮流12月雙十二整合營銷活動方案
- 四川省綿陽市游仙區(qū)2024屆九年級下學(xué)期中考模擬考試數(shù)學(xué)試卷(含答案)
- 5年中考3年模擬試卷初中道德與法治九年級下冊02第2課時(shí)復(fù)雜多變的關(guān)系
- (統(tǒng)考版)2023版高考化學(xué)一輪復(fù)習(xí)課時(shí)作業(yè)25水的電離和溶液的ph
- (統(tǒng)考版)2023版高考化學(xué)一輪復(fù)習(xí)第二章化學(xué)物質(zhì)及其變化第1講物質(zhì)的組成、分類和性質(zhì)變化學(xué)生用書
- 交通運(yùn)輸合作伙伴
- 冷藏苗木運(yùn)輸協(xié)議模板
- 乳制品企業(yè)污泥清運(yùn)協(xié)議
- 親子樂園涂裝合同模板
- 乳制品冷鏈運(yùn)輸協(xié)議范本
- 新教科版六下科學(xué)2.4《多種多樣的動物》教學(xué)課件
- GA 884-2018公安單警裝備催淚噴射器
- 《靜夜思》課件版
- 職場個(gè)人形象設(shè)計(jì)課件
- 小學(xué)數(shù)學(xué)思想方法(課件)
- 氫氧化鈉(CAS:1310-73-2)安全技術(shù)說明書
- 管理會計(jì)知識培訓(xùn)課件
- 旅游規(guī)劃收費(fèi)標(biāo)準(zhǔn)
- 市政工程施工安全檢查標(biāo)準(zhǔn)評分表
- 校園突發(fā)事件應(yīng)急領(lǐng)導(dǎo)小組成員與職責(zé)
- 《燃料電池的實(shí)驗(yàn)探究》說課課件(全國大賽獲獎案例)
評論
0/150
提交評論