第6章創(chuàng)建與使用數(shù)據(jù)表_第1頁
第6章創(chuàng)建與使用數(shù)據(jù)表_第2頁
第6章創(chuàng)建與使用數(shù)據(jù)表_第3頁
第6章創(chuàng)建與使用數(shù)據(jù)表_第4頁
第6章創(chuàng)建與使用數(shù)據(jù)表_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第第6 6章章 創(chuàng)建與使用數(shù)據(jù)表創(chuàng)建與使用數(shù)據(jù)表 在關(guān)系數(shù)據(jù)庫中,每一個(gè)關(guān)系都體現(xiàn)為一張二維表,使在關(guān)系數(shù)據(jù)庫中,每一個(gè)關(guān)系都體現(xiàn)為一張二維表,使用表來存儲(chǔ)和操作數(shù)據(jù)的邏輯結(jié)構(gòu),表是數(shù)據(jù)庫中最重要的用表來存儲(chǔ)和操作數(shù)據(jù)的邏輯結(jié)構(gòu),表是數(shù)據(jù)庫中最重要的數(shù)據(jù)對(duì)象。數(shù)據(jù)對(duì)象。 6.1 6.1 數(shù)據(jù)類型數(shù)據(jù)類型 數(shù)據(jù)庫存儲(chǔ)的對(duì)象主要是數(shù)據(jù),現(xiàn)實(shí)中存在著各種不同數(shù)據(jù)庫存儲(chǔ)的對(duì)象主要是數(shù)據(jù),現(xiàn)實(shí)中存在著各種不同類型的數(shù)據(jù),數(shù)據(jù)類型就是以數(shù)據(jù)的表現(xiàn)方式和存儲(chǔ)方式來類型的數(shù)據(jù),數(shù)據(jù)類型就是以數(shù)據(jù)的表現(xiàn)方式和存儲(chǔ)方式來劃分的數(shù)據(jù)種類。劃分的數(shù)據(jù)種類。 SQL ServerSQL Server的數(shù)據(jù)類型可以分為兩

2、類:基本數(shù)據(jù)類型和的數(shù)據(jù)類型可以分為兩類:基本數(shù)據(jù)類型和用戶自定義數(shù)據(jù)類型。用戶自定義數(shù)據(jù)類型。6.1.1 6.1.1 基本數(shù)據(jù)類型基本數(shù)據(jù)類型 SQL Server2008SQL Server2008支持整型、字符型、貨幣型和日期時(shí)間等多種基本數(shù)支持整型、字符型、貨幣型和日期時(shí)間等多種基本數(shù)據(jù)類型。據(jù)類型。1. 1. 二進(jìn)制數(shù)據(jù)類型二進(jìn)制數(shù)據(jù)類型 SQL ServerSQL Server用用binarybinary、varbinaryvarbinary和和imageimage三種數(shù)據(jù)類型存儲(chǔ)二進(jìn)制數(shù)三種數(shù)據(jù)類型存儲(chǔ)二進(jìn)制數(shù)據(jù),見表據(jù),見表6-16-1。2. 2. 整型數(shù)據(jù)類型整型數(shù)據(jù)類型 整

3、型數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一。整型數(shù)據(jù)類型是最常用的數(shù)據(jù)類型之一。SQL Server2008SQL Server2008支持的整數(shù)類支持的整數(shù)類型有型有intint、smallintsmallint、bigintbigint和和tinyinttinyint四種。見表四種。見表6-26-2。3. 3. 浮點(diǎn)數(shù)據(jù)類型浮點(diǎn)數(shù)據(jù)類型 浮點(diǎn)數(shù)據(jù)類型用于存儲(chǔ)十進(jìn)制小數(shù),浮點(diǎn)數(shù)據(jù)類型用于存儲(chǔ)十進(jìn)制小數(shù),SQL Server2008SQL Server2008支持的浮點(diǎn)數(shù)據(jù)類支持的浮點(diǎn)數(shù)據(jù)類型分為型分為realreal、floatfloat、decimaldecimal和和numericnumeric等

4、四種。見表等四種。見表6-36-3。4. 4. 字符數(shù)據(jù)類型字符數(shù)據(jù)類型 字符數(shù)據(jù)類型是使用最多的數(shù)據(jù)類型,可以用它來存儲(chǔ)各種字母、數(shù)字字符數(shù)據(jù)類型是使用最多的數(shù)據(jù)類型,可以用它來存儲(chǔ)各種字母、數(shù)字符號(hào)、特殊符號(hào)。符號(hào)、特殊符號(hào)。SQL Server2008SQL Server2008支持的字符數(shù)據(jù)類型有支持的字符數(shù)據(jù)類型有charchar、varcharvarchar、texttext、ncharnchar、nvarcharnvarchar、ntextntext等六種。前三種是非等六種。前三種是非unicodeunicode字符數(shù)據(jù),后字符數(shù)據(jù),后三種是三種是unicodeunicode字符

5、數(shù)據(jù)。見表字符數(shù)據(jù)。見表6-46-4。5. 5. 邏輯數(shù)據(jù)類型邏輯數(shù)據(jù)類型 邏輯數(shù)據(jù)類型邏輯數(shù)據(jù)類型bitbit占用占用1 1個(gè)字節(jié)的存儲(chǔ)空間,其值為個(gè)字節(jié)的存儲(chǔ)空間,其值為0 0或或1 1。如果輸入。如果輸入0 0或或1 1以外的值,將被視為以外的值,將被視為1 1。bitbit類型不能定義為類型不能定義為NULLNULL。6. 6. 日期和時(shí)間數(shù)據(jù)類型日期和時(shí)間數(shù)據(jù)類型 日期和時(shí)間數(shù)據(jù)類型用于存儲(chǔ)日期和時(shí)間的結(jié)合體,日期和時(shí)間數(shù)據(jù)類型用于存儲(chǔ)日期和時(shí)間的結(jié)合體,SQL Server2008SQL Server2008支支持的日期時(shí)間數(shù)據(jù)類型有持的日期時(shí)間數(shù)據(jù)類型有datedate、date

6、timedatetime、datetime2datetime2、datetimeoffsetdatetimeoffset、smalldatetimesmalldatetime、timetime等六種。見表等六種。見表6-56-5。7. 7. 貨幣數(shù)據(jù)類型貨幣數(shù)據(jù)類型 貨幣數(shù)據(jù)類型用于存儲(chǔ)貨幣值,在使用貨幣數(shù)據(jù)類型時(shí),應(yīng)在數(shù)據(jù)前加貨幣數(shù)據(jù)類型用于存儲(chǔ)貨幣值,在使用貨幣數(shù)據(jù)類型時(shí),應(yīng)在數(shù)據(jù)前加上貨幣符號(hào)。上貨幣符號(hào)。SQL Server2008SQL Server2008支持支持moneymoney和和smallmoneysmallmoney兩種。如圖兩種。如圖6-66-6所示。所示。 8. 8.

7、 其它數(shù)據(jù)類型其它數(shù)據(jù)類型 SQL Server2008SQL Server2008中包含了一些用于數(shù)據(jù)存儲(chǔ)的特殊數(shù)據(jù)類型,見表中包含了一些用于數(shù)據(jù)存儲(chǔ)的特殊數(shù)據(jù)類型,見表6-76-7。6.1.2 6.1.2 用戶定義數(shù)據(jù)類型用戶定義數(shù)據(jù)類型 用戶定義數(shù)據(jù)類型是在基本數(shù)據(jù)類型的基礎(chǔ)上根據(jù)實(shí)際需要由用戶自用戶定義數(shù)據(jù)類型是在基本數(shù)據(jù)類型的基礎(chǔ)上根據(jù)實(shí)際需要由用戶自己定義的數(shù)據(jù)類型,并不是創(chuàng)建一種新的數(shù)據(jù)類型,是在系統(tǒng)基本數(shù)據(jù)類己定義的數(shù)據(jù)類型,并不是創(chuàng)建一種新的數(shù)據(jù)類型,是在系統(tǒng)基本數(shù)據(jù)類型的基礎(chǔ)上增加一些限制約束,如將是否允許為空、約束規(guī)則及默認(rèn)值對(duì)型的基礎(chǔ)上增加一些限制約束,如將是否允許為空

8、、約束規(guī)則及默認(rèn)值對(duì)象等綁定在一起。象等綁定在一起。下面通過實(shí)例來介紹在下面通過實(shí)例來介紹在Management StudioManagement Studio中建立用戶定義數(shù)據(jù)類型。中建立用戶定義數(shù)據(jù)類型。1 1)啟動(dòng))啟動(dòng)Management StudioManagement Studio,在,在“對(duì)象資源管理器對(duì)象資源管理器”面板中的面板中的“數(shù)據(jù)庫數(shù)據(jù)庫”中選擇中選擇“Library”Library”數(shù)據(jù)庫,依次選擇數(shù)據(jù)庫,依次選擇“可編程性可編程性”“類型類型”,鼠標(biāo)右鍵,鼠標(biāo)右鍵單擊單擊“用戶定義數(shù)據(jù)類型用戶定義數(shù)據(jù)類型”,在打開的菜單中選擇,在打開的菜單中選擇“新建用戶定義數(shù)據(jù)類

9、新建用戶定義數(shù)據(jù)類型型”,如圖,如圖6-16-1所示。所示。2) 2) 如圖如圖6-26-2所示,打開所示,打開“新建用戶定義數(shù)據(jù)類型新建用戶定義數(shù)據(jù)類型”后,在后,在“常規(guī)常規(guī)”選項(xiàng)卡選項(xiàng)卡下的下的“名稱名稱”輸入用戶定義數(shù)據(jù)類型名輸入用戶定義數(shù)據(jù)類型名“telephone”telephone”,在,在“數(shù)據(jù)類型數(shù)據(jù)類型”下下拉列表中選擇字符類型拉列表中選擇字符類型charchar,在,在“長(zhǎng)度長(zhǎng)度”文本框中輸入文本框中輸入1111,“允許允許NULLNULL值值”復(fù)選框選中,表示允許輸入空值,選擇綁定的默認(rèn)值對(duì)象和規(guī)則對(duì)象。完復(fù)選框選中,表示允許輸入空值,選擇綁定的默認(rèn)值對(duì)象和規(guī)則對(duì)象。完

10、成以上設(shè)置后,就創(chuàng)建了名為成以上設(shè)置后,就創(chuàng)建了名為telephonetelephone的電話自定義數(shù)據(jù)類型,是的電話自定義數(shù)據(jù)類型,是9 9位的位的字符數(shù)據(jù)。字符數(shù)據(jù)。用戶創(chuàng)建了自定義數(shù)據(jù)類型后,使用方法與基本數(shù)據(jù)類型使用一樣。用戶創(chuàng)建了自定義數(shù)據(jù)類型后,使用方法與基本數(shù)據(jù)類型使用一樣。 前面章節(jié)介紹了數(shù)據(jù)庫的創(chuàng)建,并且創(chuàng)建了前面章節(jié)介紹了數(shù)據(jù)庫的創(chuàng)建,并且創(chuàng)建了“Library”Library”數(shù)數(shù)據(jù)庫,現(xiàn)在介紹一下如何創(chuàng)建數(shù)據(jù)表。據(jù)庫,現(xiàn)在介紹一下如何創(chuàng)建數(shù)據(jù)表。 6.2.1 6.2.1 數(shù)據(jù)表的概念及內(nèi)容數(shù)據(jù)表的概念及內(nèi)容 數(shù)據(jù)表是數(shù)據(jù)庫中最重要的對(duì)象,是相關(guān)聯(lián)的行列數(shù)據(jù)的集合,整數(shù)據(jù)

11、表是數(shù)據(jù)庫中最重要的對(duì)象,是相關(guān)聯(lián)的行列數(shù)據(jù)的集合,整個(gè)數(shù)據(jù)庫中的數(shù)據(jù)都是物理存儲(chǔ)在各個(gè)數(shù)據(jù)表中的。數(shù)據(jù)表的主要內(nèi)容個(gè)數(shù)據(jù)庫中的數(shù)據(jù)都是物理存儲(chǔ)在各個(gè)數(shù)據(jù)表中的。數(shù)據(jù)表的主要內(nèi)容包括:包括:1) 1) 表的名字,每個(gè)表都必須有一個(gè)名字。表名必須遵循表的名字,每個(gè)表都必須有一個(gè)名字。表名必須遵循SQL Server2008SQL Server2008 的命名規(guī)則,且最好能夠使表名準(zhǔn)確表達(dá)表格的內(nèi)容。的命名規(guī)則,且最好能夠使表名準(zhǔn)確表達(dá)表格的內(nèi)容。2) 2) 表中各列的名字和數(shù)據(jù)類型,包括基本數(shù)據(jù)類型及自定義數(shù)據(jù)類型。表中各列的名字和數(shù)據(jù)類型,包括基本數(shù)據(jù)類型及自定義數(shù)據(jù)類型。3) 3) 表的主碼

12、和外碼信息。表的主碼和外碼信息。4) 4) 表中哪些列允許為空。表中哪些列允許為空。5) 5) 表中哪些列需要索引。表中哪些列需要索引。 6) 6) 表中哪些列需要綁定約束對(duì)象、默認(rèn)值對(duì)象或規(guī)則對(duì)象。表中哪些列需要綁定約束對(duì)象、默認(rèn)值對(duì)象或規(guī)則對(duì)象。 6.2.2 6.2.2 使用使用SQL Server Management StudioSQL Server Management Studio工具創(chuàng)建數(shù)據(jù)表工具創(chuàng)建數(shù)據(jù)表 表必須創(chuàng)建在某一個(gè)數(shù)據(jù)庫中,不能獨(dú)立存在。在創(chuàng)建表時(shí),需要表必須創(chuàng)建在某一個(gè)數(shù)據(jù)庫中,不能獨(dú)立存在。在創(chuàng)建表時(shí),需要使用不同的數(shù)據(jù)庫對(duì)象。下面使用使用不同的數(shù)據(jù)庫對(duì)象。下面使

13、用SQL Server Management StudioSQL Server Management Studio創(chuàng)建創(chuàng)建數(shù)據(jù)表,在數(shù)據(jù)表,在“Library”Library”數(shù)據(jù)庫中創(chuàng)建數(shù)據(jù)庫中創(chuàng)建“UserCate”UserCate”表和表和“Book”Book”表。表。“UserCate”UserCate”表用來存放讀者的類別信息,包括類別名稱、借閱數(shù)量和借表用來存放讀者的類別信息,包括類別名稱、借閱數(shù)量和借閱時(shí)間等屬性。閱時(shí)間等屬性?!癠serTb”UserTb”表用來存放讀者的信息,包括讀者編號(hào)、姓名、性別、讀者類表用來存放讀者的信息,包括讀者編號(hào)、姓名、性別、讀者類別名、工作單位、

14、家庭住址、電話、登記日期、已借書數(shù)量等屬性。別名、工作單位、家庭住址、電話、登記日期、已借書數(shù)量等屬性。 “ “UserCate”UserCate”表中的各個(gè)字段見表表中的各個(gè)字段見表6-86-8。“UserTb”“UserTb”表中的各個(gè)字段見表表中的各個(gè)字段見表6-96-9。 下面來創(chuàng)建下面來創(chuàng)建“UserCate”UserCate”表和表和“UserTb”UserTb”表,具體步驟如下:表,具體步驟如下:1) 1) 啟動(dòng)啟動(dòng)Microsoft SQL Server Management StudioMicrosoft SQL Server Management Studio,在左側(cè),在左

15、側(cè)“對(duì)象資源對(duì)象資源管理器管理器”窗口中依次展開窗口中依次展開“數(shù)據(jù)庫數(shù)據(jù)庫”及其結(jié)點(diǎn)下的及其結(jié)點(diǎn)下的“Library”Library”數(shù)據(jù)庫,右數(shù)據(jù)庫,右鍵鍵單擊其下的單擊其下的“表表”選項(xiàng),選擇選項(xiàng),選擇“新建表新建表”,如圖,如圖6-36-3所示。所示。 2) 2) 打開表設(shè)計(jì)窗口后,在第一列打開表設(shè)計(jì)窗口后,在第一列“列名列名”字段中輸入字段中輸入“CateName”CateName”,在,在“數(shù)數(shù) 據(jù)類型據(jù)類型”中選擇中選擇“varchar”varchar”數(shù)據(jù)類型,修改長(zhǎng)度為數(shù)據(jù)類型,修改長(zhǎng)度為1010,該字段不允許為,該字段不允許為空,空, 故將故將“允許允許NullNull值值

16、”字段復(fù)選框修改為不被選中狀態(tài)。這里需要將字段復(fù)選框修改為不被選中狀態(tài)。這里需要將 “ “CateName”CateName”列設(shè)為主鍵,將鼠標(biāo)放在列列設(shè)為主鍵,將鼠標(biāo)放在列“CateName”CateName”上,單擊右鍵,上,單擊右鍵,選擇選擇 “ “設(shè)置主鍵設(shè)置主鍵”即可,也可以在菜單項(xiàng)即可,也可以在菜單項(xiàng)“表設(shè)計(jì)器表設(shè)計(jì)器”中選擇。如圖中選擇。如圖6-46-4所示。所示。如如 果要設(shè)置幾個(gè)列的組合作為主鍵,可以在選擇列的時(shí)候按下果要設(shè)置幾個(gè)列的組合作為主鍵,可以在選擇列的時(shí)候按下CtrlCtrl鍵不放鍵不放 單擊多列。單擊多列。 3) 3) 接下來將接下來將“UserCate”User

17、Cate”表中的其他字段按照相同的步驟設(shè)置。在某些表表中的其他字段按照相同的步驟設(shè)置。在某些表中,為了方便,可以設(shè)置某些字段自動(dòng)編號(hào),當(dāng)輸入紀(jì)錄時(shí),不必給自中,為了方便,可以設(shè)置某些字段自動(dòng)編號(hào),當(dāng)輸入紀(jì)錄時(shí),不必給自動(dòng)編號(hào)的字段賦值,系統(tǒng)會(huì)自動(dòng)給該字段排號(hào)。但是必須要保證設(shè)置自動(dòng)編號(hào)的字段賦值,系統(tǒng)會(huì)自動(dòng)給該字段排號(hào)。但是必須要保證設(shè)置自動(dòng)編號(hào)的字段的數(shù)據(jù)類型為整數(shù)。設(shè)置方法是:先選中要設(shè)置自動(dòng)編號(hào)動(dòng)編號(hào)的字段的數(shù)據(jù)類型為整數(shù)。設(shè)置方法是:先選中要設(shè)置自動(dòng)編號(hào)的字段;然后在的字段;然后在“表設(shè)計(jì)器表設(shè)計(jì)器”下方展開下方展開“標(biāo)識(shí)規(guī)范標(biāo)識(shí)規(guī)范”項(xiàng),設(shè)置項(xiàng),設(shè)置“是標(biāo)識(shí)是標(biāo)識(shí)”為為“是是”;最后

18、根據(jù)具體情況設(shè)置;最后根據(jù)具體情況設(shè)置“標(biāo)識(shí)增量標(biāo)識(shí)增量”和和“標(biāo)識(shí)種子標(biāo)識(shí)種子”。如圖。如圖6-56-5所所示。示。4) 4) 全部字段輸入結(jié)束后,選擇全部字段輸入結(jié)束后,選擇“文件文件”菜單下菜單下“保存保存”,或者單擊保存按,或者單擊保存按鈕鈕,在彈出的文本框中輸入表名,在彈出的文本框中輸入表名“UserCate”UserCate”。單擊。單擊“確定確定”即完成表的創(chuàng)即完成表的創(chuàng)建建,如圖,如圖6-66-6所示。所示。 5) 5) 利用同樣的方法可以創(chuàng)建利用同樣的方法可以創(chuàng)建“UserTb”UserTb”表,創(chuàng)建完畢的表,創(chuàng)建完畢的“UserTb”UserTb”表如表如圖圖6-6- 7

19、7所示。所示。 6.2.3 6.2.3 使用使用Transact-SQLTransact-SQL創(chuàng)建數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表使用使用T-SQLT-SQL創(chuàng)建表的語法如下。創(chuàng)建表的語法如下。CREATE TABLE database_name schema_name | schema_name table_name ( | ,n ) on partition_scheme_name ( partition_column_name ) | filegroup | “default” TEXTIMAGE_ON filegroup | “default”其中:其中:包括:包括:column_name FILE

20、STREAM COLLATE collation_name NULL | NOT NULL CONSTRAINT constraint_name DEFAULT constant_expression | IDENTITY ( seed ,increment ) NOT FOR REPLICATION ROWGUIDCOL .n 【例【例6-16-1】使用】使用CREATE TABLECREATE TABLE語句創(chuàng)建語句創(chuàng)建“Book”Book”表,表,“Book”Book”表用來存放圖書的表用來存放圖書的各種信息,包括圖書編號(hào)、圖書名稱、圖書類別號(hào)、作者、出版社、出版各種信息,包括圖書編號(hào)、

21、圖書名稱、圖書類別號(hào)、作者、出版社、出版日期、入庫日期、價(jià)格、狀態(tài)等屬性。日期、入庫日期、價(jià)格、狀態(tài)等屬性。使用使用primary keyprimary key指定了字段指定了字段“BookIdBookId”為主鍵,且不為空。為主鍵,且不為空。定義的各個(gè)列之間要用定義的各個(gè)列之間要用“, ,”間隔。間隔。創(chuàng)建完畢的結(jié)果如圖創(chuàng)建完畢的結(jié)果如圖6-86-8所示。所示。 USE LibraryUSE LibraryCREATE TABLE BookCREATE TABLE Book( ( BookId char(10) not null primary key, BookId char(10) no

22、t null primary key, BookName varchar(20) not null, BookName varchar(20) not null, BkCateId varchar(6) not null, BkCateId varchar(6) not null, Author varchar(20) not null, Author varchar(20) not null, Publish varchar(15) not null, Publish varchar(15) not null, PubTime smalldatetime null, PubTime smal

23、ldatetime null, CheckIn datetime not null, CheckIn datetime not null, Price money null, Price money null, BookStatus bit not null BookStatus bit not null ) ) 6.3 6.3 修改表結(jié)構(gòu)修改表結(jié)構(gòu) 已經(jīng)建立的表格,如果不符合要求,可以進(jìn)行修改。已經(jīng)建立的表格,如果不符合要求,可以進(jìn)行修改。SQL SQL Server2008Server2008提供兩種修改數(shù)據(jù)表的方法:使用提供兩種修改數(shù)據(jù)表的方法:使用SQL Server SQL Serv

24、er Management StudioManagement Studio修改表和使用修改表和使用Transact-SQLTransact-SQL語句修改表。語句修改表。6.3.1 6.3.1 使用使用SQL Server Management StudioSQL Server Management Studio修改數(shù)據(jù)表結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu) 修改數(shù)據(jù)表結(jié)構(gòu)包括修改某列的數(shù)據(jù)類型、列寬度、添加和刪除某修改數(shù)據(jù)表結(jié)構(gòu)包括修改某列的數(shù)據(jù)類型、列寬度、添加和刪除某列、修改列的約束等。下面以修改列、修改列的約束等。下面以修改“Book”Book”表為例介紹使用表為例介紹使用SQL ServerSQL S

25、erver Management Studio Management Studio修改表的具體步驟。修改表的具體步驟?!纠纠?-26-2】在】在“Book”Book”表中,作如下修改:表中,作如下修改:“BookId”BookId”字段設(shè)置主鍵約束;字段設(shè)置主鍵約束;“BkCateId”BkCateId”字段設(shè)置外鍵,參照字段設(shè)置外鍵,參照“BookCategory”BookCategory”表的表的“BkCateId”BkCateId”字字段段;“CheckIn”CheckIn”字段設(shè)置默認(rèn)值。字段設(shè)置默認(rèn)值。 1) 1) 打開打開“SQL Server Management Studio

26、”SQL Server Management Studio” 窗口,在左邊的窗口,在左邊的“對(duì)象資源管理器對(duì)象資源管理器”中打開中打開 “ “Library”Library”數(shù)據(jù)庫,用右鍵選擇要修改的數(shù)據(jù)庫,用右鍵選擇要修改的 表表“Book”Book”,在彈出的菜單中選擇,在彈出的菜單中選擇“設(shè)計(jì)設(shè)計(jì)”選選 項(xiàng),打開表的設(shè)計(jì)器。如圖項(xiàng),打開表的設(shè)計(jì)器。如圖6-96-9所示。所示。 2) 2) 在打開的設(shè)計(jì)界面中按自己的要求修改表結(jié)構(gòu)??梢灾苯有薷牧忻⒃诖蜷_的設(shè)計(jì)界面中按自己的要求修改表結(jié)構(gòu)。可以直接修改列名、列屬性、默認(rèn)值和規(guī)范等。也可以用鼠標(biāo)右鍵單擊列,通過選擇快捷菜列屬性、默認(rèn)值和規(guī)范

27、等。也可以用鼠標(biāo)右鍵單擊列,通過選擇快捷菜單中的選項(xiàng),對(duì)表進(jìn)行主鍵設(shè)置、插入列、刪除列、設(shè)置外鍵關(guān)系、索單中的選項(xiàng),對(duì)表進(jìn)行主鍵設(shè)置、插入列、刪除列、設(shè)置外鍵關(guān)系、索引、唯一約束和引、唯一約束和CHECKCHECK約束設(shè)置等修改,也可以用鼠標(biāo)拖動(dòng)改變列的次序約束設(shè)置等修改,也可以用鼠標(biāo)拖動(dòng)改變列的次序. .3) 3) 設(shè)置外鍵約束的步驟如下:設(shè)置外鍵約束的步驟如下: 右鍵選擇右鍵選擇“BkCateId”BkCateId”字段,在彈出的菜單中選擇字段,在彈出的菜單中選擇“關(guān)系關(guān)系”,在,在“外外鍵關(guān)鍵關(guān) 系系”界面中選擇界面中選擇“添加添加”,在右側(cè),在右側(cè)“標(biāo)識(shí)標(biāo)識(shí)”選項(xiàng)中的名稱是該外鍵約束選

28、項(xiàng)中的名稱是該外鍵約束的默認(rèn)的默認(rèn) 名稱,可在此處輸入自己的約束名。名稱,可在此處輸入自己的約束名。 鼠標(biāo)單擊鼠標(biāo)單擊“表和列規(guī)范表和列規(guī)范”前的前的“+”+”,選擇右側(cè)的,在打開的對(duì)話框,選擇右側(cè)的,在打開的對(duì)話框中,中, 在在“外鍵表外鍵表”下面的列表中選擇要?jiǎng)?chuàng)建外鍵約束的字段;在下面的列表中選擇要?jiǎng)?chuàng)建外鍵約束的字段;在“主鍵表主鍵表”的下的下 拉列表中選擇該外鍵所引用的父表,并在下面的列表框中選擇該外鍵所拉列表中選擇該外鍵所引用的父表,并在下面的列表框中選擇該外鍵所 要引用的字段。需要注意的是:外鍵所要引用的列必須是父表中已經(jīng)設(shè)要引用的字段。需要注意的是:外鍵所要引用的列必須是父表中已經(jīng)

29、設(shè) 置了主鍵約束或唯一約束的列。如圖置了主鍵約束或唯一約束的列。如圖6-106-10所示。所示。 4) 4) 鼠標(biāo)選中要設(shè)置默認(rèn)值的字段鼠標(biāo)選中要設(shè)置默認(rèn)值的字段“CheckIn”CheckIn”,在,在“列屬性列屬性”集中選擇集中選擇“常規(guī)常規(guī)”,在其下方的在其下方的“默認(rèn)值或綁定默認(rèn)值或綁定”中輸入。默認(rèn)值可以是常量、內(nèi)置函數(shù)或數(shù)中輸入。默認(rèn)值可以是常量、內(nèi)置函數(shù)或數(shù)學(xué)學(xué)表達(dá)式。這里用系統(tǒng)時(shí)間的內(nèi)置函數(shù)表達(dá)式。這里用系統(tǒng)時(shí)間的內(nèi)置函數(shù)“getdate()”getdate()”。如圖。如圖6-116-11所示。所示。6.3.2 6.3.2 使用使用Transact-SQLTransact-S

30、QL修改數(shù)據(jù)表結(jié)構(gòu)修改數(shù)據(jù)表結(jié)構(gòu)使用使用T-SQLT-SQL修改數(shù)據(jù)表結(jié)構(gòu)的語法如下。修改數(shù)據(jù)表結(jié)構(gòu)的語法如下。ALTER TABLE database_name ALTER TABLE database_name schema_name schema_name | schema_name| schema_name table_name table_name ALTER COLUMN column_name - ALTER COLUMN column_name -修改列定義修改列定義 new_data_type (precision new_data_type (precision ,scal

31、e ) scale ) COLLATE COLLATE NULL | NOT NULL NULL | NOT NULL | ADD | DROP ROWGUIDCOL | ADD | DROP ROWGUIDCOL | ADD - | ADD -添加列添加列 | column_name AS computed_column_expression | column_name AS computed_column_expression ,n n | WITH CHECK | WITH NOCHECK ADD - | WITH CHECK | WITH NOCHECK ADD -添加約束添加約束 ,

32、n ,n | DROP | DROP CONSTRAINT constraint_name - CONSTRAINT constraint_name -刪除約束刪除約束| COLUMN column ,n -| COLUMN column ,n -刪除列刪除列 | CHECK | NOCHECK CONSTRAINT -| CHECK | NOCHECK CONSTRAINT -啟用或禁用約束啟用或禁用約束 ALL | constraint_name ,n ALL | constraint_name ,n | ENABLE | DISABLE TRIGGER - | ENABLE | DISA

33、BLE TRIGGER -啟用或禁用觸發(fā)器啟用或禁用觸發(fā)器 ALL | trigger_name ,n ALL | trigger_name ,n 【例【例6-36-3】在】在“Book”Book”表中,將表中,將“PubTime”PubTime”字段的數(shù)據(jù)類型改為字段的數(shù)據(jù)類型改為datedate,且,且允允許為空;將許為空;將“CheckIn”CheckIn”字段數(shù)據(jù)類型修改為字段數(shù)據(jù)類型修改為datedate。 1) 1) 單擊單擊“SQL Server Management Studio”SQL Server Management Studio”工具條上的按鈕,打開一個(gè)工具條上的按鈕,

34、打開一個(gè)新新 的查詢標(biāo)簽頁。在工具條上的的查詢標(biāo)簽頁。在工具條上的“可用數(shù)據(jù)庫可用數(shù)據(jù)庫”下拉列表中選擇下拉列表中選擇“Library”Library”。 在查詢頁中輸入在查詢頁中輸入ALTER TABLEALTER TABLE語句,如圖語句,如圖6-126-12所示。所示。2) 2) 在工具條上單擊按鈕,執(zhí)行在工具條上單擊按鈕,執(zhí)行alter tablealter table命令,在標(biāo)簽頁下面的命令,在標(biāo)簽頁下面的“消息消息”標(biāo)簽頁中現(xiàn)實(shí)執(zhí)行結(jié)果。標(biāo)簽頁中現(xiàn)實(shí)執(zhí)行結(jié)果。 3) 3) 修改表結(jié)構(gòu)時(shí),一次只能完成一項(xiàng)修改。按照以上同樣的步驟,完成修改表結(jié)構(gòu)時(shí),一次只能完成一項(xiàng)修改。按照以上同樣的

35、步驟,完成 修改修改“CheckIn”CheckIn”字段的操作。字段的操作。 【例【例6-46-4】在】在“UserTb”UserTb”表中,為表中,為“UserBkNum”UserBkNum”字段添加一個(gè)檢查約束,字段添加一個(gè)檢查約束,所所輸入的已借書數(shù)量必須大于等于零。輸入的已借書數(shù)量必須大于等于零。在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。USE LibraryUSE LibraryALTER TABLE UserTbALTER TABLE UserTbADD CONSTRAINT U_check CHECK ( UserBkNum=0 )ADD

36、CONSTRAINT U_check CHECK ( UserBkNum=0 )【例【例6-56-5】在】在“UserTb”UserTb”表中添加一個(gè)字段表中添加一個(gè)字段“UserOcc”UserOcc”表示讀者的職業(yè),表示讀者的職業(yè),varchar(6)varchar(6)。隨后再刪除掉。隨后再刪除掉。在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。ALTER TABLE UserTbALTER TABLE UserTbADD UserOcc varchar(6) nullADD UserOcc varchar(6) nullGOGOALTER TABLE U

37、serTbALTER TABLE UserTb DROP COLUMN UserOcc DROP COLUMN UserOcc 此處需要注意的是:當(dāng)使用此處需要注意的是:當(dāng)使用alter table alter table 添加列時(shí),如果要求該列不為添加列時(shí),如果要求該列不為空,則必須要指定一個(gè)默認(rèn)值,否則不能添加成功。若不允許為空又不空,則必須要指定一個(gè)默認(rèn)值,否則不能添加成功。若不允許為空又不需指定默認(rèn)值,只能先添加一個(gè)允許為空的列,再通過需指定默認(rèn)值,只能先添加一個(gè)允許為空的列,再通過alter columnalter column修修改該列為非空。如:改該列為非空。如:ALTER TA

38、BLE UserTbALTER TABLE UserTbADD UserOcc varchar(6) nullADD UserOcc varchar(6) nullGOGOALTER TABLE UserTbALTER TABLE UserTb ALTER COLUMN UserOcc varchar(6) not null ALTER COLUMN UserOcc varchar(6) not null 即設(shè)置了添加的列即設(shè)置了添加的列“UserOcc”UserOcc”非空。非空。 【例【例6-66-6】在表】在表“UserTb”UserTb”中,添加一個(gè)禁用,用于限制在【例中,添加一個(gè)禁用

39、,用于限制在【例6-46-4】中創(chuàng)】中創(chuàng)建的約束。建的約束。NOCHECK CONSTRAINTNOCHECK CONSTRAINT與與ALTER TABLEALTER TABLE一起使用,以禁用該約束一起使用,以禁用該約束并使正常情況下會(huì)引起約束違規(guī)的插入操作得以執(zhí)行。并使正常情況下會(huì)引起約束違規(guī)的插入操作得以執(zhí)行。CHECKCHECK CONSTRAINT CONSTRAINT重新啟用該約束。重新啟用該約束。 在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。在查詢標(biāo)簽頁中鍵入以下命令,并運(yùn)行即可。ALTER TABLE UserTbALTER TABLE UserTb NOCHECK CONSTR

40、AINT U_check NOCHECK CONSTRAINT U_check6.4 6.4 數(shù)據(jù)表中插入、修改與刪除數(shù)據(jù)數(shù)據(jù)表中插入、修改與刪除數(shù)據(jù) 創(chuàng)建好數(shù)據(jù)表的結(jié)構(gòu)之后,表中并沒有紀(jì)錄。本節(jié)介紹創(chuàng)建好數(shù)據(jù)表的結(jié)構(gòu)之后,表中并沒有紀(jì)錄。本節(jié)介紹在建立好的表中如何插入、修改和刪除數(shù)據(jù)。在建立好的表中如何插入、修改和刪除數(shù)據(jù)。 6.4.1 6.4.1 向數(shù)據(jù)表中插入數(shù)據(jù)向數(shù)據(jù)表中插入數(shù)據(jù)1. 1. 使用使用SQL Server Management StudioSQL Server Management Studio向數(shù)據(jù)表中插入數(shù)據(jù)向數(shù)據(jù)表中插入數(shù)據(jù) 下面首先介紹使用下面首先介紹使用SQL

41、Server Management StudioSQL Server Management Studio向數(shù)據(jù)表中插入數(shù)據(jù)向數(shù)據(jù)表中插入數(shù)據(jù)的方法。的方法。 1) 1) 啟動(dòng)啟動(dòng)SQL Server Management StudioSQL Server Management Studio工具,在工具,在“對(duì)象資源管理器對(duì)象資源管理器”中,中, 依次展開依次展開“數(shù)據(jù)庫數(shù)據(jù)庫”、“表表”選項(xiàng),然后用鼠標(biāo)右鍵單擊要添加數(shù)據(jù)的選項(xiàng),然后用鼠標(biāo)右鍵單擊要添加數(shù)據(jù)的表,表, 在彈出的快捷菜單中的在彈出的快捷菜單中的“編輯前編輯前200200行行”菜單項(xiàng)。如圖菜單項(xiàng)。如圖6-136-13所示。所示。 2

42、) 2) 直接在表數(shù)據(jù)窗口中進(jìn)行數(shù)據(jù)的添加。注意的是,在表中進(jìn)行數(shù)據(jù)的直接在表數(shù)據(jù)窗口中進(jìn)行數(shù)據(jù)的添加。注意的是,在表中進(jìn)行數(shù)據(jù)的 編輯時(shí),一定要遵守定義表結(jié)構(gòu)時(shí)的數(shù)據(jù)類型、是否為空等各種約束,否編輯時(shí),一定要遵守定義表結(jié)構(gòu)時(shí)的數(shù)據(jù)類型、是否為空等各種約束,否 則無法錄入數(shù)據(jù)。輸入結(jié)束后,可以直接關(guān)閉數(shù)據(jù)表,系統(tǒng)會(huì)自動(dòng)保存所則無法錄入數(shù)據(jù)。輸入結(jié)束后,可以直接關(guān)閉數(shù)據(jù)表,系統(tǒng)會(huì)自動(dòng)保存所 有符合要求的數(shù)據(jù)。有符合要求的數(shù)據(jù)。 2. 2. 使用使用Transact-SQLTransact-SQL語言向數(shù)據(jù)表中插入數(shù)據(jù)語言向數(shù)據(jù)表中插入數(shù)據(jù)SQL ServerSQL Server支持多種向數(shù)據(jù)表中

43、插入數(shù)據(jù)的方法,最常用的是使用支持多種向數(shù)據(jù)表中插入數(shù)據(jù)的方法,最常用的是使用INSERTINSERT語句和語句和INSERTINSERTSELECTSELECT語句。語句。(1 1)使用)使用INSERTINSERT語句語句基本語法為:基本語法為: INSERT INSERT INTO table_or_view_name ( column_list) INTO table_or_view_name ( column_list) VALUES expression_listVALUES expression_list其中:其中:table_or_view_nametable_or_view_

44、name:要插入數(shù)據(jù)的表或視圖名字。:要插入數(shù)據(jù)的表或視圖名字。column_listcolumn_list:由逗號(hào)分隔的列名列表,用來指定為其提供數(shù)據(jù)的列。如:由逗號(hào)分隔的列名列表,用來指定為其提供數(shù)據(jù)的列。如果沒有指定,表示向表或視圖中的所有列都輸入數(shù)據(jù)。果沒有指定,表示向表或視圖中的所有列都輸入數(shù)據(jù)。expression_listexpression_list:要插入的數(shù)據(jù)值的列表。值被指定為逗號(hào)分隔的表達(dá):要插入的數(shù)據(jù)值的列表。值被指定為逗號(hào)分隔的表達(dá)式列表,表達(dá)式的個(gè)數(shù)、數(shù)據(jù)類型、精度必須與式列表,表達(dá)式的個(gè)數(shù)、數(shù)據(jù)類型、精度必須與column_listcolumn_list列表對(duì)應(yīng)

45、的列表對(duì)應(yīng)的列一致。列一致。 使用使用INSERTINSERT語句每次只能向數(shù)據(jù)表中輸入一條記錄。語句每次只能向數(shù)據(jù)表中輸入一條記錄。 【例【例6-76-7】向讀者表中添加一行新記錄(】向讀者表中添加一行新記錄(T003T003,劉剛,劉剛,truetrue,研究生,計(jì),研究生,計(jì)算機(jī)系,算機(jī)系,3-1183-118,3456734567,當(dāng)前時(shí)間,當(dāng)前時(shí)間,2 2)。)。INSERT UserTbINSERT UserTb VALUES (T003, VALUES (T003,劉剛劉剛,1,1,研究生研究生,計(jì)算機(jī)系計(jì)算機(jī)系,3-,3- 118,34567,default,2) 118,34

46、567,default,2)如果沒有指定列表,則如果沒有指定列表,則VALUESVALUES子句中指定值得順序必須與表中列的順序子句中指定值得順序必須與表中列的順序一致。一致。 采用默認(rèn)值的記錄字段,在值列表中要用采用默認(rèn)值的記錄字段,在值列表中要用“default”default”表示。表示。 (2 2)使用)使用INSERTSELECTINSERTSELECT語句語句基本語法為:基本語法為: INSERT INTO table_or_view_name ( column_list) INSERT INTO table_or_view_name ( column_list) SELECT (

47、 select_list ) SELECT ( select_list ) FROM table_name FROM table_name WHERE search_conditions WHERE search_conditions INSERT INSERT語句中的語句中的SELECTSELECT子查詢可用于將一個(gè)或多個(gè)其它表的值添加到表中子查詢可用于將一個(gè)或多個(gè)其它表的值添加到表中 并可以一次性插入多行。子查詢的并可以一次性插入多行。子查詢的select_listselect_list必須與必須與INSERTINSERT的的 column_listcolumn_list相匹配。相匹配。

48、【例【例6-86-8】將所有機(jī)械工業(yè)出版社的圖書記錄插入到一個(gè)機(jī)械工業(yè)出版】將所有機(jī)械工業(yè)出版社的圖書記錄插入到一個(gè)機(jī)械工業(yè)出版社表中(假設(shè)機(jī)械工業(yè)出版社表已經(jīng)存在,且結(jié)構(gòu)與社表中(假設(shè)機(jī)械工業(yè)出版社表已經(jīng)存在,且結(jié)構(gòu)與“Book”Book”表相同。表相同。INSERTINSERTINTO INTO 機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社 (BookId, BookName, Publish) (BookId, BookName, Publish) SELECT BookId,BookName,PublishSELECT BookId,BookName,PublishFROM BookFROM Book

49、 WHERE Publish= WHERE Publish=機(jī)械工業(yè)出版社機(jī)械工業(yè)出版社 6.4.2 6.4.2 修改數(shù)據(jù)表中數(shù)據(jù)修改數(shù)據(jù)表中數(shù)據(jù)1. 1. 使用使用SQL Server Management StudioSQL Server Management Studio修改表中的數(shù)據(jù)修改表中的數(shù)據(jù)使用使用SQL Server Management StudioSQL Server Management Studio修改表中的數(shù)據(jù)很方便,方法如下:修改表中的數(shù)據(jù)很方便,方法如下:1) 1) 在在“對(duì)象資源管理器對(duì)象資源管理器”中打開要修改的數(shù)據(jù)表,并用鼠標(biāo)定位在要修改中打開要修改的數(shù)據(jù)表

50、,并用鼠標(biāo)定位在要修改 的數(shù)據(jù)項(xiàng)上。的數(shù)據(jù)項(xiàng)上。2) 2) 將數(shù)據(jù)項(xiàng)內(nèi)容按要求修改后可以直接離開修改的行,系統(tǒng)自動(dòng)保存修將數(shù)據(jù)項(xiàng)內(nèi)容按要求修改后可以直接離開修改的行,系統(tǒng)自動(dòng)保存修 改后符合要求的數(shù)據(jù)。改后符合要求的數(shù)據(jù)。2. 2. 使用使用Transact-SQLTransact-SQL語句修改數(shù)據(jù)項(xiàng)語句修改數(shù)據(jù)項(xiàng)使用使用Transact-SQLTransact-SQL語句修改數(shù)據(jù)項(xiàng)的基本語法如下:語句修改數(shù)據(jù)項(xiàng)的基本語法如下:UPDATE table_nameUPDATE table_nameSET column_name= expression | DEFAULT | NULL SET

51、column_name= expression | DEFAULT | NULL FROM table_nameFROM table_name WHERE search_conditions WHERE search_conditions 其中:其中:SETSET子句包含要更新的列和新值的列,子句包含要更新的列和新值的列,F(xiàn)ROMFROM子句指定為子句指定為SETSET子句中的子句中的 表達(dá)式提供值的表,表達(dá)式提供值的表,WHEREWHERE子句指定條件限定所要更新的行,如果省子句指定條件限定所要更新的行,如果省 略略WHEREWHERE子句,則表示要修改所有的記錄。子句,則表示要修改所有的記

52、錄。【例例6-96-9】將將UserTbUserTb讀者表中,學(xué)號(hào)為讀者表中,學(xué)號(hào)為“s001s001”的學(xué)生類別改為的學(xué)生類別改為“研究生研究生”。由下列語句實(shí)現(xiàn):由下列語句實(shí)現(xiàn):UPDATE UserTbSET CateName=研究生研究生WHERE UserId=S001一條記錄被修改。一條記錄被修改。【例例6-106-10】將所有讀者類別的借書數(shù)量增加一本。將所有讀者類別的借書數(shù)量增加一本。UPDATE UserCateSET BorrNum=BorrNum+1 表中所有記錄均被修改。表中所有記錄均被修改。 6.4.3 刪除數(shù)據(jù)表中數(shù)據(jù)刪除數(shù)據(jù)表中數(shù)據(jù) 當(dāng)數(shù)據(jù)表中的數(shù)據(jù)已經(jīng)過時(shí)或者沒有存在的意義的時(shí)候,可以將表當(dāng)數(shù)據(jù)表中的數(shù)據(jù)已經(jīng)過時(shí)或者沒有存在的意義的時(shí)候,可以將表中數(shù)據(jù)刪除。中數(shù)據(jù)刪除。1. 使用使用SQL Server Management Studio刪除表中的數(shù)據(jù)刪除表中的數(shù)據(jù)使用使用“SQL Server Management StudioSQL Server Management Studio”工具刪除表中的數(shù)據(jù)的方法如下:工具刪除表中的數(shù)據(jù)的方法如下:1) 在在“對(duì)象資源管理器對(duì)象資源管理器”中打開要?jiǎng)h除記錄的數(shù)據(jù)表,并用鼠標(biāo)定位在要中打

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論