表的操作與管理_第1頁(yè)
表的操作與管理_第2頁(yè)
表的操作與管理_第3頁(yè)
表的操作與管理_第4頁(yè)
表的操作與管理_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

表的操作與管理第一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1數(shù)據(jù)類型

在SQLServer2005中,每個(gè)列、局部變量、表達(dá)式和參數(shù)都有其各自的數(shù)據(jù)類型。指定對(duì)象的數(shù)據(jù)類型相當(dāng)于定義了該對(duì)象的四個(gè)特性:(1)對(duì)象所含的數(shù)據(jù)類型,如字符、整數(shù)或二進(jìn)制數(shù)。(2)所存儲(chǔ)值的長(zhǎng)度或它的大小。(3)數(shù)字精度(僅用于數(shù)字?jǐn)?shù)據(jù)類型)。(4)小數(shù)位數(shù)(僅用于數(shù)字?jǐn)?shù)據(jù)類型)。

SQLServer提供系統(tǒng)數(shù)據(jù)類型集,定義了可與SQLServer一起使用的所有數(shù)據(jù)類型;另外用戶還可以使用Transact-SQL或.NET框架定義自己的數(shù)據(jù)類型,它是系統(tǒng)提供的數(shù)據(jù)類型的別名。每個(gè)表可以定義至多250個(gè)字段,除文本和圖像數(shù)據(jù)類型外,每個(gè)記錄的最大長(zhǎng)度限制為1962個(gè)字節(jié)。第二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

1、精確數(shù)字類型;2、近似數(shù)字類型;3、日期和時(shí)間類型;4、字符數(shù)據(jù)類型;5、Unicode字符數(shù)據(jù)類型;6、二進(jìn)制字符數(shù)據(jù)類型;7、其它數(shù)據(jù)類型。第三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

1、精確數(shù)字類型(1)精確數(shù)字類型包括:整數(shù)類型;Bit(位類型);Decimal和Numeric(數(shù)值類型);Money和SmallMoney(貨幣類型)。第四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

1、精確數(shù)字類型(2)整數(shù)類型:整數(shù)類型是最常用的數(shù)據(jù)類型之一,它主要用來存儲(chǔ)數(shù)值,可以直接進(jìn)行數(shù)據(jù)運(yùn)算,而不必使用函數(shù)轉(zhuǎn)換。整數(shù)類型包括以下四類:(1)Bigint:Bigint數(shù)據(jù)類型可以存儲(chǔ)從(-9223372036854775808)到(9223372036854775807)范圍之間的所有整型數(shù)據(jù)。每個(gè)Bigint數(shù)據(jù)類型值存儲(chǔ)在8個(gè)字節(jié)中。(2)Int(Integer):Int(或integer)數(shù)據(jù)類型可以存儲(chǔ)從(-2147483648)到(2147483647)范圍之間的所有正負(fù)整數(shù)。每個(gè)Int數(shù)據(jù)類型值存儲(chǔ)在4個(gè)字節(jié)中。(3)Smallint:可以存儲(chǔ)從(-32768)到32767范圍之間的所有正負(fù)整數(shù)。每個(gè)smallint類型的數(shù)據(jù)占用2個(gè)字節(jié)的存儲(chǔ)空間。(4)Tinyint:可以存儲(chǔ)從0~255范圍之間的所有正整數(shù)。每個(gè)tinyint類型的數(shù)據(jù)占用1個(gè)字節(jié)的存儲(chǔ)空間。第五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

1、精確數(shù)字類型(3)位數(shù)據(jù)類型Bit稱為位數(shù)據(jù)類型,其數(shù)據(jù)有兩種取值:0和1,長(zhǎng)度為1字節(jié)。在輸入0以外的其他值時(shí),系統(tǒng)均把它們當(dāng)1看待。這種數(shù)據(jù)類型常作為邏輯變量使用,用來表示真、假或是、否等二值選擇。(4)Decimal數(shù)據(jù)類型和Numeric數(shù)據(jù)類型Decimal數(shù)據(jù)類型和Numeric數(shù)據(jù)類型完全相同,它們可以提供小數(shù)所需要的實(shí)際存儲(chǔ)空間,但也有一定的限制,可以用2~17個(gè)字節(jié)來存儲(chǔ)-1038+1到1038-1之間的固定精度和小數(shù)位的數(shù)字。也可以將其寫為Decimal(p,s)的形式,p和s確定了精確的總位數(shù)和小數(shù)位。其中p表示可供存儲(chǔ)的值的總位數(shù),默認(rèn)設(shè)置為18;s表示小數(shù)點(diǎn)后的位數(shù),默認(rèn)設(shè)置為0。例如:decimal(10,5),表示共有10位數(shù),其中整數(shù)5位,小數(shù)5位。第六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

1、精確數(shù)字類型(5)貨幣數(shù)據(jù)類型貨幣數(shù)據(jù)類型包括Money和SmallMoney兩種:(1)Money:用于存儲(chǔ)貨幣值,存儲(chǔ)在money數(shù)據(jù)類型中的數(shù)值以一個(gè)正數(shù)部分和一個(gè)小數(shù)部分存儲(chǔ)在兩個(gè)4字節(jié)的整型值中,存儲(chǔ)范圍為(-9223372136854775808)到(9223372136854775807),精確到貨幣單位的千分之十。(2)Smallmoney:與money數(shù)據(jù)類型類似,但范圍比money數(shù)據(jù)類型小,其存儲(chǔ)范圍為-2147483468到2147483467之間,精確到貨幣單位的千分之十。當(dāng)為money或smallmoney的表輸入數(shù)據(jù)時(shí),必須在有效位置前面加一個(gè)貨幣單位符號(hào)。第七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

2、近似數(shù)字類型近似數(shù)字類型包括Real和Float兩大類。(1)Real:可以存儲(chǔ)正的或者負(fù)的十進(jìn)制數(shù)值,最大可以有7位精確位數(shù)。它的存儲(chǔ)范圍從-3.40E-38~3.40E+38。每個(gè)Real類型的數(shù)據(jù)占用4個(gè)字節(jié)的存儲(chǔ)空間。(2)Float:可以精確到第15位小數(shù),其范圍從-1.79E-308~1.79E+308。如果不指定Float數(shù)據(jù)類型的長(zhǎng)度,它占用8個(gè)字節(jié)的存儲(chǔ)空間。Float數(shù)據(jù)類型也可以寫為Float(n)的形式,n指定Float數(shù)據(jù)的精度,n為1~15之間的整數(shù)值。當(dāng)n取1~7時(shí),實(shí)際上是定義了一個(gè)Real類型的數(shù)據(jù),系統(tǒng)用4個(gè)字節(jié)存儲(chǔ)它;當(dāng)n取8~15時(shí),系統(tǒng)認(rèn)為其是Float類型,用8個(gè)字節(jié)存儲(chǔ)它。

第八頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

3.日期和時(shí)間數(shù)據(jù)類型

(1)Datetime:用于存儲(chǔ)日期和時(shí)間的結(jié)合體,它可以存儲(chǔ)從公元1753年1月1日零時(shí)起~公元9999年12月31日23時(shí)59分59秒之間的所有日期和時(shí)間,其精確度可達(dá)三百分之一秒,即3.33毫秒。Datetime數(shù)據(jù)類型所占用的存儲(chǔ)空間為8個(gè)字節(jié),其中前4個(gè)字節(jié)用于存儲(chǔ)基于1900年1月1日之前或者之后日期數(shù),數(shù)值分正負(fù),負(fù)數(shù)存儲(chǔ)的數(shù)值代表在基數(shù)日期之前的日期,正數(shù)表示基數(shù)日期之后的日期,時(shí)間以子夜后的毫秒存儲(chǔ)在后面的4個(gè)字節(jié)中。當(dāng)存儲(chǔ)Datetime數(shù)據(jù)類型時(shí),默認(rèn)的格式是MMDDYYYYhh:mmA.M./P.M,當(dāng)插入數(shù)據(jù)或者在其他地方使用Datetime類型時(shí),需要用單引號(hào)把它括起來。默認(rèn)的時(shí)間日期是January1,190012:00A.M??梢越邮艿妮斎敫袷饺缦拢篔an41999、JAN41999、January41999、Jan19994、19994Jan和1999Jan4。(2)Smalldatetime:與Datetime數(shù)據(jù)類型類似,但其日期時(shí)間范圍較小,它存儲(chǔ)從1900年1月1日~2079年6月6日內(nèi)的日期。SmallDatetime數(shù)據(jù)類型使用4個(gè)字節(jié)存儲(chǔ)數(shù)據(jù),SQLServer2000用2個(gè)字節(jié)存儲(chǔ)日期1900年1月1日以后的天數(shù),時(shí)間以子夜后的分鐘數(shù)形式存儲(chǔ)在另外兩個(gè)字節(jié)中,SmallDatetime的精度為1分鐘。

第九頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

4.字符數(shù)據(jù)類型字符數(shù)據(jù)類型也是SQLServer中最常用的數(shù)據(jù)類型之一,它可以用來存儲(chǔ)各種字母、數(shù)字符號(hào)和特殊符號(hào)。在使用字符數(shù)據(jù)類型時(shí),需要在其前后加上英文單引號(hào)或者雙引號(hào)。(1)Char:其定義形式為Char(n),當(dāng)用Char數(shù)據(jù)類型存儲(chǔ)數(shù)據(jù)時(shí),每個(gè)字符和符號(hào)占用一個(gè)字節(jié)的存儲(chǔ)空間。n表示所有字符所占的存儲(chǔ)空間,n的取值為1~8000。若不指定n值,系統(tǒng)默認(rèn)n的值為1。若輸入數(shù)據(jù)的字符串長(zhǎng)度小于n,則系統(tǒng)自動(dòng)在其后添加空格來填滿設(shè)定好的空間;若輸入的數(shù)據(jù)過長(zhǎng),將會(huì)截掉其超出部分。如果定義了一個(gè)Char數(shù)據(jù)類型,而且允許該列為空,則該字段被當(dāng)作Varchar來處理。(2)Varchar:其定義形式為Varchar(n)。用Char數(shù)據(jù)類型可以存儲(chǔ)長(zhǎng)達(dá)255個(gè)字符的可變長(zhǎng)度字符串,和Char類型不同的是Varchar類型的存儲(chǔ)空間是根據(jù)存儲(chǔ)在表的每一列值的字符數(shù)變化的。例如定義Varchar(20),則它對(duì)應(yīng)的字段最多可以存儲(chǔ)20個(gè)字符,但是在每一列的長(zhǎng)度達(dá)到20字節(jié)之前系統(tǒng)不會(huì)在其后添加空格來填滿設(shè)定好的空間,因此使用Varchar類型可以節(jié)省空間。(3)Text:用于存儲(chǔ)文本數(shù)據(jù),其容量理論上為1~231-1(2,147,483,647)個(gè)字節(jié),但實(shí)際應(yīng)用時(shí)要根據(jù)硬盤的存儲(chǔ)空間而定。

第十頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

5.Unicode字符數(shù)據(jù)類型Unicode字符數(shù)據(jù)類型包括Nchar、Nvarchar、Ntext三種:(1)Nchar:其定義形式為Nchar(n)。它與Char數(shù)據(jù)類型類似,不同的是Nchar數(shù)據(jù)類型n的取值為1~4000。Nchar數(shù)據(jù)類型采用Unicode標(biāo)準(zhǔn)字符集,Unicode標(biāo)準(zhǔn)用兩個(gè)字節(jié)為一個(gè)存儲(chǔ)單位,其一個(gè)存儲(chǔ)單位的容納量就大大增加了,可以將全世界的語(yǔ)言文字都囊括在內(nèi),在一個(gè)數(shù)據(jù)列中就可以同時(shí)出現(xiàn)中文、英文、法文等,而不會(huì)出現(xiàn)編碼沖突。(2)Nvarchar:其定義形式Nvarchar(n)。它與Varchchar數(shù)據(jù)類型相似,Nvarchar數(shù)據(jù)類型也采用Unicode標(biāo)準(zhǔn)字符集,n的取值范圍為1~4000。(3)Ntext:與Text數(shù)據(jù)類型類似,存儲(chǔ)在其中的數(shù)據(jù)通常是直接能輸出到顯示設(shè)備上的字符,顯示設(shè)備可以是顯示器、窗口或者打印機(jī)。Ntext數(shù)據(jù)類型采用Unicode標(biāo)準(zhǔn)字符集,因此其理論上的容量為230-1(1,073,741,823)個(gè)字節(jié)。

第十一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

6.二進(jìn)制字符數(shù)據(jù)類型二進(jìn)制數(shù)據(jù)類型包括Binary、Varbinary、Image三種:(1)Binary:其定義形式為Binary(n),數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是固定的,即n+4個(gè)字節(jié),當(dāng)輸入的二進(jìn)制數(shù)據(jù)長(zhǎng)度小于n時(shí),余下部分填充0。二進(jìn)制數(shù)據(jù)類型的最大長(zhǎng)度(即n的最大值)為8000,常用于存儲(chǔ)圖像等數(shù)據(jù)。(2)Varbinary:其定義形式為Varbinary(n),數(shù)據(jù)的存儲(chǔ)長(zhǎng)度是變化的,它為實(shí)際所輸入數(shù)據(jù)的長(zhǎng)度加上4字節(jié)。其他含義同Binary。(3)Image:用于存儲(chǔ)照片、目錄圖片或者圖畫,其理論容量為231-1(2,147,483,647)個(gè)字節(jié)。其存儲(chǔ)數(shù)據(jù)的模式與Text數(shù)據(jù)類型相同,通常存儲(chǔ)在Image字段中的數(shù)據(jù)不能直接用Insert語(yǔ)句直接輸入。

第十二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.1系統(tǒng)數(shù)據(jù)類型

7.其它數(shù)據(jù)類型(1)Sql_variant:用于存儲(chǔ)除文本、圖形數(shù)據(jù)和Timestamp類型數(shù)據(jù)外的其他任何合法的SQLServer數(shù)據(jù)。此數(shù)據(jù)類型極大地方便了SQLServer的開發(fā)工作。(2)Table:用于存儲(chǔ)對(duì)表或者視圖處理后的結(jié)果集。這種新的數(shù)據(jù)類型使得變量可以存儲(chǔ)一個(gè)表,從而使函數(shù)或過程返回查詢結(jié)果更加方便、快捷。(3)Timestamp:亦稱時(shí)間戳數(shù)據(jù)類型,它提供數(shù)據(jù)庫(kù)范圍內(nèi)的惟一值,反應(yīng)數(shù)據(jù)庫(kù)中數(shù)據(jù)修改的相對(duì)順序,相當(dāng)于一個(gè)單調(diào)上升的計(jì)數(shù)器。當(dāng)它所定義的列在更新或者插入數(shù)據(jù)行時(shí),此列的值會(huì)被自動(dòng)更新,一個(gè)計(jì)數(shù)值將自動(dòng)地添加到此Timestamp數(shù)據(jù)列中。如果建立一個(gè)名為“Timestamp”的列,則該列的類型將自動(dòng)設(shè)為Timestamp數(shù)據(jù)類型。(4)Uniqueidentifier:用于存儲(chǔ)一個(gè)16字節(jié)長(zhǎng)的二進(jìn)制數(shù)據(jù)類型,它是SQLServer根據(jù)計(jì)算機(jī)網(wǎng)絡(luò)適配器地址和CPU時(shí)鐘產(chǎn)生的全局惟一標(biāo)識(shí)符代碼(GloballyUniqueIdentifier,簡(jiǎn)寫為GUID)。此數(shù)字可以通過調(diào)用SQLServer的newid()函數(shù)獲得,在全球各地的計(jì)算機(jī)經(jīng)由此函數(shù)產(chǎn)生的數(shù)字不會(huì)相同。(5)XML:可以存儲(chǔ)XML數(shù)據(jù)的數(shù)據(jù)類型。利用它可以將XML實(shí)例存儲(chǔ)在字段中或者XML類型的變量中。注意存儲(chǔ)在XML中的數(shù)據(jù)不能超過2GB。(6)Cursor:這是變量或存儲(chǔ)過程OUTPUT參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)包含對(duì)游標(biāo)的引用。使用Cursor數(shù)據(jù)類型創(chuàng)建的變量可以為空。注意:對(duì)于CREATETABLE語(yǔ)句中的列,不能使用Cursor數(shù)據(jù)類型。

第十三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.2自定義數(shù)據(jù)類型

SQLServer允許用戶自定義數(shù)據(jù)類型,用戶自定義數(shù)據(jù)類型是建立在SQLServer系統(tǒng)數(shù)據(jù)類型基礎(chǔ)上的,當(dāng)用戶定義一種數(shù)據(jù)類型時(shí),需要指定該類型的名稱、建立在其上的系統(tǒng)數(shù)據(jù)類型以及是否允許為空等。SQLServer為用戶提供了兩種方法來創(chuàng)建自定義數(shù)據(jù)類型:(1)使用SQLServer管理平臺(tái)創(chuàng)建用戶自定義數(shù)據(jù)類型;(2)利用系統(tǒng)存儲(chǔ)過程創(chuàng)建用戶自定義數(shù)據(jù)類型

第十四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.2自定義數(shù)據(jù)類型

(1)使用SQLServer管理平臺(tái)創(chuàng)建用戶自定義數(shù)據(jù)類型在SQLServer管理平臺(tái)中,打開指定的服務(wù)器和數(shù)據(jù)庫(kù)項(xiàng),如圖5-1所示,選擇并展開“程序→類型”項(xiàng),接下來用右鍵單擊“用戶自定義數(shù)據(jù)類型”選項(xiàng),從彈出的快捷菜單中選擇“新建”命令,出現(xiàn)用戶定義的數(shù)據(jù)類型屬性對(duì)話框,如圖5-2所示。

圖5-1打開用戶定義的數(shù)據(jù)類型窗口

圖5-2用戶定義的數(shù)據(jù)類型屬性對(duì)話框

第十五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.2自定義數(shù)據(jù)類型

(2)利用系統(tǒng)存儲(chǔ)過程創(chuàng)建用戶自定義數(shù)據(jù)類型

系統(tǒng)存儲(chǔ)過程sp_addtype為用戶提供了用T_SQL語(yǔ)句創(chuàng)建自定義數(shù)據(jù)類型的途徑,其語(yǔ)法形式如下:sp_addtype[@typename=]type,[@phystype=]system_data_type[,[@nulltype=]‘null_type’][,[@owner=]‘owner_name’]第十六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.1.2自定義數(shù)據(jù)類型

(2)利用系統(tǒng)存儲(chǔ)過程創(chuàng)建用戶自定義數(shù)據(jù)類型

例5-1

自定義一個(gè)地址(address)數(shù)據(jù)類型。程序清單如下:execsp_addtypeaddress,‘varchar(80)’,‘notnull’第十七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2表操作

表是包含數(shù)據(jù)庫(kù)中所有數(shù)據(jù)的數(shù)據(jù)庫(kù)對(duì)象。表定義為列的集合,數(shù)據(jù)在表中是按行和列的格式組織排列的,每行代表惟一的一條記錄,而每列代表記錄中的一個(gè)域。5.2.1創(chuàng)建表

5.2.2創(chuàng)建約束5.2.3修改表5.2.4查看表5.2.5刪除表第十八頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.1創(chuàng)建表利用SQLServer管理平臺(tái)創(chuàng)建表在SQLServer管理平臺(tái)中,展開指定的服務(wù)器和數(shù)據(jù)庫(kù),打開想要?jiǎng)?chuàng)建新表的數(shù)據(jù)庫(kù),右擊表對(duì)象,并從彈出的快捷菜單中選擇“新建表”選項(xiàng),如圖5-4所示。在圖5-4的對(duì)話框中,可以對(duì)表的結(jié)構(gòu)進(jìn)行更改,設(shè)置主鍵及字段屬性,使用SQLServer管理平臺(tái)可以非常直觀地修改數(shù)據(jù)庫(kù)結(jié)構(gòu)和添加數(shù)據(jù)。在表中任意行上右擊,則彈出一個(gè)快捷菜單,如圖5-6所示。圖5-4新建表對(duì)話框

圖5-6設(shè)置字段屬性對(duì)話框

第十九頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.1創(chuàng)建表2.利用create命令創(chuàng)建表使用create命令創(chuàng)建表非常靈活,它允許對(duì)表設(shè)置幾種不同的選項(xiàng),包括表名、存放位置和列的屬性等。其完整語(yǔ)法形式如下:CREATETABLE

[database_name.[owner].|owner.]table_name

({<column_definition>|column_nameAScomputed_column_expression|<table_constraint>}[,…n])

[ON{filegroup|DEFAULT}][TEXTIMAGE_ON{filegroup|DEFAULT}]

<column_definition>::={column_namedata_type}

[COLLATE<collation_name>]

[[DEFAULTconstant_expression]

|[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]]

[ROWGUIDCOL]

[<column_constraint>][...n]第二十頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.1創(chuàng)建表2.利用create命令創(chuàng)建表其中,各參數(shù)的說明如下:database_name:用于指定所創(chuàng)建表的數(shù)據(jù)庫(kù)名稱。owner:用于指定新建表的所有者的用戶名。table_name:用于指定新建表的名稱。column_name:用于指定新建表的列名。computed_column_expression:用于指定計(jì)算列的列值表達(dá)式。ON{filegroup|DEFAULT}:用于指定存儲(chǔ)表的文件組名。TEXTIMAGE_ON:用于指定text、ntext和image列的數(shù)據(jù)存儲(chǔ)的文件組。data_type:用于指定列的數(shù)據(jù)類型。DEFAULT:用于指定列的默認(rèn)值。constant_expression:用于指定列的默認(rèn)值的常量表達(dá)式、可以為一個(gè)常量或NULL或系統(tǒng)函數(shù)。IDENTITY:用于將列指定為標(biāo)識(shí)列。Seed:用于指定標(biāo)識(shí)列的初始值。Increment:用于指定標(biāo)識(shí)列的增量值。NOTFORREPLICATION:用于指定列的IDENTITY屬性,在把從其他表中復(fù)制的數(shù)據(jù)插入到表中時(shí)不發(fā)生作用,即不生成列值,使得復(fù)制的數(shù)據(jù)行保持原來的列值。ROWGUIDCOL:用于將列指定為全局惟一標(biāo)識(shí)行號(hào)列(rowglobaluniqueidentifiercolumn)。COLLATE:用于指定表的校驗(yàn)方式。column_constraint和table_constraint:用于指定列約束和表約束。第二十一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.1創(chuàng)建表2.利用create命令創(chuàng)建表例5-3

創(chuàng)建了一個(gè)工人信息表,它包括工人編號(hào)、姓名、性別、出生日期、職位、工資和備注信息。SQL語(yǔ)句的程序清單如下:

CREATETABLEworker

(numberchar(8)notnull,namechar(8)NOTNULL,sexchar(2)NULL,birthdaydatetimenull,job_titlevarchar(10)null,salarymoneynull,memontextnull

)第二十二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

約束是SQLServer提供的自動(dòng)保持?jǐn)?shù)據(jù)庫(kù)完整性的一種方法,它通過限制字段中數(shù)據(jù)、記錄中數(shù)據(jù)和表之間的數(shù)據(jù)來保證數(shù)據(jù)的完整性。在SQLSERVER中,對(duì)于基本表的約束分為列約束和表約束。列約束是對(duì)某一個(gè)特定列的約束,包含在列定義中,直接跟在該列的其他定義之后,用空格分隔,不必指定列名;表約束與列定義相互獨(dú)立,不包括在列定義中,通常用于對(duì)多個(gè)列一起進(jìn)行約束,與列定義用’,’分隔,定義表約束時(shí)必須指出要約束的那些列的名稱。完整性約束的基本語(yǔ)法格式為:

[CONSTRAINTconstraint_name(約束名)]<約束類型>

約束不指定名稱時(shí),系統(tǒng)會(huì)給定一個(gè)名稱。在SQLServer2005中有6種約束:主鍵約束(primarykeyconstraint)、惟一性約束(uniqueconstraint)、檢查約束(checkconstraint)、默認(rèn)約束(defaultconstraint)、外部鍵約束(foreignkeyconstraint)和空值(NULL)約束。

第二十三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

主鍵(PRIMARYKEY)約束

PRIMARYKEY約束用于定義基本表的主鍵,它是惟一確定表中每一條記錄的標(biāo)識(shí)符,其值不能為NULL,也不能重復(fù),以此來保證實(shí)體的完整性。PRIMARYKEY與UNIQUE約束類似,通過建立唯一索引來保證基本表在主鍵列取值的唯一性,但它們之間存在著很大的區(qū)別:①在一個(gè)基本表中只能定義一個(gè)PRIMARYKEY約束,但可定義多個(gè)UNIQUE約束;②對(duì)于指定為PRIMARYKEY的一個(gè)列或多個(gè)列的組合,其中任何一個(gè)列都不能出現(xiàn)空值,而對(duì)于UNIQUE所約束的唯一鍵,則允許為空。注意:不能為同一個(gè)列或一組列既定義UNIQUE約束,又定義PRIMARYKEY約束。PRIMARYKEY既可用于列約束,也可用于表約束。第二十四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

主鍵(PRIMARYKEY)約束

主鍵的創(chuàng)建操作方法有兩種:SQLServer管理平臺(tái)操作法和Transact-SQL語(yǔ)句操作法。(1)SQLServer管理平臺(tái)操作法,如圖5-7所示。圖5-7選擇多個(gè)字段共同做為主鍵對(duì)話框

第二十五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

主鍵(PRIMARYKEY)約束

(2)使用Transact-SQL語(yǔ)句操作法設(shè)置主鍵約束,其語(yǔ)法形式如下:

CONSTRAINTconstraint_namePRIMARYKEY[CLUSTERED|NONCLUSTERED]

(column_name)PRIMARYKEY用于定義表約束時(shí),即將某些列的組合定義為主鍵,其語(yǔ)法格式如下:

CONSTRAINTconstraint_namePRIMARYKEY[CLUSTERED|NONCLUSTERED]

(column_name[,…n])第二十六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

主鍵(PRIMARYKEY)約束

例5-5建立一個(gè)SC表,定義SNO,CNO共同組成SC的主鍵程序清單如下:CREATETABLESC(SNOCHAR(5)NOTNULL,CNOCHAR(5)NOTNULL,SCORENUMERIC(3),CONSTRAINTSC_PRIMPRIMARYKEY(SNO,CNO))第二十七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

2.惟一性約束

惟一性約束用于指定一個(gè)或者多個(gè)列的組合值具有惟一性,以防止在列中輸入重復(fù)的值。定義了UNIQUE約束的那些列稱為唯一鍵,系統(tǒng)自動(dòng)為唯一鍵建立唯一索引,從而保證了唯一鍵的唯一性。當(dāng)使用惟一性約束時(shí),需要考慮以下幾個(gè)因素:使用惟一性約束的字段允許為空值;一個(gè)表中可以允許有多個(gè)惟一性約束;可以把惟一性約束定義在多個(gè)字段上;惟一性約束用于強(qiáng)制在指定字段上創(chuàng)建一個(gè)惟一性索引;默認(rèn)情況下,創(chuàng)建的索引類型為非聚集索引。

第二十八頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

2.惟一性約束

創(chuàng)建惟一性約束的方法有兩種:通過SQLServer管理平臺(tái)可以完成創(chuàng)建和修改惟一性約束的操作;使用Transact-SQL語(yǔ)句完成惟一性約束的操作。(1)通過SQLServer管理平臺(tái)可以完成創(chuàng)建和修改惟一性約束的操作,如圖5-8所示。圖5-8創(chuàng)建惟一性約束對(duì)話框

第二十九頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

2.惟一性約束

(2)使用Transact-SQL語(yǔ)句完成惟一性約束的操作,其語(yǔ)法形式如下:CONSTRAINTconstraint_nameUNIQUE[CLUSTERED|NONCLUSTERED](column_name[,…n])例5-6

創(chuàng)建一個(gè)學(xué)生信息表,其中name字段具有惟一性。程序清單如下:Createtablestudent(idchar(8),namechar(10),sexchar(2),constraintpk_idprimarykey(id),constraintuk_identityunique(name))第三十頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

3.檢查約束

檢查約束對(duì)輸入列或者整個(gè)表中的值設(shè)置檢查條件,以限制輸入值,保證數(shù)據(jù)庫(kù)數(shù)據(jù)的完整性。當(dāng)使用檢查約束時(shí),應(yīng)該考慮和注意以下幾點(diǎn):一個(gè)列級(jí)檢查約束只能與限制的字段有關(guān);一個(gè)表級(jí)檢查約束只能與限制的表中字段有關(guān);一個(gè)表中可以定義多個(gè)檢查約束;每個(gè)CREATETABLE語(yǔ)句中每個(gè)字段只能定義一個(gè)檢查約束;在多個(gè)字段上定義檢查約束,則必須將檢查約束定義為表級(jí)約束;當(dāng)執(zhí)行INSERT語(yǔ)句或者UPDATE語(yǔ)句時(shí),檢查約束將驗(yàn)證數(shù)據(jù);檢查約束中不能包含子查詢。第三十一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

3.檢查約束

創(chuàng)建檢查約束常用的操作方法有如下兩種:使用SQLServer管理平臺(tái)創(chuàng)建檢查約束;用Transact-SQL語(yǔ)句創(chuàng)建檢查約束。(1)使用SQLServer管理平臺(tái)創(chuàng)建檢查約束,如圖5-9所示。圖5-9創(chuàng)建檢查約束對(duì)話框

第三十二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

3.檢查約束

(2)用Transact-SQL語(yǔ)句創(chuàng)建檢查約束。用Transact-SQL語(yǔ)句創(chuàng)建檢查約束。其語(yǔ)法形式如下:

CONSTRAINTconstraint_nameCHECK[NOTFORREPLICATION](logical_expression)例5-8建立一個(gè)SC表,定義SCORE的取值范圍為0到100之間。程序清單如下:

CREATETABLESC(SNOCHAR(5),CNOCHAR(5),SCORENUMERIC(5,1)CONSTRAINTSCORE_CHKCHECK(SCORE>=0ANDSCORE<=100))第三十三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

4.默認(rèn)(DEFAULT)約束

默認(rèn)約束指定在插入操作中如果沒有提供輸入值時(shí),則系統(tǒng)自動(dòng)指定值。默認(rèn)約束可以包括常量、函數(shù)、不帶變?cè)膬?nèi)建函數(shù)或者空值。

使用默認(rèn)約束時(shí),應(yīng)該注意以下幾點(diǎn):(1)每個(gè)字段只能定義一個(gè)默認(rèn)約束;(2)如果定義的默認(rèn)值長(zhǎng)于其對(duì)應(yīng)字段的允許長(zhǎng)度,那么輸入到表中的默認(rèn)值將被截?cái)啵唬?)不能加入到帶有IDENTITY屬性或者數(shù)據(jù)類型為timestamp的字段上;(4)如果字段定義為用戶定義的數(shù)據(jù)類型,而且有一個(gè)默認(rèn)綁定到這個(gè)數(shù)據(jù)類型上,則不允許該字段有默認(rèn)約束。第三十四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

4.默認(rèn)(DEFAULT)約束

創(chuàng)建默認(rèn)約束常用的操作方法有如下兩種:使用SQLServer管理平臺(tái)創(chuàng)建默認(rèn)約束;創(chuàng)建默認(rèn)約束的Transact-SQL語(yǔ)句操作法。(1)使用SQLServer管理平臺(tái)創(chuàng)建默認(rèn)約束,如圖5-10所示。圖5-10創(chuàng)建默認(rèn)約束對(duì)話框

第三十五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

4.默認(rèn)(DEFAULT)約束

(2)創(chuàng)建默認(rèn)約束的Transact-SQL語(yǔ)句操作法。其語(yǔ)法形式如下:

CONSTRAINTconstraint_nameDEFAULTconstraint_expression[FORcolumn_name]例5-10

為dept字段創(chuàng)建默認(rèn)約束。程序清單如下:constraintcon_deptdefault‘計(jì)算機(jī)’fordept第三十六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

5.外部鍵約束

外鍵(FOREIGNKEY)是用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的鏈接的一列或多列。外部鍵約束用于強(qiáng)制參照完整性。當(dāng)使用外部鍵約束時(shí),應(yīng)該考慮以下幾個(gè)因素:外部鍵約束提供了字段參照完整性;外部鍵從句中的字段數(shù)目和每個(gè)字段指定的數(shù)據(jù)類型都必須和REFERENCES從句中的字段相匹配;外部鍵約束不能自動(dòng)創(chuàng)建索引,需要用戶手動(dòng)創(chuàng)建;用戶想要修改外部鍵約束的數(shù)據(jù),必須有對(duì)外部鍵約束所參考表的SELECT權(quán)限或者REFERENCES權(quán)限;參考同一表中的字段時(shí),必須只使用REFERENCES子句,不能使用外部鍵子句;一個(gè)表中最多可以有31個(gè)外部鍵約束;在臨時(shí)表中,不能使用外部鍵約束;主鍵和外部鍵的數(shù)據(jù)類型必須嚴(yán)格匹配第三十七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

5.外部鍵約束

創(chuàng)建外部鍵約束常用的操作方法有如下兩種:在SQLServer管理平臺(tái)中添加外部鍵約束;使用Transact-SQL語(yǔ)句設(shè)置外部鍵約束。(1)在SQLServer管理平臺(tái)中添加外部鍵約束,在SQLServer管理平臺(tái)中添加外部鍵約束。如圖5-11,5-12所示。圖5-11選擇創(chuàng)建外鍵約束的字段

圖5-12創(chuàng)建外鍵約束對(duì)話框

第三十八頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

5.外部鍵約束

(2)使用Transact-SQL語(yǔ)句設(shè)置外部鍵約束,其語(yǔ)法形式如下:

CONSTRAINTconstraint_nameFOREIGNKEY(column_name[,…n])

REFERENCESref_table[(ref_column[,…n])]例5-11建立一個(gè)SC表,定義SNO,CNO為SC的外部鍵。程序清單如下:

CREATETABLESC(SNOCHAR(5)NOTNULLCONSTRAINTS_FOREFOREIGNKEYREFERENCESS(SNO),CNOCHAR(5)NOTNULLCONSTRAINTC_FOREFOREIGNKEYREFERENCESC(CNO),SCORENUMERIC(3),CONSTRAINTS_C_PRIMPRIMARYKEY(SNO,CNO))第三十九頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

6.空值(NULL)約束

空值(NULL)約束用來控制是否允許該字段的值為NULL。NULL值不是0也不是空白,更不是填入字符串的“NULL”字符串,而是表示“不知道”、“不確定”或“沒有數(shù)據(jù)”的意思。當(dāng)某一字段的值一定要輸入才有意義的時(shí)候,則可以設(shè)置為NOTNULL。如主鍵列就不允許出現(xiàn)空值,否則就失去了唯一標(biāo)識(shí)一條記錄的作用??罩担∟ULL)約束只能用于定義列約束。創(chuàng)建空值(NULL)約束常用的操作方法有如下兩種:(1)在SQLServer管理平臺(tái)中添加空值(NULL)約束;(2)使用Transact-SQL語(yǔ)句設(shè)置空值(NULL)約束。第四十頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

6.空值(NULL)約束

(1)在SQLServer管理平臺(tái)中添加空值(NULL)約束。如圖5-14所示。圖5-14設(shè)置空值(NULL)約束對(duì)話框

第四十一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.2創(chuàng)建約束

6.空值(NULL)約束

(2)使用Transact-SQL語(yǔ)句設(shè)置空值(NULL)約束,其語(yǔ)法形式如下:

[CONSTRAINT<約束名>][NULL|NOTNULL]例5-13建立一個(gè)S表,對(duì)SNO字段進(jìn)行NOTNULL約束。程序清單如下:

CREATETABLES(SNOCHAR(10)CONSTRAINTS_CONSNOTNULL,SNVARCHAR(20),AGEINT,SEXCHAR(2)DEFAULT’男’,DEPTVARCHAR(20))第四十二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.3修改表

當(dāng)數(shù)據(jù)庫(kù)中的表創(chuàng)建完成后,可以根據(jù)需要改變表中原先定義的許多選項(xiàng),以更改表的結(jié)構(gòu)。用戶可以增加、刪除和修改列,增加、刪除和修改約束,更改表名以及改變表的所有者等。1、修改列屬性修改列屬性包括以下一些內(nèi)容:(1)修改列的數(shù)據(jù)類型;(2)修改列的數(shù)據(jù)長(zhǎng)度;(3)修改列的精度;(4)修改列的小數(shù)位數(shù);(5)修改列的為空性。第四十三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.3修改表

2、添加和刪除列

在SQLServer2005中,如果列允許空值或?qū)α袆?chuàng)建DEFAULT約束,則可以將列添加到現(xiàn)有表中。將新列添加到表時(shí),SQLServer2005數(shù)據(jù)庫(kù)引擎在該列為表中的每個(gè)現(xiàn)有數(shù)據(jù)行插入一個(gè)值。因此,在向表中添加列時(shí)向列添加DEFAULT定義會(huì)很有用。如果新列沒有DEFAULT定義,則必須指定該列允許空值。數(shù)據(jù)庫(kù)引擎將空值插入該列,如果新列不允許空值,則返回錯(cuò)誤。反之,可以刪除現(xiàn)有表中的列,但具有下列特征的列不能被刪除:(1)用于索引;(2)用于CHECK、FOREIGNKEY、UNIQUE或PRIMARYKEY約束;(3)與DEFAULT定義關(guān)聯(lián)或綁定到某一默認(rèn)對(duì)象;(4)綁定到規(guī)則;(5)已注冊(cè)支持全文;(6)用作表的全文鍵。第四十四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.3修改表

3、增加、修改和刪除約束

(1)增加、修改和刪除PRIMARYKEY約束。(2)增加、修改和刪除UNIQUE約束。(3)增加、修改和刪除CHECK約束。(4)增加、修改和刪除DEFAULT約束。(5)增加、修改和刪除FOREIGNKEY約束。(6)增加和修改標(biāo)識(shí)符列。只能為每個(gè)表創(chuàng)建一個(gè)標(biāo)識(shí)符列和一個(gè)GUID列。第四十五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.3修改表

例5-14

創(chuàng)建一個(gè)雇員信息表,然后在表中增加一個(gè)salary字段,刪除表中的age字段,并且修改memo字段的數(shù)據(jù)類型。SQL語(yǔ)句的程序清單如下:createtableemployees(idchar(8)primarykey,namechar(20)notnull,departmentchar(20)null,memochar(30)null,ageintnull,)altertableemployeesaddsalaryintnull,dropcolumnage,altercolumnmemovarchar(200)null第四十六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.3修改表

例5-15在S表中增加一個(gè)班號(hào)列和住址列。SQL語(yǔ)句的程序清單如下:ALTERTABLESADDCLASS_NOCHAR(6),ADDRESSCHAR(40)注意:使用此方式增加的新列自動(dòng)填充NULL值,所以不能為增加的新列指定NOTNULL約束。例5-16在SC表中增加完整性約束定義,使SCORE在0-100之間。SQL語(yǔ)句的程序清單如下:ALTERTABLESCADDCONSTRAINTSCORE_CHKCHECK(SCOREBETWEEN0AND100)第四十七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.4查看表

當(dāng)在數(shù)據(jù)庫(kù)中創(chuàng)建了表后,有時(shí)需要查看表的有關(guān)信息。比如表的屬性、定義、數(shù)據(jù)、字段屬性和索引等。尤其重要的是查看表內(nèi)存放的數(shù)據(jù),另外有時(shí)需要查看表與其他數(shù)據(jù)庫(kù)對(duì)象之間的依賴關(guān)系。1.查看表的定義

,如圖5-15,5-16所示。圖5-15選擇表格屬性對(duì)話框

圖5-16表格屬性對(duì)話框

第四十八頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.4查看表

2.查看表中存儲(chǔ)的數(shù)據(jù),如圖5-17,5-18所示。圖5-17選擇打開表對(duì)話框圖5-18顯示表格數(shù)據(jù)對(duì)話框

第四十九頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.4查看表

3.查看表與其他數(shù)據(jù)庫(kù)對(duì)象的依賴關(guān)系,如圖5-19所示。圖5-19顯示相關(guān)性對(duì)話框

第五十頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.4查看表

4.利用系統(tǒng)存儲(chǔ)過程查看表的信息系統(tǒng)存儲(chǔ)過程Sp_help可以提供指定數(shù)據(jù)庫(kù)對(duì)象的信息,也可以提供系統(tǒng)或者用戶定義的數(shù)據(jù)類型的信息,其語(yǔ)法形式如下:

sp_help[[@objname=]name]例5-17

(1)顯示當(dāng)前數(shù)據(jù)庫(kù)中所有對(duì)象的信息;(2)顯示表Person.Contact的信息。在SQLServer管理平臺(tái)的查詢窗口中,它們對(duì)應(yīng)的語(yǔ)句和運(yùn)行結(jié)果如圖5-20和圖5-21所示圖5-20所有數(shù)據(jù)庫(kù)對(duì)象顯示窗口

圖5-21當(dāng)前數(shù)據(jù)庫(kù)對(duì)象顯示窗口

第五十一頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.5刪除表

1.利用管理平臺(tái)刪除表在SQLServer管理平臺(tái)中,展開指定的數(shù)據(jù)庫(kù)和表,右擊要?jiǎng)h除的表,從彈出的快捷菜單中選擇“刪除”選項(xiàng),則出現(xiàn)除去對(duì)象對(duì)話框,如圖5-25所示。圖5-25刪除表對(duì)話框

第五十二頁(yè),共六十四頁(yè),編輯于2023年,星期五5.2.5刪除表

2.利用DROPTABLE語(yǔ)句刪除表DROPTABLE語(yǔ)句可以刪除一個(gè)表和表中的數(shù)據(jù)及其與表有關(guān)的所有索引、觸發(fā)器、約束、許可對(duì)象。DROPTABLE語(yǔ)句的語(yǔ)法形式如下:

DROPTABLEtable_name要?jiǎng)h除的表如果不在當(dāng)前數(shù)據(jù)庫(kù)中,則應(yīng)在table_name中指明其所屬的數(shù)據(jù)庫(kù)和用戶名。在刪除一個(gè)表之前要先刪除與此表相關(guān)聯(lián)的表中的外部關(guān)鍵字約束。當(dāng)刪除表后,綁定的規(guī)則或者默認(rèn)值會(huì)自動(dòng)松綁。例5-18

刪除company數(shù)據(jù)庫(kù)中的表employee。程序如下:droptablecompany.dbo.employee第五十三頁(yè),共六十四頁(yè),編輯于2023年,星期五5.3索引操作

索引是數(shù)據(jù)庫(kù)隨機(jī)檢索的常用手段,它實(shí)際上就是記錄的關(guān)鍵字與其相應(yīng)地址的對(duì)應(yīng)表。通過索引可大大提高查詢速度。此外,在SQLSERVER中,行的唯一性也是通過建立唯一索引來維護(hù)的。使用索引可以大大提高系統(tǒng)的性能,其具體表現(xiàn)在:(1)通過創(chuàng)建惟一索引,可以保證數(shù)據(jù)記錄的惟一性。(2)可以大大加快數(shù)據(jù)檢索速度。(3)可以加速表與表之間的連接,這一點(diǎn)在實(shí)現(xiàn)數(shù)據(jù)的參照完整性方面有特別的意義。(4)在使用ORDERBY和GROUPBY子句進(jìn)行檢索數(shù)據(jù)時(shí),可以顯著減少查詢中分組和排序的時(shí)間。(5)使用索引可以在檢索數(shù)據(jù)的過程中使用優(yōu)化隱藏器,提高系統(tǒng)性能第五十四頁(yè),共六十四頁(yè),編輯于2023年,星期五5.3.1創(chuàng)建索引

SQLServer2005提供了如下幾種創(chuàng)建索引的方法:

1.利用SQLServer管理平臺(tái)創(chuàng)建索引;

2.利用Transact-SQL語(yǔ)句中的CREATEINDEX命令創(chuàng)建索引。另外,可以在創(chuàng)建表的PRIMARYKEY或UNIQUE約束時(shí)自動(dòng)創(chuàng)建索引。第五十五頁(yè),共六十四頁(yè),編輯于2023年,星期五5.3.1創(chuàng)建索引

1.利用SQLServer管理平臺(tái)創(chuàng)建索引。(1)展開指定的服務(wù)器和數(shù)據(jù)庫(kù),選擇要?jiǎng)?chuàng)建索引的表,展開該表,選擇“索引”選項(xiàng)(如圖5-26所示),右鍵單擊索引,從彈出的快捷菜單中選擇“新建索引”,就會(huì)出現(xiàn)新建索引對(duì)話框,如圖5-27所示。圖5-26選擇新建索引選項(xiàng)對(duì)話框

圖5-27創(chuàng)建索引對(duì)話框

第五十六頁(yè),共六十四頁(yè),編輯于2023年,星期五5.3.1創(chuàng)建索引

1.利用SQLServer管理平臺(tái)創(chuàng)建索引。(2)點(diǎn)擊“添加”按鈕,可選擇用于創(chuàng)建索引的字段,如圖5-28所示。(3)打開創(chuàng)建索引對(duì)話框的選項(xiàng)頁(yè)框,在此還可以設(shè)定索引的屬性,如圖5-29所示。

圖5-28選擇用于創(chuàng)建索引的字段

圖5-29索引對(duì)話框的選項(xiàng)頁(yè)框

第五十七頁(yè),共六十四頁(yè),編輯于2023年,星期五5.3.1創(chuàng)建索引

2.利用Transact-SQL語(yǔ)句中的CREATEINDEX命令創(chuàng)建索引

CREATEINDEX命令既可以創(chuàng)建一個(gè)可改變表的物理順序的聚集索引,也可以創(chuàng)建提高查詢性能的非聚集索引,其語(yǔ)法形式如下:

CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEXindex_nam

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論