版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2020/8/29,1,第5章 數(shù)據(jù)庫(kù)對(duì)象的操作,5.1 數(shù)據(jù)類型 5.2 表操作 5.3 視圖操作 5.4 索引操作 5.5 存儲(chǔ)過(guò)程 5.6 觸發(fā)器 5.7 圖 表,2020/8/29,2,5.1 數(shù)據(jù)類型,5.1.1 系統(tǒng)數(shù)據(jù)類型 5.1.2 自定義數(shù)據(jù)類型,2020/8/29,3,5.1.1 系統(tǒng)數(shù)據(jù)類型,1. 整型數(shù)據(jù)類型 2. 浮點(diǎn)數(shù)據(jù)類型 3. 字符數(shù)據(jù)類型 4. 日期和時(shí)間數(shù)據(jù)類型 5. 文本和圖形數(shù)據(jù)類型,6. 貨幣數(shù)據(jù)類型 7. 位數(shù)據(jù)類型 8. 二進(jìn)制數(shù)據(jù)類型 9. 特殊數(shù)據(jù)類型 10. 新增數(shù)據(jù)類型,2020/8/29,4,1. 整型數(shù)據(jù)類型,整型數(shù)據(jù)類型是最常用的數(shù)據(jù)
2、類型之一,它主要用來(lái)存儲(chǔ)數(shù)值,可以直接進(jìn)行數(shù)據(jù)運(yùn)算,而不必使用函數(shù)轉(zhuǎn)換。 int(integer):int(或integer)數(shù)據(jù)類型可以存儲(chǔ)從-231(-2,147,483,648)到231-1(2,147,483,647)范圍之間的所有正負(fù)整數(shù)。 Smallint:可以存儲(chǔ)從-215(-32,768)到215-1范圍之間的所有正負(fù)整數(shù) 。 Tinyint:可以存儲(chǔ)從0到255范圍之間的所有正整數(shù)。,2020/8/29,5,2. 浮點(diǎn)數(shù)據(jù)類型,浮點(diǎn)數(shù)據(jù)類型用于存儲(chǔ)十進(jìn)制小數(shù)。浮點(diǎn)數(shù)值的數(shù)據(jù)在SQL Server中采用只入不舍的方式進(jìn)行存儲(chǔ) 。 Real:可以存儲(chǔ)正的或者負(fù)的十進(jìn)制數(shù)值,最大可
3、以有7位精確位數(shù)。 Float:可以精確到第15位小數(shù),其范圍從-1.79E-308到1.79E+308。 Decimal和numeric:Decimal數(shù)據(jù)類型和numeric數(shù)據(jù)類型完全相同,它們可以提供小數(shù)所需要的實(shí)際存儲(chǔ)空間,但也有一定的限制,可以用2到17個(gè)字節(jié)來(lái)存儲(chǔ)從-1038-1到1038-1之間的數(shù)值。,2020/8/29,6,3. 字符數(shù)據(jù)類型,字符數(shù)據(jù)類型可以用來(lái)存儲(chǔ)各種字母、數(shù)字符號(hào)和特殊符號(hào)。 Char:其定義形式為char(n),每個(gè)字符和符號(hào)占用一個(gè)字節(jié)的存儲(chǔ)空間。 Varchar:其定義形式為varchar(n)。用char數(shù)據(jù)類型可以存儲(chǔ)長(zhǎng)達(dá)255個(gè)字符的可變長(zhǎng)
4、度字符串 。 Nchar:其定義形式為nchar(n)。 Nvarchar:其定義形式為nvarchar(n)。,2020/8/29,7,4. 日期和時(shí)間數(shù)據(jù)類型,Datetime:用于存儲(chǔ)日期和時(shí)間的結(jié)合體 。它可以存儲(chǔ)從公元1753年1月1日零時(shí)起到公元9999年12月31日23時(shí)59分59秒之間的所有日期和時(shí)間 。 Smalldatetime:與datetime數(shù)據(jù)類型類似,但其日期時(shí)間范圍較小,它存儲(chǔ)從1900年1月1日到2079年6月6日內(nèi)的日期。,2020/8/29,8,5. 文本和圖形數(shù)據(jù)類型,Text:用于存儲(chǔ)大量文本數(shù)據(jù),其容量理論上為1到231-1(2,147,483,64
5、7)個(gè)字節(jié),但實(shí)際應(yīng)用時(shí)要根據(jù)硬盤的存儲(chǔ)空間而定。 Ntext:與text數(shù)據(jù)類型類似,存儲(chǔ)在其中的數(shù)據(jù)通常是直接能輸出到顯示設(shè)備上的字符,顯示設(shè)備可以是顯示器、窗口或者打印機(jī)。 Image:用于存儲(chǔ)照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個(gè)字節(jié)。,2020/8/29,9,6. 貨幣數(shù)據(jù)類型,Money:用于存儲(chǔ)貨幣值,存儲(chǔ)在money數(shù)據(jù)類型中的數(shù)值以一個(gè)正數(shù)部分和一個(gè)小數(shù)部分存儲(chǔ)在兩個(gè)4字節(jié)的整型值中,存儲(chǔ)范圍為-922337213685477.5808到922337213685477.5808,精度為貨幣單位的萬(wàn)分之一。 Smallmoney:與mon
6、ey數(shù)據(jù)類型類似,但其存儲(chǔ)的貨幣值范圍比money數(shù)據(jù)類型小,其存儲(chǔ)范圍為-214748.3468到214748.3467。,2020/8/29,10,7. 位數(shù)據(jù)類型,Bit:稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長(zhǎng)度為1字節(jié)。,2020/8/29,11,8. 二進(jìn)制數(shù)據(jù)類型,Binary:其定義形式為binary(n),數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是固定的,即n+4字節(jié),當(dāng)輸入的二進(jìn)制數(shù)據(jù)長(zhǎng)度小于n時(shí),余下部分填充0。 Varbinary:其定義形式為varbinary(n),數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是變化的,它為實(shí)際所輸入數(shù)據(jù)的長(zhǎng)度加上4字節(jié)。其它含義同binary。,2020/8/29,12,9. 特殊數(shù)
7、據(jù)類型,Timestamp:亦稱時(shí)間戳數(shù)據(jù)類型,它提供數(shù)據(jù)庫(kù)范圍內(nèi)的唯一值,反應(yīng)數(shù)據(jù)庫(kù)中數(shù)據(jù)修改的相對(duì)順序,相當(dāng)于一個(gè)單調(diào)上升的計(jì)數(shù)器。 Uniqueidentifier:用于存儲(chǔ)一個(gè)16字節(jié)長(zhǎng)的二進(jìn)制數(shù)據(jù)類型,它是SQL Server根據(jù)計(jì)算機(jī)網(wǎng)絡(luò)適配器地址和CPU時(shí)鐘產(chǎn)生的唯一號(hào)碼而生成的全局唯一標(biāo)識(shí)符代碼(Globally Unique Identifier,簡(jiǎn)寫為GUID)。,2020/8/29,13,10. 新增數(shù)據(jù)類型,Bigint:用于存儲(chǔ)從-263(-9,223,372,036,854,775,807)到263-1(9,223,372,036,854,775,807)之間的所有
8、正負(fù)整數(shù)。 sql_variant:用于存儲(chǔ)除文本、圖形數(shù)據(jù)和timestamp類型數(shù)據(jù)外的其它任何合法的SQL Server數(shù)據(jù)。 table:用于存儲(chǔ)對(duì)表或者視圖處理后的結(jié)果集。這種新的數(shù)據(jù)類型使得變量可以存儲(chǔ)一個(gè)表,從而使函數(shù)或過(guò)程返回查詢結(jié)果更加方便、快捷。,2020/8/29,14,5.1.2 自定義數(shù)據(jù)類型,1. 使用企業(yè)管理器(Enterprise Manager)創(chuàng)建用戶自定義數(shù)據(jù)類型。 2. 利用系統(tǒng)存儲(chǔ)過(guò)程創(chuàng)建用戶自定義數(shù)據(jù)類型 。 系統(tǒng)存儲(chǔ)過(guò)程sp_addtype為用戶提供了T_SQL語(yǔ)句創(chuàng)建自定義數(shù)據(jù)類型的途徑,其語(yǔ)法形式如下: sp_addtype typename=
9、 type, phystype= system_data_type , nulltype= null_type , owner= owner_name,2020/8/29,15,例子5-1:自定義一個(gè)地址數(shù)據(jù)類型。,exec sp_addtype address, varchar(80), not null 其運(yùn)行結(jié)果如下: (1 row(s) affected) type added.,2020/8/29,16,例子5-2:刪除自定義的生日數(shù)據(jù)類型。,exec sp_droptype birthday 其運(yùn)行結(jié)果如下: (1 row(s) affected) (0 row(s) affect
10、ed) Type has been dropped.,2020/8/29,17,5.2 表操作,5.2.1 創(chuàng)建表 5.2.2 增加、刪除和修改字段 5.2.3 創(chuàng)建、刪除和修改約束 5.2.4 查看表格,2020/8/29,18,5.2.1 創(chuàng)建表,在SQL Server 2000中,每個(gè)數(shù)據(jù)庫(kù)中最多可以創(chuàng)建200萬(wàn)個(gè)表,用戶創(chuàng)建數(shù)據(jù)庫(kù)表時(shí),最多可以定義1024列,也就是可以定義1024個(gè)字段。 SQL Server 2000提供了兩種方法創(chuàng)建數(shù)據(jù)庫(kù)表,第一種方法是利用企業(yè)管理器(Enterprise Manager)創(chuàng)建表;另一種方法是利用Transact-SQL語(yǔ)句中的create命令創(chuàng)
11、建表。,2020/8/29,19,1. 利用Enterprise Manager創(chuàng)建表,在Enterprise Manager中,展開指定的服務(wù)器和數(shù)據(jù)庫(kù),打開想要?jiǎng)?chuàng)建新表的數(shù)據(jù)庫(kù),用右鍵單擊表對(duì)象,從彈出的快捷菜單中選擇新建表選項(xiàng),或者在工具欄中選擇圖標(biāo),就會(huì)出現(xiàn)新建表對(duì)話框,在該對(duì)話框中,可以定義列的以下屬性:列名稱、數(shù)據(jù)類型、長(zhǎng)度、精度、小數(shù)位數(shù)、是否允許為空、缺省值、標(biāo)識(shí)列、標(biāo)識(shí)列的初始值、標(biāo)識(shí)列的增量值和是否有行的標(biāo)識(shí)。 然后根據(jù)提示進(jìn)行設(shè)置。,2020/8/29,20,2. 利用create命令創(chuàng)建表,其語(yǔ)法形式如下: CREATE TABLE database_name. own
12、er .| owner. table_name( | column_name AS computed_column_expression| ,n) ON filegroup | DEFAULT ,2020/8/29,21,創(chuàng)建表的各參數(shù)的說(shuō)明如下:,database_name:用于指定在其中創(chuàng)建表的數(shù)據(jù)庫(kù)名稱。 owner:用于指定新建表的所有者的用戶名 。 table_name:用于指定新建的表的名稱。 column_name:用于指定新建表的列的名稱。 computed_column_expression:用于指定計(jì)算列的列值的表達(dá)式。 ON filegroup | DEFAULT:用于指
13、定存儲(chǔ)表的文件組名。 TEXTIMAGE_ON:用于指定 text、ntext 和 image 列的數(shù)據(jù)存儲(chǔ)的文件組。 data_type:用于指定列的數(shù)據(jù)類型 。 DEFAULT:用于指定列的缺省值。,2020/8/29,22,constant_expression:用于指定列的缺省值的常量表達(dá)式 。 IDENTITY:用于指定列為標(biāo)識(shí)列。 Seed:用于指定標(biāo)識(shí)列的初始值。 Increment:用于指定標(biāo)識(shí)列的增量值。 NOT FOR REPLICATION:用于指定列的IDENTITY屬性在把從其它表中復(fù)制的數(shù)據(jù)插入到表中時(shí)不發(fā)生作用,即不足的生成列值,使得復(fù)制的數(shù)據(jù)行保持原來(lái)的列值。
14、ROWGUIDCOL:用于指定列為全球唯一鑒別行號(hào)列 。 COLLATE:用于指定表使用的校驗(yàn)方式。 column_constraint和table_constraint:用于指定列約束和表約束。,2020/8/29,23,例子5-3:創(chuàng)建了一個(gè)雇員信息表,其SQL語(yǔ)句的程序清單如下: CREATE TABLE employee ( number int not null, name varchar(20) NOT NULL, sex char(2) NULL, birthday datetime null, hire_date datetime NOT NULL DEFAULT (getda
15、te() professional_title varchar(10) null, salary money null, memo ntext null ),2020/8/29,24,5.2.2 增加、刪除和修改字段,利用企業(yè)管理器增加、刪除和修改字段 。在企業(yè)管理器中,打開指定的服務(wù)器中要修改表的數(shù)據(jù)庫(kù),用右鍵單擊要進(jìn)行修改的表,從彈出的快捷菜單中選擇設(shè)計(jì)表選項(xiàng),則會(huì)出現(xiàn)設(shè)計(jì)表對(duì)話框,在該對(duì)話框中,可以利用圖形化工具完成增加、刪除和修改字段的操作。 利用Transact-SQL語(yǔ)言中的alter table命令增加、刪除和修改字段。,2020/8/29,25,利用Transact-SQL語(yǔ)言
16、中的alter table命令增加、刪除和修改字段的各參數(shù)的說(shuō)明如下:,table:用于指定要修改的表的名稱。 ALTER COLUMN:用于指定要變更或者修改數(shù)據(jù)類型的列。 column_name:用于指定要更改、添加或刪除的列的名稱。 new_data_type:用于指定新的數(shù)據(jù)類型的名稱。 precision:用于指定新的數(shù)據(jù)類型的精度。 scale:用于指定新的數(shù)據(jù)類型的小數(shù)位數(shù)。 NULL | NOT NULL:用于指定該列是否可以接受空值。 ADD | DROP ROWGUIDCOL :用于指定在某列上添加或刪除 ROWGUIDCOL 屬性。,2020/8/29,26,ADD:用于
17、指定要添加一個(gè)或多個(gè)列定義、計(jì)算列定義或者表約束。 computed_column_expression:用于指定一個(gè)計(jì)算列的計(jì)算表達(dá)式。 WITH CHECK | WITH NOCHECK:用于指定已經(jīng)存在于表中的數(shù)據(jù)是否需要使用新添加的或者剛啟用的 FOREIGN KEY 或 CHECK 約束進(jìn)行驗(yàn)證。 DROP CONSTRAINT constraint_name | COLUMN column_name :用于指定從表中刪除的約束或者列的名稱。,2020/8/29,27, CHECK | NOCHECK CONSTRAINT:用于指定啟用或禁用FOREIGN KEY或者CHECK約束。
18、 ALL :用于指定使用 NOCHECK 選項(xiàng)禁用所有的約束,或者使用 CHECK 選項(xiàng)啟用所有約束。 ENABLE | DISABLE TRIGGER:用于指定啟用或禁用觸發(fā)器。當(dāng)一個(gè)觸發(fā)器被禁用時(shí),它對(duì)表的定義依然存在;然而,當(dāng)在表上執(zhí)行 INSERT、UPDATE 或 DELETE 語(yǔ)句時(shí),觸發(fā)器中的操作將不執(zhí)行,除非重新啟用該觸發(fā)器。 ALL :用于指定啟用或禁用表中所有的觸發(fā)器。 trigger_name :指定要啟用或禁用的觸發(fā)器名稱。,2020/8/29,28,例子5-4:創(chuàng)建了一個(gè)雇員信息表,其SQL語(yǔ)句的程序清單如下: create table employees( id c
19、har(8) primary key name char(20) not null, department char(20) null, memo char(30) null age int null, ) alter table employees add salary int null drop column age alter column memo varchar(200) null,2020/8/29,29,5.2.3 創(chuàng)建、刪除和修改約束,在SQL Server 2000中有5種約束: 主鍵約束(primary key constraint) 唯一性約束(unique constr
20、aint) 檢查約束(check constraint) 缺省約束(default constraint) 外部鍵約束(foreign key constraint),2020/8/29,30,1. 主鍵約束,主鍵的添加、刪除和修改操作方法有兩種: (一)企業(yè)管理器操作法,在企業(yè)管理器中,用右鍵單擊要操作的數(shù)據(jù)庫(kù)表,從彈出的快捷菜單中選擇設(shè)計(jì)表選項(xiàng) ,然后根據(jù)提示操作。 (二)Transact-SQL語(yǔ)句操作法。 其語(yǔ)法形式如下: CONSTRAINT constraint_name PRIMARY KEY CLUSTERED|NONCLUSTERED (column_name,n),2020
21、/8/29,31,主鍵約束各參數(shù)的說(shuō)明如下,constraint_name:用于指定約束的名稱,約束的名稱在數(shù)據(jù)庫(kù)中應(yīng)該是唯一的。如果不指定,則系統(tǒng)會(huì)自動(dòng)生成一個(gè)約束名。 LUSTERED|NONCLUSTERED:用于指定索引的類型,即聚簇索引或者非聚簇索引,CLUSTERED為默認(rèn)值。 column_name:用于指定主鍵的列名。主鍵最多由16個(gè)列組成。,2020/8/29,32,例子5-5,在執(zhí)行創(chuàng)建產(chǎn)品信息表的操作時(shí),指定產(chǎn)品編號(hào)為主鍵值,并且創(chuàng)建一個(gè)聚簇索引。 create table products( id char(10) not null, name char(20) not
22、 null price money default 0.01 quantity smallint null constraint pk_id primary key clustered (id) ),2020/8/29,33,2. 唯一性約束,唯一性約束用于指定一個(gè)或者多個(gè)列的組合的值具有唯一性,以防止在列中輸入重復(fù)的值。當(dāng)使用唯一性約束時(shí),需要考慮以下幾個(gè)因素: 使用唯一性約束的字段允許為空值。 一個(gè)表中可以允許有多個(gè)唯一性約束。 可以把唯一性約束定義在多個(gè)字段上。 唯一性約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)唯一性索引。 缺省情況下,創(chuàng)建的索引類型為非聚簇索引。,2020/8/29,34,創(chuàng)建和
23、修改唯一性約束的操作方法,創(chuàng)建和修改唯一性約束的操作方法有兩種: (一)企業(yè)管理器操作法,通過(guò)企業(yè)管理器可以完成創(chuàng)建和修改唯一性約束的操作。 (二)Transact-SQL語(yǔ)句操作法。 CONSTRAINT constraint_name UNIQUE CLUSTERED|NONCLUSTERED (column_name,n),2020/8/29,35,3. 檢查約束,一個(gè)列級(jí)檢查約束只能與限制的字段有關(guān);一個(gè)表級(jí)檢查約束只能與限制的表中字段有關(guān)。 一個(gè)表中可以定義多個(gè)檢查約束。 每個(gè)CREATE TABLE語(yǔ)句中每個(gè)字段只能定義一個(gè)檢查約束。 在多個(gè)字段上定義檢查約束,則必須將檢查約束定義
24、為表級(jí)約束。 當(dāng)執(zhí)行INSERT語(yǔ)句或者UPDATE語(yǔ)句時(shí),檢查約束將驗(yàn)證數(shù)據(jù)。 檢查約束中不能包含子查詢。,2020/8/29,36,創(chuàng)建檢查約束常用的操作方法有兩種:,1.企業(yè)管理器操作法。使用企業(yè)管理器創(chuàng)建檢查約束,與創(chuàng)建唯一性約束類似 。 2.Transact-SQL語(yǔ)句操作法。檢查約束的Transact-SQL語(yǔ)句操作法,其語(yǔ)法形式如下: CONSTRAINT constraint_name CHECK NOT FOR REPLICATION (logical_expression),2020/8/29,37,例子5-7:,創(chuàng)建了一個(gè)學(xué)生信息表,其中輸入性別字段值時(shí),只能接受“F”或
25、者“M”,并且為phonenum字段創(chuàng)建檢查約束,限制只能輸入類似01080798654之類的數(shù)據(jù),而不能隨意輸入其他數(shù)據(jù)。 create table student( Id char(8) name char(8) sex char(2) phonenum int constraint chk_sex check(sex in (F,M) Constraint chk_phonenum check (phonenum like (010)0-90-90-90-9 0-90-90-90-9),2020/8/29,38,4. 缺省約束,使用缺省約束時(shí),應(yīng)該注意以下幾點(diǎn): 每個(gè)字段只能定義一個(gè)缺省
26、約束。 如果定義的缺省值長(zhǎng)于其對(duì)應(yīng)字段的允許長(zhǎng)度,那么輸入到表中的缺省值將被截?cái)唷?不能加入到帶有IDENTITY屬性或者數(shù)據(jù)類型為timestamp的字段上。 如果字段定義為用戶定義的數(shù)據(jù)類型,而且有一個(gè)缺省綁定到這個(gè)數(shù)據(jù)類型上,則不允許該字段有缺省約束。,2020/8/29,39,5. 外部鍵約束,外部鍵約束用于強(qiáng)制參照完整性,提供單個(gè)字段或者多個(gè)字段的參照完整性。當(dāng)使用外部鍵約束時(shí),應(yīng)該考慮以下幾個(gè)因素: 外部鍵約束提供了字段參照完整性。 外部鍵從句中的字段數(shù)目和每個(gè)字段指定的數(shù)據(jù)類型必須和REFERENCES從句中的字段相匹配。 外部鍵約束不能自動(dòng)創(chuàng)建索引,需要用戶手動(dòng)創(chuàng)建。,2020
27、/8/29,40,用戶想要修改外部鍵約束的數(shù)據(jù),必須有對(duì)外部鍵約束所參考表的SELECT權(quán)限或者REFERENCES權(quán)限。 參考同一表中的字段時(shí),必須只使用REFERENCES子句,不能使用外部鍵子句。 一個(gè)表中最多可以有31個(gè)外部鍵約束。 在臨時(shí)表中,不能使用外部鍵約束。 主鍵和外部鍵的數(shù)據(jù)類型必須嚴(yán)格匹配。,2020/8/29,41,5.2.4 查看表格,查看表格的定義 2. 查看表格中的數(shù)據(jù) 3. 查看表格與其它數(shù)據(jù)庫(kù)對(duì)象的依賴關(guān)系 4. 利用系統(tǒng)存儲(chǔ)過(guò)程Sp_help查看表的信息,2020/8/29,42,例子5-10:,顯示當(dāng)前數(shù)據(jù)庫(kù)中所有對(duì)象的信息; 顯示表word的信息。在查詢分
28、析器(Query Analyzer)中它們對(duì)應(yīng)的語(yǔ)句和運(yùn)行結(jié)果如圖5-24(a)和圖5-24(b)所示。,2020/8/29,43,圖5-24(a) 當(dāng)前數(shù)據(jù)庫(kù)對(duì)象顯示窗口,圖5-24(b) 表word顯示窗口,2020/8/29,44,5.2.5 刪除表,1. 利用企業(yè)管理器刪除表 在企業(yè)管理器中,展開指定的數(shù)據(jù)庫(kù)和表格項(xiàng),用右鍵單擊要?jiǎng)h除的表,從快捷菜單中選擇“除去表”選項(xiàng),則會(huì)出現(xiàn)除去對(duì)象對(duì)話框。單擊“全部刪除”按鈕,即可刪除表。 2. 利用DROP TABLE語(yǔ)句刪除表 DROP TABLE語(yǔ)句可以刪除一個(gè)表和表中的數(shù)據(jù)及其與表有關(guān)的所有索引、觸發(fā)器、約束、許可對(duì)象。DROP TABL
29、E語(yǔ)句的語(yǔ)法形式如下: DROP TABLE table_name,2020/8/29,45,5.3.1 創(chuàng)建視圖 5.3.2 修改和重命名視圖 5.3.3 查看視圖信息、刪除視圖 5.3.4 通過(guò)視圖修改記錄,5.3 視圖操作,2020/8/29,46,視圖是從一個(gè)或者多個(gè)表或視圖中導(dǎo)出的表,其結(jié)構(gòu)和數(shù)據(jù)是建立在對(duì)表的查詢基礎(chǔ)上的。和真實(shí)的表一樣,視圖也包括幾個(gè)被定義的數(shù)據(jù)列和多個(gè)數(shù)據(jù)行,但從本質(zhì)上講,這些數(shù)據(jù)列和數(shù)據(jù)行來(lái)源于其所引用的表。因此,視圖不是真實(shí)存在的基礎(chǔ)表而是一個(gè)虛擬表,視圖所對(duì)應(yīng)的數(shù)據(jù)并不實(shí)際地以視圖結(jié)構(gòu)存儲(chǔ)在數(shù)據(jù)庫(kù)中,而是存儲(chǔ)在視圖所引用的表中。,視圖的概念:,2020/8
30、/29,47,使用視圖的優(yōu)點(diǎn)和作用,可以使視圖集中數(shù)據(jù)、簡(jiǎn)化和定制不同用戶對(duì)數(shù)據(jù)庫(kù)的不同數(shù)據(jù)要求。 使用視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,用戶不必了解數(shù)據(jù)庫(kù)的結(jié)構(gòu),就可以方便地使用和管理數(shù)據(jù),簡(jiǎn)化數(shù)據(jù)權(quán)限管理和重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中。 視圖可以使用戶只關(guān)心他感興趣的某些特定數(shù)據(jù)和他們所負(fù)責(zé)的特定任務(wù),而那些不需要的或者無(wú)用的數(shù)據(jù)則不在視圖中顯示。 視圖大大地簡(jiǎn)化了用戶對(duì)數(shù)據(jù)的操作。,2020/8/29,48,視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。 在某些情況下,由于表中數(shù)據(jù)量太大,因此在表的設(shè)計(jì)時(shí)常將表進(jìn)行水平或者垂直分割,但表的結(jié)構(gòu)的變化對(duì)應(yīng)用程序產(chǎn)生不良的影響。
31、視圖提供了一個(gè)簡(jiǎn)單而有效的安全機(jī)制。,2020/8/29,49,5.3.1 創(chuàng)建視圖,創(chuàng)建視圖時(shí)應(yīng)該注意以下情況: 只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建視圖。 如果視圖引用的基表或者視圖被刪除,則該視圖不能再被使用,直到創(chuàng)建新的基表或者視圖。 如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來(lái)自多個(gè)表的列名相同,則必須為列定義名稱。 不能在視圖上創(chuàng)建索引,不能在規(guī)則、缺省、觸發(fā)器的定義中引用視圖。 當(dāng)通過(guò)視圖查詢數(shù)據(jù)時(shí),SQL Server要檢查以確保語(yǔ)句中涉及的所有數(shù)據(jù)庫(kù)對(duì)象存在,而且數(shù)據(jù)修改語(yǔ)句不能違反數(shù)據(jù)完整性規(guī)則。 視圖的名稱必須遵循標(biāo)識(shí)符的規(guī)則,且對(duì)每個(gè)用戶必須是唯一的。此外,該名稱不得與該用戶擁有的
32、任何表的名稱相同。,2020/8/29,50,1. 利用企業(yè)管理器創(chuàng)建視圖,圖5-26 ,圖5-27(a) ,5-27(b) ,圖5-28 ,圖5-29 ,圖5-30 ,是利用企業(yè)管理器創(chuàng)建視圖的具體操作步驟,用戶可根據(jù)圖中提示創(chuàng)建視圖。,2020/8/29,51,圖5-26 選擇新建視圖選項(xiàng)對(duì)話框,2020/8/29,52,圖5-27 (a) 新建視圖對(duì)話框,圖5-27(b) 添加表菜單,2020/8/29,53,圖5-28 添加表對(duì)話框,2020/8/29,54,圖5-29 選擇視圖字段對(duì)話框,2020/8/29,55,圖5-30 視圖屬性對(duì)話框,2020/8/29,56,2. 利用Tra
33、nsact-SQL語(yǔ)句中的CREATE VIEW命令創(chuàng)建視圖,使用Transact-SQL語(yǔ)句中的CREATE VIEW創(chuàng)建視圖的語(yǔ)法形式如下: CREATE VIEW . . view_name ( column ,.n ) WITH ,.n AS select_statement WITH CHECK OPTION := ENCRYPTION | SCHEMABINDING | VIEW_METADATA ,2020/8/29,57,使用Transact-SQL語(yǔ)句中的CREATE VIEW創(chuàng)建視圖的參數(shù)說(shuō)明如下:,view_name用于指定視圖的名稱,column用于指定視圖中的字段名稱
34、。 WITH ENCRYPTION表示 SQL Server 加密包含 CREATE VIEW 語(yǔ)句文本在內(nèi)的系統(tǒng)表列。 select_statement用于創(chuàng)建視圖的SELECT語(yǔ)句,利用SELECT命令可以從表中或者視圖中選擇列構(gòu)成新視圖的列。 WITH CHECK OPTION用于強(qiáng)制視圖上執(zhí)行的所有數(shù)據(jù)修改語(yǔ)句都必須符合由 select_statement 設(shè)置的準(zhǔn)則。,2020/8/29,58,SCHEMABINDING表示在select_statement語(yǔ)句中如果包含表、視圖或者引用用戶自定義函數(shù),則表名、視圖名或者函數(shù)名前必須有所有者前綴。 VIEW_ METADATA表示如果
35、某一查詢中引用該視圖且要求返回瀏覽模式的元數(shù)據(jù)時(shí),那么SQL Server將向DBLIB和OLE DB APIS返回視圖的元數(shù)據(jù)信息。,2020/8/29,59,例子5-12:,選擇表student和teacher中的部分字段和記錄創(chuàng)建視圖,并且限制表student中的記錄只能是名稱為“張三”的記錄集合,視圖定義為view_part,其程序清單如下: create view view_part as Select , student.age,student.sex, ,age,salary from student,teacher where s
36、=張三,2020/8/29,60,3. 利用向?qū)?chuàng)建視圖,圖5-31 -圖5-38 是利用向?qū)?chuàng)建視圖 的具體步驟。,圖5-31 選擇工具菜單中的向?qū)?2020/8/29,61,圖5-32 歡迎使用創(chuàng)建視圖向?qū)?duì)話框,2020/8/29,62,圖5-33 選擇數(shù)據(jù)庫(kù)對(duì)話框,2020/8/29,63,圖5-34 選擇對(duì)象對(duì)話框,2020/8/29,64,圖5-35 選擇字段對(duì)話框,2020/8/29,65,圖5-36 定義限制對(duì)話框,2020/8/29,66,圖5-37 命名視圖對(duì)話框,2020/8/29,67,圖5-38 完成創(chuàng)建視圖向?qū)?duì)話框,2020/8/29,6
37、8,5.3.2 修改和重命名視圖,1. 修改視圖 (1)利用企業(yè)管理器 修改視圖。 (2)使用ALTER VIEW語(yǔ)句修改視圖 。 ALTER VIEW view_name (column,.n) WITHENCRYPTION ASselect_statement WITH CHECK OPTION ,2020/8/29,69,2. 重命名視圖,(1)利用企業(yè)管理器重命名視圖 。 (2)可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_rename修改視圖的名稱,該過(guò)程的語(yǔ)法形式如下: sp_rename old_name,new_name 例子5-14:把視圖v_all重命名為v_part,其程序清單如下: sp_
38、rename v_all,v_part,2020/8/29,70,5.3.3 查看視圖信息、刪除視圖,1. 查看視圖信息 每當(dāng)創(chuàng)建了一個(gè)新的視圖后,則在系統(tǒng)說(shuō)明的系統(tǒng)表中就定義了該視圖的存儲(chǔ),因此,可以使用系統(tǒng)存儲(chǔ)過(guò)程sp_help顯示視圖特征,使用sp_helptext顯示視圖在系統(tǒng)表中的定義,使用sp_depends顯示該視圖所依賴的對(duì)象。它們的語(yǔ)法形式分別如下: (1)sp_help 數(shù)據(jù)庫(kù)對(duì)象名稱 (2)sp_helptext 視圖(觸發(fā)器、存儲(chǔ)過(guò)程) (3) sp_depends 數(shù)據(jù)庫(kù)對(duì)象名稱,2020/8/29,71,使用SQL Server 查詢分析器和企業(yè)管理器來(lái)顯示視圖,使
39、用SQL Server 查詢分析器(Query Analyzer)可以方便地顯示視圖信息,如圖5-42所示,該對(duì)話框顯示了使用sp_helptext存儲(chǔ)過(guò)程顯示視圖v_employee的特征。 另外,也可以使用企業(yè)管理器來(lái)顯示視圖的定義,如圖5-43所示。 利用企業(yè)管理器也可以查看視圖的輸出數(shù)據(jù),如圖5-44所示。,2020/8/29,72,圖5-42 顯示視圖信息對(duì)話框,2020/8/29,73,圖5-43 視圖屬性對(duì)話框,2020/8/29,74,圖5-44 視圖輸出數(shù)據(jù)窗口,2020/8/29,75,2. 刪除視圖,(1)使用企業(yè)管理器刪除視圖的操作方法為如圖5-45和圖5-46所示。
40、(2)使用Transact-SQL語(yǔ)句DROP VIEW刪除視圖的語(yǔ)法形式如下: DROP VIEW view_name ,n 可以使用該命令同時(shí)刪除多個(gè)視圖,只需在要?jiǎng)h除的視圖名稱之間用逗號(hào)隔開即可。 例子5-15:同時(shí)刪除視圖v_student和v_teacher,其程序清單如下: drop view v_student,v_teacher,2020/8/29,76,圖5-45 除去對(duì)象對(duì)話框,2020/8/29,77,圖5-46 顯示相關(guān)性對(duì)話框,2020/8/29,78,5.3.4 通過(guò)視圖修改記錄,使用視圖修改數(shù)據(jù)時(shí),需要注意以下幾點(diǎn): 修改視圖中的數(shù)據(jù)時(shí),不能同時(shí)修改兩個(gè)或者多個(gè)基
41、表,可以對(duì)基于兩個(gè)或多個(gè)基表或者視圖的視圖進(jìn)行修改,但是每次修改都只能影響一個(gè)基表。 不能修改那些通過(guò)計(jì)算得到的字段。 如果在創(chuàng)建視圖時(shí)指定了WITH CHECK OPTION選項(xiàng),那么所有使用視圖修改數(shù)據(jù)庫(kù)信息時(shí),必須保證修改后的數(shù)據(jù)滿足視圖定義的范圍。 執(zhí)行UPDATE、DELETE命令時(shí),所刪除與更新的數(shù)據(jù)必須包含在視圖的結(jié)果集中。 如果視圖引用多個(gè)表時(shí),無(wú)法用DELETE命令刪除數(shù)據(jù)。,2020/8/29,79,1. 插入數(shù)據(jù)記錄,例子5-16:首先創(chuàng)建了一個(gè)新的視圖v_employees,該視圖基于表employees創(chuàng)建。 create view v_employees(numbe
42、r, name, age, sex, salary) as select number, name, age, sex, salary from employees where name=張三 然后,通過(guò)執(zhí)行以下語(yǔ)句使用該視圖向表employees中添加一條新的數(shù)據(jù)記錄。 Insert into v_employees Values(001,李力,22,m,2000),2020/8/29,80,2. 更新數(shù)據(jù)記錄,使用視圖可以更新數(shù)據(jù)記錄,但應(yīng)該注意的是,更新的只是數(shù)據(jù)庫(kù)中的基表。 例子5-19:創(chuàng)建了一個(gè)基于表employees的視圖v_employees,然后通過(guò)該視圖修改表employe
43、es中的記錄。其程序清單如下: create view v_employees as select * from employees update v_employees set name=張然 where name=張三,2020/8/29,81,3. 刪除數(shù)據(jù)記錄,使用視圖刪除記錄,可以刪除任何基表中的記錄,直接利用DELETE語(yǔ)句刪除記錄即可。但應(yīng)該注意,必須指定在視圖中定義過(guò)的字段來(lái)刪除記錄。 例子5-20:利用視圖v_employees刪除表employees中姓名為張然的記錄。其程序清單為: delete from v_employees where name=張然,2020/8/
44、29,82,5.4 索引操作,5.4.1 創(chuàng)建索引 5.4.2 查看、修改和刪除索引,2020/8/29,83,一、什么叫索引,數(shù)據(jù)庫(kù)中的索引與書籍中的索引類似,在一本書中,利用索引可以快速查找所需信息,無(wú)須閱讀整本書。在數(shù)據(jù)庫(kù)中,索引使數(shù)據(jù)庫(kù)程序無(wú)須對(duì)整個(gè)表進(jìn)行掃描,就可以在其中找到所需數(shù)據(jù)。書中的索引是一個(gè)詞語(yǔ)列表,其中注明了包含各個(gè)詞的頁(yè)碼。而數(shù)據(jù)庫(kù)中的索引是某個(gè)表中一列或者若干列值的集合和相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁(yè)的邏輯指針清單。,2020/8/29,84,二、索引的作用,通過(guò)創(chuàng)建唯一索引,可以保證數(shù)據(jù)記錄的唯一性。 可以大大加快數(shù)據(jù)檢索速度。 可以加速表與表之間的連接,這一
45、點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。 在使用ORDER BY和GROUP BY子句中進(jìn)行檢索數(shù)據(jù)時(shí),可以顯著減少查詢中分組和排序的時(shí)間。 使用索引可以在檢索數(shù)據(jù)的過(guò)程中使用優(yōu)化隱藏器,提高系統(tǒng)性能。,2020/8/29,85,聚集索引與非聚集索引,聚集索引對(duì)表的物理數(shù)據(jù)頁(yè)中的數(shù)據(jù)按列進(jìn)行排序,然后再重新存儲(chǔ)到磁盤上,即聚集索引與數(shù)據(jù)是混為一體的,它的葉節(jié)點(diǎn)中存儲(chǔ)的是實(shí)際的數(shù)據(jù)。 非聚集索引具有完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu),使用非聚集索引不用將物理數(shù)據(jù)頁(yè)中的數(shù)據(jù)按列排序。非聚集索引的葉節(jié)點(diǎn)存儲(chǔ)了組成非聚集索引的關(guān)鍵字值和行定位器。,2020/8/29,86,5.4.1 創(chuàng)建索引,SQL Serv
46、er 2000創(chuàng)建索引的方法 (1)利用企業(yè)管理器中的索引向?qū)?chuàng)建索引。 (2)利用企業(yè)管理器直接創(chuàng)建索引。 (3)利用Transact-SQL語(yǔ)句中的CREATE INDEX命令創(chuàng)建索引。 (4)利用企業(yè)管理器中的索引優(yōu)化向?qū)?chuàng)建索引。,2020/8/29,87,1. 利用索引向?qū)?chuàng)建索引,如圖5-47 -圖5-52 所示。,圖5-47 歡迎使用創(chuàng)建索引向?qū)?duì)話框,2020/8/29,88,圖5-48 選擇數(shù)據(jù)庫(kù)和對(duì)象對(duì)話框,2020/8/29,89,圖5-49 顯示當(dāng)前索引信息對(duì)話框,2020/8/29,90,圖5-50 選擇創(chuàng)建索引的列對(duì)話框,2020/8/29,91,圖5-51 指定索
47、引選項(xiàng)對(duì)話框,2020/8/29,92,圖5-52 指定索引名稱對(duì)話框,2020/8/29,93,2. 利用企業(yè)管理器直接創(chuàng)建索引,其具體步驟如下: ()在企業(yè)管理器中,展開指定的服務(wù)器和數(shù)據(jù)庫(kù),選擇要?jiǎng)?chuàng)建索引的表,用右鍵單擊該表,從彈出的快捷菜單中選擇所有任務(wù)項(xiàng)的管理索引選項(xiàng)(如圖5-53所示),就會(huì)出現(xiàn)管理索引對(duì)話框,如圖5-54所示。在該對(duì)話框中,可以選擇要處理的數(shù)據(jù)庫(kù)和表 。 ()單擊“新建”按鈕,則出現(xiàn)新建索引對(duì)話框,如圖5-55所示。 ()選擇完成后單擊“確定”按鈕,即可生成新的索引;單擊“取消”按鈕,則取消新建索引的操作。,2020/8/29,94,圖5-53 選擇管理索引選項(xiàng)對(duì)
48、話框,2020/8/29,95,圖5-54 管理索引對(duì)話框,2020/8/29,96,圖5-55 新建索引對(duì)話框,2020/8/29,97,3. 利用Transact-SQL語(yǔ)句中的CREATE INDEX命令創(chuàng)建索引,其語(yǔ)法形式如下: CREATE UNIQUE CLUSTERED| NONCLUSTERED INDEX index_name ON table | view ( column ASC | DESC ,.n ) with PAD_INDEX,FILLFACTOR=fillfactor,IGNORE_DUP_KEY,DROP_EXISTING ,STATISTICS_NORECO
49、MPUTE ,SORT_IN_TEMPDB ON filegroup ,2020/8/29,98,CREATE INDEX命令創(chuàng)建索引各參數(shù)說(shuō)明如下:,UNIQUE:用于指定為表或視圖創(chuàng)建唯一索引,即不允許存在索引值相同的兩行。 CLUSTERED:用于指定創(chuàng)建的索引為聚集索引。 NONCLUSTERED:用于指定創(chuàng)建的索引為非聚集索引。 index_name:用于指定所創(chuàng)建的索引的名稱。 table:用于指定創(chuàng)建索引的表的名稱。 view:用于指定創(chuàng)建索引的視圖的名稱。 ASC|DESC:用于指定具體某個(gè)索引列的升序或降序排序方向。 Column:用于指定被索引的列。 PAD_INDEX:用
50、于指定索引中間級(jí)中每個(gè)頁(yè)(節(jié)點(diǎn))上保持開放的空間。,2020/8/29,99,FILLFACTOR = fillfactor:用于指定在創(chuàng)建索引時(shí),每個(gè)索引頁(yè)的數(shù)據(jù)占索引頁(yè)大小的百分比,fillfactor的值為1到100。 IGNORE_DUP_KEY:用于控制當(dāng)往包含于一個(gè)唯一聚集索引中的列中插入重復(fù)數(shù)據(jù)時(shí)SQL Server所作的反應(yīng)。 DROP_EXISTING:用于指定應(yīng)刪除并重新創(chuàng)建已命名的先前存在的聚集索引或者非聚集索引。 STATISTICS_NORECOMPUTE:用于指定過(guò)期的索引統(tǒng)計(jì)不會(huì)自動(dòng)重新計(jì)算。 SORT_IN_TEMPDB:用于指定創(chuàng)建索引時(shí)的中間排序結(jié)果將存儲(chǔ)在
51、 tempdb 數(shù)據(jù)庫(kù)中。 ON filegroup:用于指定存放索引的文件組。,2020/8/29,100,例子5-21:,例子5-21:為表employees創(chuàng)建了一個(gè)唯一聚集索引,其程序清單如下: CREATE UNIQUE CLUSTERED INDEX number_ind ON employees (number) with pad_index, fillfactor=20, ignore_dup_key, drop_existing, statistics_norecompute,2020/8/29,101,例子5-22:,為表employees創(chuàng)建了一個(gè)復(fù)合索引,其程序清單如下
52、: create index employees_cpl_ind on employees(name,age) with pad_index, fillfactor=50,2020/8/29,102,4. 利用索引優(yōu)化向?qū)?chuàng)建索引,索引優(yōu)化向?qū)Э梢酝瓿梢韵聨追矫娴墓ぷ鳎?(1) 根據(jù)給定的工作負(fù)荷,通過(guò)使用查詢優(yōu)化器分析該工作負(fù)荷中的查詢,為數(shù)據(jù)庫(kù)推薦最佳索引組合。 (2)分析所建議的更改將會(huì)產(chǎn)生的影響,包括索引的使用,查詢?cè)诒碇g的分布,以及查詢?cè)诠ぷ髫?fù)荷中的性能。 (3)推薦為執(zhí)行一個(gè)小型的問題查詢集而對(duì)數(shù)據(jù)庫(kù)進(jìn)行優(yōu)化的方法。 (4)通過(guò)設(shè)定高級(jí)選項(xiàng)如磁盤空間約束、最大查詢語(yǔ)句數(shù)和每個(gè)索引
53、最多對(duì)應(yīng)字段數(shù)等,允許定制推薦方式。,2020/8/29,103,利用索引優(yōu)化向?qū)?chuàng)建和優(yōu)化索引的具體步驟如下:,如圖5-56 -圖5-65 所示。,圖5-56 歡迎使用索引優(yōu)化向?qū)?duì)話框,2020/8/29,104,圖5-57 選擇服務(wù)器和數(shù)據(jù)庫(kù)對(duì)話框,2020/8/29,105,圖5-58 連接服務(wù)器對(duì)話框,2020/8/29,106,圖5-59 選擇服務(wù)器對(duì)話框,2020/8/29,107,圖5-61 修改缺省優(yōu)化參數(shù)對(duì)話框,2020/8/29,108,圖5-62 選擇要優(yōu)化的表對(duì)話框,2020/8/29,109,圖5-63 索引建議對(duì)話框,2020/8/29,110,圖5-64 索引分
54、析對(duì)話框,2020/8/29,111,圖5-65 完成索引優(yōu)化向?qū)?duì)話框,2020/8/29,112,5.4.2 查看、修改和刪除索引,1. 利用企業(yè)管理器查看、修改和刪除索引 要查看和修改索引的詳細(xì)信息,可以在企業(yè)管理器中,展開指定的服務(wù)器和數(shù)據(jù)庫(kù)項(xiàng),用右鍵單擊要查看的表,從彈出的快捷菜單中選擇所有任務(wù)子菜單中的“管理索引”選項(xiàng),則會(huì)出現(xiàn)管理索引對(duì)話框。選擇要查看或者修改的索引,單擊“編輯”按鈕,就會(huì)出現(xiàn)修改索引對(duì)話框。在該對(duì)話框中,可以修改索引的大部分設(shè)置,還可以直接修改其SQL腳本,只需按下“編輯SQL”按鈕,即可出現(xiàn)編輯SQL腳本對(duì)話框,其中可以編輯、測(cè)試和運(yùn)行索引的SQL腳本。 要?jiǎng)h
55、除索引,可以在企業(yè)管理器中,從管理索引對(duì)話框中或者表的屬性對(duì)話框中,選擇要?jiǎng)h除的索引,單擊“刪除”按鈕,即可刪除索引。,2020/8/29,113,2. 用系統(tǒng)存儲(chǔ)過(guò)程查看和更改索引名稱,系統(tǒng)存儲(chǔ)過(guò)程sp_helpindex可以返回表的所有索引信息,其語(yǔ)法形式如下: sp_helpindex objname=name 其中objname=name參數(shù)用于指定當(dāng)前數(shù)據(jù)庫(kù)中的表的名稱。 另外,系統(tǒng)存儲(chǔ)過(guò)程sp_rename可以用來(lái)更改索引的名稱,其語(yǔ)法形式如下: sp_renameobjname=object_name,newname=new_name , objtype = object_typ
56、e ,2020/8/29,114,例子5-23:,更改employees表中的索引employees_name_index名稱為employees_name_ind,其程序清單如下: Exec sp_rename employees.employees_name_index, employees_name_ind, index,2020/8/29,115,3. 使用Transact-SQL語(yǔ)句中的DROP INDEX命令刪除索引,當(dāng)不再需要某個(gè)索引時(shí),可以將其刪除,DROP INDEX命令可以刪除一個(gè)或者多個(gè)當(dāng)前數(shù)據(jù)庫(kù)中的索引,其語(yǔ)法形式如下: DROP INDEX table.index |
57、 view.index ,.n 其中,table | view用于指定索引列所在的表或索引視圖;index用于指定要?jiǎng)h除的索引名稱。注意,DROP INDEX命令不能刪除由CREATE TABLE或者ALTER TABLE命令創(chuàng)建的主鍵或者唯一性約束索引,也不能刪除系統(tǒng)表中的索引。,2020/8/29,116,5.5 存儲(chǔ)過(guò)程,5.5.1 創(chuàng)建存儲(chǔ)過(guò)程 5.5.2 執(zhí)行存儲(chǔ)過(guò)程 5.5.3 查看和修改存儲(chǔ)過(guò)程 5.5.4 重命名和刪除存儲(chǔ)過(guò)程,2020/8/29,117,存儲(chǔ)過(guò)程的概念,SQL Server提供了一種方法,它可以將一些固定的操作集中起來(lái)由SQL Server數(shù)據(jù)庫(kù)服務(wù)器來(lái)完成,
58、以實(shí)現(xiàn)某個(gè)任務(wù),這種方法就是存儲(chǔ)過(guò)程。 在SQL Server中存儲(chǔ)過(guò)程分為兩類:即系統(tǒng)提供的存儲(chǔ)過(guò)程和用戶自定義的存儲(chǔ)過(guò)程。,2020/8/29,118,5.5.1 創(chuàng)建存儲(chǔ)過(guò)程,在SQL Server中,可以使用三種方法創(chuàng)建存儲(chǔ)過(guò)程 : 使用創(chuàng)建存儲(chǔ)過(guò)程向?qū)?chuàng)建存儲(chǔ)過(guò)程。 利用SQL Server 企業(yè)管理器創(chuàng)建存儲(chǔ)過(guò)程。 使用Transact-SQL語(yǔ)句中的CREATE PROCEDURE命令創(chuàng)建存儲(chǔ)過(guò)程。,2020/8/29,119,創(chuàng)建存儲(chǔ)過(guò)程時(shí),需要確定存儲(chǔ)過(guò)程的三個(gè)組成部分:,所有的輸入?yún)?shù)以及傳給調(diào)用者的輸出參數(shù)。 被執(zhí)行的針對(duì)數(shù)據(jù)庫(kù)的操作語(yǔ)句,包括調(diào)用其它存儲(chǔ)過(guò)程的語(yǔ)句。 返
59、回給調(diào)用者的狀態(tài)值,以指明調(diào)用是成功還是失敗。,2020/8/29,120,1. 使用創(chuàng)建存儲(chǔ)過(guò)程向?qū)?chuàng)建存儲(chǔ)過(guò)程,在企業(yè)管理器中,選擇工具菜單中的向?qū)нx項(xiàng),選擇“創(chuàng)建存儲(chǔ)過(guò)程向?qū)А保ㄈ鐖D3-1所示),則出現(xiàn)歡迎使用創(chuàng)建存儲(chǔ)過(guò)程向?qū)?duì)話框,如圖5-71所示。根據(jù)圖5-71-圖5-76提示可完成創(chuàng)建存儲(chǔ)過(guò)程。,圖3-1 新建SQL Server組,2020/8/29,121,圖5-71 歡迎使用創(chuàng)建存儲(chǔ)過(guò)程向?qū)?duì)話框,2020/8/29,122,圖5-72 選擇數(shù)據(jù)庫(kù)對(duì)話框,2020/8/29,123,圖5-73 選擇數(shù)據(jù)庫(kù)對(duì)象對(duì)話框,2020/8/29,124,圖5-74 完成創(chuàng)建存儲(chǔ)過(guò)程向?qū)?duì)話框,2020/8/29,125,圖5-75 編輯存儲(chǔ)過(guò)程屬性對(duì)話框,2020/8/29,126,圖5-76 編輯存儲(chǔ)過(guò)程SQL對(duì)話框,2020/8/29,127,2. 使用SQL Server 企業(yè)管理器創(chuàng)建存儲(chǔ)過(guò)程,()在SQL Server企業(yè)管理器中,選擇指定的服務(wù)器和數(shù)據(jù)庫(kù),用右鍵單擊要?jiǎng)?chuàng)建存儲(chǔ)過(guò)程的數(shù)據(jù)庫(kù),在彈出的快捷菜單中選擇“新建”選項(xiàng),再選擇下一級(jí)菜單中的“存儲(chǔ)過(guò)程”選項(xiàng),如圖5-77所示;或者用右鍵單擊存儲(chǔ)過(guò)程圖標(biāo),從彈出的快捷菜單中選擇“新
溫馨提示
- 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年彈性設(shè)計(jì)在綠色施工中的應(yīng)用
- 市政配套專題匯報(bào)
- 2026年電氣故障處理與應(yīng)急預(yù)案
- 2026春招:西藏航空真題及答案
- 醫(yī)療信息化的禮儀與操作規(guī)范
- 2026年廣西生態(tài)工程職業(yè)技術(shù)學(xué)院高職單招職業(yè)適應(yīng)性測(cè)試備考試題有答案解析
- 2026年貴州農(nóng)業(yè)職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試模擬試題帶答案解析
- 個(gè)性化醫(yī)療與基因治療技術(shù)
- 2026年貴州工業(yè)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能筆試備考題庫(kù)帶答案解析
- 護(hù)理安全管理與應(yīng)急預(yù)案制定與實(shí)施策略
- 新產(chǎn)品開發(fā)激勵(lì)政策及實(shí)施細(xì)則
- 精神科護(hù)理文書書寫規(guī)范
- 2024SIWOF斯沃電氣火災(zāi)監(jiān)控系統(tǒng)
- 美術(shù)包過(guò)本科線協(xié)議書3篇
- 產(chǎn)品推廣項(xiàng)目管理辦法
- 高中英語(yǔ)分層教學(xué)課件
- 南寧市城市配送車輛資源整合:模式創(chuàng)新與效益優(yōu)化研究
- 氣壓液壓傳動(dòng)課件
- 2025年1月國(guó)開電大專本科《經(jīng)濟(jì)法學(xué)》期末紙質(zhì)考試試題及答案
- 中學(xué)生英語(yǔ)詞匯表3500(全)
- 2025年全國(guó)基層退役軍人服務(wù)中心(站)工作人員職業(yè)技能競(jìng)賽備考試題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論