




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) n數(shù)據(jù)庫中的所有數(shù)據(jù)都存放在按行與列格式組織數(shù)據(jù)庫中的所有數(shù)據(jù)都存放在按行與列格式組織的表中的表中,數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,決定數(shù)據(jù)存數(shù)據(jù)類型是數(shù)據(jù)的一種屬性,決定數(shù)據(jù)存儲(chǔ)的空間和格式儲(chǔ)的空間和格式.n數(shù)據(jù)類型可以為對(duì)象定義數(shù)據(jù)類型可以為對(duì)象定義4個(gè)屬性:個(gè)屬性:n對(duì)象包含的數(shù)據(jù)種類。對(duì)象包含的數(shù)據(jù)種類。n所存儲(chǔ)值占有的空間(字節(jié)數(shù))和數(shù)值范圍。所存儲(chǔ)值占有的空間(字節(jié)數(shù))和數(shù)值范圍。n數(shù)值的精度
2、(僅適用于數(shù)值類型)。數(shù)值的精度(僅適用于數(shù)值類型)。n數(shù)值的小數(shù)位數(shù)(僅適用于數(shù)值類型)。數(shù)值的小數(shù)位數(shù)(僅適用于數(shù)值類型)。nSQL server 2005提供的數(shù)據(jù)類型可以歸納為:數(shù)提供的數(shù)據(jù)類型可以歸納為:數(shù)值類型、字符類型、日期時(shí)間類型、貨幣類型和值類型、字符類型、日期時(shí)間類型、貨幣類型和其他數(shù)據(jù)類型。其他數(shù)據(jù)類型。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.1 數(shù)值類型數(shù)值類型 1. 精確數(shù)值類型精確數(shù)值類型精確數(shù)值類型用來存儲(chǔ)沒有小數(shù)位的整精確數(shù)值類型用來存儲(chǔ)沒有小數(shù)位的整數(shù)或定點(diǎn)小數(shù)。使用任何算術(shù)運(yùn)算符數(shù)或定點(diǎn)小數(shù)。使用任何算術(shù)運(yùn)算符都可以操作這些
3、數(shù)據(jù)類型中存儲(chǔ)的數(shù)都可以操作這些數(shù)據(jù)類型中存儲(chǔ)的數(shù)值,而不需要任何特殊處理。下表列值,而不需要任何特殊處理。下表列出了出了SQL Server支持的精確數(shù)值類型。支持的精確數(shù)值類型。類別類別數(shù)據(jù)類型數(shù)據(jù)類型字 節(jié)字 節(jié)數(shù)數(shù)取值范圍取值范圍Integerbigint8- -2E632E63- -1int4- -2E312E31- -1smallint2- -32 76832 767tinyint10255Exact numricdecimal(p,s) 517- -10E38+110E38- -1numeric(p,s)517- -10E38+110E38- -1清華大學(xué)出版社. SQL Ser
4、ver 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.1 數(shù)值類型數(shù)值類型 2. 近似數(shù)值類型近似數(shù)值類型n 近似數(shù)字?jǐn)?shù)據(jù)類型可以存儲(chǔ)十進(jìn)制值,用于表示近似數(shù)字?jǐn)?shù)據(jù)類型可以存儲(chǔ)十進(jìn)制值,用于表示浮點(diǎn)數(shù)據(jù)。此類型的數(shù)據(jù)不一定有精確的表示,浮點(diǎn)數(shù)據(jù)。此類型的數(shù)據(jù)不一定有精確的表示,可具體分為可具體分為float和和real兩種。兩種。n SQL Server 2005存儲(chǔ)數(shù)據(jù)時(shí)對(duì)小數(shù)點(diǎn)右邊的數(shù)進(jìn)行四舍五存儲(chǔ)數(shù)據(jù)時(shí)對(duì)小數(shù)點(diǎn)右邊的數(shù)進(jìn)行四舍五入。只有在精確數(shù)據(jù)類型不夠大,不能存儲(chǔ)數(shù)值時(shí),才考入。只有在精確數(shù)據(jù)類型不夠大,不能存儲(chǔ)數(shù)值時(shí),才考慮使用慮使用float。下表列出了。下表列出了SQL Server支持的近
5、似數(shù)字?jǐn)?shù)據(jù)支持的近似數(shù)字?jǐn)?shù)據(jù)類型類型 數(shù)據(jù)類型數(shù)據(jù)類型字節(jié)數(shù)字節(jié)數(shù)取值范圍取值范圍float(p)4/8- -2.23E3082.23E308real4- -3.4E383.4E38清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 字符類型字符類型 n字符類型是用于存儲(chǔ)字符型數(shù)據(jù)的。該數(shù)據(jù)類型可以使字符類型是用于存儲(chǔ)字符型數(shù)據(jù)的。該數(shù)據(jù)類型可以使用用ASC編碼或編碼或Unicode編碼。編碼。nASC編碼要求用編碼要求用8個(gè)二進(jìn)制位來表示字母的范圍。個(gè)二進(jìn)制位來表示字母的范圍。nUnicode標(biāo)準(zhǔn)使用標(biāo)準(zhǔn)使用2個(gè)字節(jié)來表示每個(gè)字符。在個(gè)字節(jié)來表示每個(gè)字符。在 Uni
6、code標(biāo)準(zhǔn)中,包括了以各種字符集定義的全部字標(biāo)準(zhǔn)中,包括了以各種字符集定義的全部字符。符。n在在SQL server 2005中,中,Unicode數(shù)據(jù)以數(shù)據(jù)以 nchar、nvarchar 和和 ntext 數(shù)據(jù)類型存儲(chǔ)。定義一個(gè)字符數(shù)據(jù)類型時(shí),指數(shù)據(jù)類型存儲(chǔ)。定義一個(gè)字符數(shù)據(jù)類型時(shí),指定該列允許存儲(chǔ)的最大字節(jié)數(shù)。定該列允許存儲(chǔ)的最大字節(jié)數(shù)。n下表列出了下表列出了SQL Server支持的字符數(shù)據(jù)類型。支持的字符數(shù)據(jù)類型。 數(shù)據(jù)類型字節(jié)數(shù)字符數(shù)char(n)18 000最多8 000個(gè)字符varchar(n)18 000最多8 000個(gè)字符varchar(max)最大2 G最多1 073
7、741 824個(gè)字符text最大2 G最多1 073 741 824個(gè)字符nchar(n)28 000最多4 000個(gè)字符nvarchar(n)28 000最多4 000個(gè)字符nvarchar(max)最大2 G最多536 870 912個(gè)字符ntext最大2 G最多536 870 912個(gè)字符清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.3 日期時(shí)間類型日期時(shí)間類型 n日期時(shí)間類型數(shù)據(jù),可具體分為日期時(shí)間類型數(shù)據(jù),可具體分為datetime與與smalldatetime兩種類型。兩種類型。datetime和和smalldatetime數(shù)據(jù)類型在計(jì)算機(jī)內(nèi)部是作為整數(shù)
8、存儲(chǔ)的。數(shù)據(jù)類型在計(jì)算機(jī)內(nèi)部是作為整數(shù)存儲(chǔ)的。ndatetime類型存儲(chǔ)為一對(duì)類型存儲(chǔ)為一對(duì)4字節(jié)整數(shù),它們一起表字節(jié)整數(shù),它們一起表示自示自1753年年1月月1日午夜日午夜12點(diǎn)鐘經(jīng)過的毫秒數(shù)。點(diǎn)鐘經(jīng)過的毫秒數(shù)。nsmalldatetime類型存儲(chǔ)為一對(duì)類型存儲(chǔ)為一對(duì)2字節(jié)整數(shù),它們一字節(jié)整數(shù),它們一起表示自起表示自1900年年1月月1日午夜日午夜12點(diǎn)鐘經(jīng)過的分鐘數(shù)。點(diǎn)鐘經(jīng)過的分鐘數(shù)。n下表列出了下表列出了SQL Server2005支持的日期和時(shí)間數(shù)據(jù)支持的日期和時(shí)間數(shù)據(jù)類型。類型。日期類型日期類型字節(jié)數(shù)字節(jié)數(shù)取值范圍取值范圍datetime8從從1753-1-1到到9999-12-31
9、,精度為,精度為3.33毫秒毫秒smalldatetime 4從從1900-1-1到到2079-12-31,精度為,精度為1分鐘分鐘清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.4貨幣類型貨幣類型 n貨幣數(shù)據(jù)類型旨在存儲(chǔ)精確到貨幣數(shù)據(jù)類型旨在存儲(chǔ)精確到4個(gè)小數(shù)位個(gè)小數(shù)位的貨幣值。下表列出了的貨幣值。下表列出了SQL Server支持的支持的貨幣數(shù)據(jù)類型。貨幣數(shù)據(jù)類型。數(shù)據(jù)類型數(shù)據(jù)類型 字節(jié)數(shù)字節(jié)數(shù) 取值范圍取值范圍money8 - -922 337 203 685 477.5808922 337 203 685 477.5807smallmoney4 - -214
10、748.3648214 748.3647清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.5 其他數(shù)據(jù)類型其他數(shù)據(jù)類型 1. 二進(jìn)制數(shù)據(jù)類型二進(jìn)制數(shù)據(jù)類型 SQL Server 2005提供了提供了3種二進(jìn)制數(shù)據(jù)類型,種二進(jìn)制數(shù)據(jù)類型,允許在一個(gè)表中存儲(chǔ)各種數(shù)量的二進(jìn)制數(shù)允許在一個(gè)表中存儲(chǔ)各種數(shù)量的二進(jìn)制數(shù)據(jù)。下表列出了據(jù)。下表列出了SQL Server支持二進(jìn)制數(shù)支持二進(jìn)制數(shù)據(jù)類型。據(jù)類型。數(shù)據(jù)類型字節(jié)數(shù)binary(n)18 000 varbinary(n)18 000 varbinary(max)最多2 Gimage最多2 G清華大學(xué)出版社. SQL Server
11、 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.5 其他數(shù)據(jù)類型其他數(shù)據(jù)類型 2. 特殊數(shù)據(jù)類型特殊數(shù)據(jù)類型 nSQL Server 2005還提供了還提供了7種特殊數(shù)據(jù)類型,包括種特殊數(shù)據(jù)類型,包括cursor、sql_variant、timestamp、table、uniqueidentifier與與xml。ntimestamp 用于表示用于表示SQL server 活動(dòng)的先后順序,以二活動(dòng)的先后順序,以二進(jìn)投影的格式表示。進(jìn)投影的格式表示。timestamp 數(shù)據(jù)與插入數(shù)據(jù)或者日數(shù)據(jù)與插入數(shù)據(jù)或者日期和時(shí)間沒有關(guān)系。期和時(shí)間沒有關(guān)系。nbit 由由 1 或者或者 0 組成,當(dāng)表示真或者假、組成,當(dāng)表
12、示真或者假、on 或者或者 off 時(shí),時(shí),使用使用 bit 數(shù)據(jù)類型。數(shù)據(jù)類型。nuniqueidentifier 由由 16 字節(jié)的十六進(jìn)制數(shù)字組成,表示字節(jié)的十六進(jìn)制數(shù)字組成,表示一個(gè)全局唯一的。一個(gè)全局唯一的。n當(dāng)表的記錄行要求唯一時(shí),當(dāng)表的記錄行要求唯一時(shí),GUID是非常有用。是非常有用。 具體作用參看表具體作用參看表3.7清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.5 其他數(shù)據(jù)類型其他數(shù)據(jù)類型 3. 自定義數(shù)據(jù)類型自定義數(shù)據(jù)類型 nSQL Server 2005允許用戶根據(jù)自己的需要自定義允許用戶根據(jù)自己的需要自定義數(shù)據(jù)類型(數(shù)據(jù)類型(UDT),并可以
13、用此數(shù)據(jù)類型來聲明),并可以用此數(shù)據(jù)類型來聲明變量或列。變量或列。n自定義類型提供了一種可以將更能清楚地說明對(duì)自定義類型提供了一種可以將更能清楚地說明對(duì)象中值的類型的名稱應(yīng)用于數(shù)據(jù)類型的機(jī)制,這象中值的類型的名稱應(yīng)用于數(shù)據(jù)類型的機(jī)制,這使程序員或數(shù)據(jù)庫管理員能夠更容易地理解用該使程序員或數(shù)據(jù)庫管理員能夠更容易地理解用該數(shù)據(jù)類型定義的對(duì)象的用途。數(shù)據(jù)類型定義的對(duì)象的用途。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.1表的類型表的類型 1. 按照表的用途分類按照表的用途分類(1)系統(tǒng)表:用于維護(hù))系統(tǒng)表:用于維護(hù)SQL Server 2005服務(wù)器和數(shù)據(jù)庫正服務(wù)器和數(shù)
14、據(jù)庫正常工作的只讀數(shù)據(jù)表。系統(tǒng)表存在于各個(gè)數(shù)據(jù)庫中,由常工作的只讀數(shù)據(jù)表。系統(tǒng)表存在于各個(gè)數(shù)據(jù)庫中,由DBMS系統(tǒng)自動(dòng)維護(hù)。系統(tǒng)自動(dòng)維護(hù)。(2)用戶表:由用戶自己創(chuàng)建的、用于各種數(shù)據(jù)庫應(yīng)用系統(tǒng))用戶表:由用戶自己創(chuàng)建的、用于各種數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)的表。開發(fā)的表。(3)已分區(qū)表:已分區(qū)表是將數(shù)據(jù)水平劃分為多個(gè)單元的表,)已分區(qū)表:已分區(qū)表是將數(shù)據(jù)水平劃分為多個(gè)單元的表,這些單元可以分布到數(shù)據(jù)庫中的多個(gè)文件組中。在維護(hù)整這些單元可以分布到數(shù)據(jù)庫中的多個(gè)文件組中。在維護(hù)整個(gè)集合的完整性時(shí),使用分區(qū)可以快速而有效地訪問或管個(gè)集合的完整性時(shí),使用分區(qū)可以快速而有效地訪問或管理數(shù)據(jù)子集,從而使大型表或索引
15、更易于管理。理數(shù)據(jù)子集,從而使大型表或索引更易于管理。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.1表的類型表的類型 2. 按照表的存儲(chǔ)時(shí)間分類按照表的存儲(chǔ)時(shí)間分類(1)永久表:包括)永久表:包括SQL Server 2005的系統(tǒng)表和用戶數(shù)據(jù)庫的系統(tǒng)表和用戶數(shù)據(jù)庫中創(chuàng)建的數(shù)據(jù)表,該類表除非人工刪除,否則一直存儲(chǔ)在中創(chuàng)建的數(shù)據(jù)表,該類表除非人工刪除,否則一直存儲(chǔ)在介質(zhì)中。介質(zhì)中。(2)臨時(shí)表:臨時(shí)表是臨時(shí)使用的表結(jié)構(gòu)。臨時(shí)表分為全局)臨時(shí)表:臨時(shí)表是臨時(shí)使用的表結(jié)構(gòu)。臨時(shí)表分為全局的臨時(shí)表和局部臨時(shí)表,并且可以由任何用戶創(chuàng)建。所有的臨時(shí)表和局部臨時(shí)表,并且可以由任
16、何用戶創(chuàng)建。所有的臨時(shí)表都是在的臨時(shí)表都是在tempdb數(shù)據(jù)庫中創(chuàng)建的。數(shù)據(jù)庫中創(chuàng)建的。n如果服務(wù)器關(guān)閉,則所有臨時(shí)表會(huì)被清空、關(guān)閉。如果服務(wù)器關(guān)閉,則所有臨時(shí)表會(huì)被清空、關(guān)閉。n通過使用通過使用CREATE TABLE命令并在表名前添加一個(gè)字命令并在表名前添加一個(gè)字符符(#),可以創(chuàng)建局部臨時(shí)表。,可以創(chuàng)建局部臨時(shí)表。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 1.在在SQL Server Management Studio中創(chuàng)建數(shù)中創(chuàng)建數(shù)據(jù)表據(jù)表 首先以創(chuàng)建如表所示的學(xué)生信息表首先以創(chuàng)建如表所示的學(xué)生信息表student表表結(jié)構(gòu)為例,說明
17、如何為數(shù)據(jù)庫結(jié)構(gòu)為例,說明如何為數(shù)據(jù)庫teaching創(chuàng)建創(chuàng)建表,具體步驟如下。表,具體步驟如下。列序號(hào)列名類型取值說明1studentnonchar(10)主鍵2snamenchar(8)否3sexnchar(1)否4birthdaydatetime否5classnonchar(6)否6pointsmallint否7phonenchar(12)否8Emailnchar(20)否清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 1.在在SQL Server Management Studio中創(chuàng)建數(shù)中創(chuàng)建數(shù)據(jù)表據(jù)表 (1)啟動(dòng))啟動(dòng)SQL Serv
18、er Management Studio,在,在“對(duì)對(duì)象資源管理器象資源管理器”中,展開要新建表的數(shù)據(jù)庫中,展開要新建表的數(shù)據(jù)庫teaching。(2)右擊)右擊“表表”項(xiàng),在快捷菜單里選擇項(xiàng),在快捷菜單里選擇“新建表新建表”項(xiàng),項(xiàng),(3)在彈出的如圖所示的)在彈出的如圖所示的“表設(shè)計(jì)器表設(shè)計(jì)器”窗口中,依窗口中,依次輸入列名、數(shù)據(jù)類型及允許空否等選項(xiàng)。次輸入列名、數(shù)據(jù)類型及允許空否等選項(xiàng)。列名列名數(shù)據(jù)類型與列長(zhǎng)度數(shù)據(jù)類型與列長(zhǎng)度允許空允許空 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 1.在在SQL Server Management St
19、udio中創(chuàng)建中創(chuàng)建數(shù)據(jù)表數(shù)據(jù)表 (4)依次類推,設(shè)置其他列的名稱、數(shù)據(jù)類型、列長(zhǎng)度和)依次類推,設(shè)置其他列的名稱、數(shù)據(jù)類型、列長(zhǎng)度和允許空等選項(xiàng),并單擊允許空等選項(xiàng),并單擊“保存保存”按鈕。按鈕。(5)右擊)右擊studentno列,在彈出的快捷菜單中選擇列,在彈出的快捷菜單中選擇“設(shè)置主設(shè)置主鍵鍵”命令,或者使用命令,或者使用“設(shè)置主鍵設(shè)置主鍵”按鈕來設(shè)置主鍵,如按鈕來設(shè)置主鍵,如圖所示,設(shè)置主鍵為圖所示,設(shè)置主鍵為studentno。(6)設(shè)置完畢后,單擊)設(shè)置完畢后,單擊“保存保存”按鈕。在彈出的對(duì)話框中按鈕。在彈出的對(duì)話框中輸入表名輸入表名student后,單擊后,單擊“確定確定”按
20、鈕,即完成了創(chuàng)建按鈕,即完成了創(chuàng)建表的操作。表的操作。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 2.利用利用Transact-SQL語句創(chuàng)建數(shù)據(jù)表語句創(chuàng)建數(shù)據(jù)表 CREATE TABLE的語法格式如下:的語法格式如下:CREATE TABLE database_name. schema_name.|schema_name. table_name ( | computed_column_definition ,.n ) ON partition_scheme_name( partition_column_name ) | filegroup
21、| default TEXTIMAGE_ON filegroup |default ;清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 例例3.1 利用利用CREATE TABLE命令建立課程信息表命令建立課程信息表course,表結(jié)構(gòu)如表所示。,表結(jié)構(gòu)如表所示。列序號(hào)列名類型取值說明1coursenonchar(6)主鍵2cnamenchar(20)否3typenchar(8)否4period tinyint否5creditnumeric(4,1) 否清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建
22、例例3.1 利用利用CREATE TABLE命令建立課程信息表命令建立課程信息表course,表結(jié)構(gòu)如表所示。,表結(jié)構(gòu)如表所示。利用利用CREATE TABLE語句在數(shù)據(jù)庫語句在數(shù)據(jù)庫teaching建立課建立課程信息表程信息表course的程序代碼如下:的程序代碼如下:CREATE TABLE teaching.dbo.course(courseno nchar(6) NOT NULL,cname nchar(20) NULL,type nchar(8) NULL,period tinyint NULL,credit numeric(4, 1) NULL, CONSTRAINT PK_cou
23、rse PRIMARY KEY CLUSTERED (Courseno ASC ) ON PRIMARY其中:其中:nPK_course 表示創(chuàng)建主鍵時(shí)的索引名稱,可以是任意標(biāo)識(shí)符。表示創(chuàng)建主鍵時(shí)的索引名稱,可以是任意標(biāo)識(shí)符。nCLUSTERED項(xiàng)表示聚集索引類型。項(xiàng)表示聚集索引類型。nASC表示按表示按courseno值升序方式排列數(shù)據(jù),若是值升序方式排列數(shù)據(jù),若是DESC則表示則表示降序。降序。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 例例3.2利用利用CREATE TABLE命令建立學(xué)生分?jǐn)?shù)表命令建立學(xué)生分?jǐn)?shù)表score,表結(jié)構(gòu)如表所
24、示。該表中主鍵由兩個(gè)列構(gòu),表結(jié)構(gòu)如表所示。該表中主鍵由兩個(gè)列構(gòu)成。成。 列序號(hào)列名類型取值說明1studentnonchar(10)主鍵2coursenonchar(6)3usuallynumeric(6,2)否4finalnumeric(6,2)否程序代碼如下:程序代碼如下:CREATE TABLE dbo.score(studentno nchar(10) NOT NULL,courseno nchar(6) NOT NULL,usually numeric(6, 2) NULL,final numeric(6, 2) NULL, CONSTRAINT PK_score PRIMARY K
25、EY CLUSTERED (studentno ASC,courseno ASC ) ) 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 例例3.3 利用利用CREATE TABLE命令建立教師信息表命令建立教師信息表teacher,表結(jié)構(gòu)如表所示。,表結(jié)構(gòu)如表所示。 列序號(hào)列名類型取值說明1teachernonchar(6)主鍵2tnamenchar(8)否3majornchar(10)否4profnchar(10)是5departmentnchar(12)否建立教師信息表teacher的程序代碼如下:CREATE TABLE dbo.teac
26、her(teacherno nchar(6) NOT NULL,tname nchar(8) NULL,major nchar(10) NULL,prof nchar(10) NOT NULL,department nchar(12) NULL, CONSTRAINT PK_teacher PRIMARY KEY CLUSTERED (teacherno ASC ) 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 3創(chuàng)建數(shù)據(jù)表的腳本代碼創(chuàng)建數(shù)據(jù)表的腳本代碼利用利用CREATE TABLE命令創(chuàng)建表,和利用可視化命令創(chuàng)建表,和利用可視化方式創(chuàng)建表,
27、實(shí)現(xiàn)的功能基本是一樣的。只要表方式創(chuàng)建表,實(shí)現(xiàn)的功能基本是一樣的。只要表結(jié)構(gòu)創(chuàng)建完成,就可以查看表的腳本代碼。結(jié)構(gòu)創(chuàng)建完成,就可以查看表的腳本代碼。例例3.4 利用利用CREATE TABLE命令建立班級(jí)信息表命令建立班級(jí)信息表class,表結(jié)構(gòu)如表所示。,表結(jié)構(gòu)如表所示。列序號(hào)列名類型取值說明1classnonchar(6)主鍵2classnamenchar(12)否3departmentnchar(12)否清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 n在在SQL Server Management Studio中右擊中右擊“資源管理器資源
28、管理器”|“數(shù)據(jù)庫數(shù)據(jù)庫”|teaching|class表表。n在彈出的菜單中,選擇在彈出的菜單中,選擇“編寫表腳本為編寫表腳本為(S)”|“CREATE到(到(C)”|“新查詢編新查詢編輯器窗口輯器窗口”在在“查詢編輯器窗口查詢編輯器窗口”可以顯可以顯示如下代碼。示如下代碼。SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE dbo. class(classno nchar(6) COLLATE Chinese_PRC_CI_AS NOT NULL,classname nchar(12) COLLATE Chinese_PRC_
29、CI_AS NULL,department nchar(12) COLLATE Chinese_PRC_CI_AS NULL,monitor nchar(8) COLLATE Chinese_PRC_CI_AS NULL, CONSTRAINT PK_class PRIMARY KEY CLUSTERED (classno ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2 表的創(chuàng)建表的創(chuàng)建 例例3.5 為了完善為了完善teaching數(shù)據(jù)庫的表間聯(lián)系,創(chuàng)建表數(shù)
30、據(jù)庫的表間聯(lián)系,創(chuàng)建表結(jié)構(gòu)如表所示的紐帶表結(jié)構(gòu)如表所示的紐帶表teach_class。然后查看該表。然后查看該表的有關(guān)的有關(guān)CREATE TABLE命令腳本信息。命令腳本信息。(代碼從略)(代碼從略)列序號(hào)列名類型取值說明1teachernonchar(6)主鍵2classnonchar(6)3coursenonchar(6)清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2表的創(chuàng)建表的創(chuàng)建 4為數(shù)據(jù)表輸入數(shù)據(jù)為數(shù)據(jù)表輸入數(shù)據(jù)為數(shù)據(jù)表輸入數(shù)據(jù)的方式有多種,常見的有通過命為數(shù)據(jù)表輸入數(shù)據(jù)的方式有多種,常見的有通過命令方式添加行數(shù)據(jù)的,也可以通過程序?qū)崿F(xiàn)表數(shù)令方式添加行數(shù)
31、據(jù)的,也可以通過程序?qū)崿F(xiàn)表數(shù)據(jù)的添加。為據(jù)的添加。為student表輸入數(shù)據(jù)的步驟如下:表輸入數(shù)據(jù)的步驟如下:(1)啟動(dòng))啟動(dòng)SQL Server Management Studio中窗口,中窗口,展開展開“資源管理器資源管理器”|“數(shù)據(jù)庫數(shù)據(jù)庫”|teaching數(shù)據(jù)庫,數(shù)據(jù)庫,右擊右擊student表,在彈出的菜單中,單擊表,在彈出的菜單中,單擊“打開表打開表”命令。命令。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.2表的創(chuàng)建表的創(chuàng)建 4為數(shù)據(jù)表輸入數(shù)據(jù)為數(shù)據(jù)表輸入數(shù)據(jù)(2)進(jìn)入的數(shù)據(jù)輸入界面,依次按照表結(jié)構(gòu)的要求)進(jìn)入的數(shù)據(jù)輸入界面,依次按照表結(jié)構(gòu)的要求為每
32、一列輸入數(shù)據(jù)。每輸入完一行,系統(tǒng)會(huì)自動(dòng)為每一列輸入數(shù)據(jù)。每輸入完一行,系統(tǒng)會(huì)自動(dòng)進(jìn)入下一行的輸狀態(tài)。在輸入過程中,要針對(duì)不進(jìn)入下一行的輸狀態(tài)。在輸入過程中,要針對(duì)不同的數(shù)據(jù)類型輸入合法的數(shù)據(jù)。如果輸入不合規(guī)同的數(shù)據(jù)類型輸入合法的數(shù)據(jù)。如果輸入不合規(guī)則的數(shù)據(jù),系統(tǒng)不接受。需要重新輸入該行數(shù)據(jù)。則的數(shù)據(jù),系統(tǒng)不接受。需要重新輸入該行數(shù)據(jù)。(3)輸入數(shù)據(jù)完畢,單擊)輸入數(shù)據(jù)完畢,單擊“保存保存”按鈕,即可完成按鈕,即可完成數(shù)據(jù)的輸入過程。數(shù)據(jù)的輸入過程。(4)如果需要添加數(shù)據(jù),重復(fù)上述過程即可。)如果需要添加數(shù)據(jù),重復(fù)上述過程即可。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3
33、.2.3 數(shù)據(jù)瀏覽數(shù)據(jù)瀏覽1. 在查詢窗口中瀏覽表數(shù)據(jù)在查詢窗口中瀏覽表數(shù)據(jù)在查詢窗口中瀏覽表數(shù)據(jù)的步驟如下:在查詢窗口中瀏覽表數(shù)據(jù)的步驟如下:(1)啟動(dòng))啟動(dòng)SQL Server Management Studio中窗口,中窗口,展開展開“資源管理器資源管理器”|“數(shù)據(jù)庫數(shù)據(jù)庫”|teaching數(shù)據(jù)庫,數(shù)據(jù)庫,右擊右擊teacher表,在彈出的菜單中,單擊表,在彈出的菜單中,單擊“打開表打開表”命令。命令。(2)在如圖所示的瀏覽數(shù)據(jù)窗口,可以發(fā)現(xiàn)該窗口)在如圖所示的瀏覽數(shù)據(jù)窗口,可以發(fā)現(xiàn)該窗口與數(shù)據(jù)輸入的窗口是一樣的。與數(shù)據(jù)輸入的窗口是一樣的。清華大學(xué)出版社. SQL Server 200
34、5數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.3 數(shù)據(jù)瀏覽數(shù)據(jù)瀏覽2. 利用利用Transact-SQL語句在查詢窗口中瀏覽表數(shù)據(jù)語句在查詢窗口中瀏覽表數(shù)據(jù)(1)啟動(dòng))啟動(dòng)SQL Server Management Studio中窗口,單擊中窗口,單擊“新新建查詢建查詢”按鈕。按鈕。(2)然后在)然后在“查詢?cè)O(shè)計(jì)器查詢?cè)O(shè)計(jì)器”窗口中輸入一條查詢語句如下:窗口中輸入一條查詢語句如下:use teachinggoselect * from course(3)單擊)單擊“執(zhí)行執(zhí)行”按鈕,可發(fā)現(xiàn)按鈕,可發(fā)現(xiàn)course表的相關(guān)數(shù)據(jù)顯示出表的相關(guān)數(shù)據(jù)顯示出來來 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與
35、開發(fā) 3.2.4表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改1在在SQL Server Management Studio中修改表結(jié)構(gòu)中修改表結(jié)構(gòu)步驟如下:步驟如下:(1)啟動(dòng))啟動(dòng)SQL Server Management Studio后,在對(duì)后,在對(duì)象資源管理器中展開其中的樹形目錄,找到要修象資源管理器中展開其中的樹形目錄,找到要修改結(jié)構(gòu)的數(shù)據(jù)表。改結(jié)構(gòu)的數(shù)據(jù)表。(2)若要修改數(shù)據(jù)表名,可右擊數(shù)據(jù)表,在彈出的)若要修改數(shù)據(jù)表名,可右擊數(shù)據(jù)表,在彈出的快捷菜單中選擇快捷菜單中選擇“重命名重命名”命令。命令。(3)若要對(duì)表中的列進(jìn)行插入、刪除等操作,如圖)若要對(duì)表中的列進(jìn)行插入、刪除等操作,如圖所示所示清華大學(xué)出
36、版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.4表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改1在在SQL Server Management Studio中修改表結(jié)構(gòu)中修改表結(jié)構(gòu)(4)若要修改列數(shù)據(jù)類型,)若要修改列數(shù)據(jù)類型,“表設(shè)計(jì)器表設(shè)計(jì)器”窗口中,窗口中,直接單擊要修改在直接單擊要修改在“數(shù)據(jù)類型數(shù)據(jù)類型”項(xiàng)處修改。同樣,項(xiàng)處修改。同樣,可修改數(shù)據(jù)表的索引、約束??尚薷臄?shù)據(jù)表的索引、約束。(5)若要修改數(shù)據(jù)表屬性,在)若要修改數(shù)據(jù)表屬性,在“表設(shè)計(jì)器表設(shè)計(jì)器”窗口中,窗口中,單擊單擊“屬性屬性”按鈕,在打開的對(duì)話框中進(jìn)行修改。按鈕,在打開的對(duì)話框中進(jìn)行修改。清華大學(xué)出版社. SQL Ser
37、ver 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.4表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改2. 利用利用Transact-SQL語句修改表結(jié)構(gòu)語句修改表結(jié)構(gòu)n利用利用Transact-SQL語句語句ALTER TABLE的命的命令,可以更改、添加或刪除列和約束,從而令,可以更改、添加或刪除列和約束,從而修改表的定義。修改表的定義。nALTER TABLE的語法格式如下:的語法格式如下:ALTER TABLE database_name.schema_name. |schema_name.table_name ALTER COLUMN column_name type_schema_name. type_name (
38、precision,scale | max|xml_schema_collection) COLLATE collation_name NULL|NOT NULL |ADD|DROPROWGUIDCOL|PERSISTED |WITHCHECK|NOCHECKADD | | ,.n |DROP CONSTRAINT constraint_name WITH( ,.n) |COLUMN column_name ,.n ;清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.4表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改例例3.6 在在test01數(shù)據(jù)庫中創(chuàng)建一個(gè)新表數(shù)據(jù)庫中創(chuàng)建一個(gè)新表stude
39、nt1,然后,然后修改其列屬性。修改其列屬性。程序代碼如下:程序代碼如下:CREATE TABLE student1 (column_grade int) -創(chuàng)創(chuàng)建新表建新表GOEXEC sp_help student1 -查看表的信息查看表的信息GOALTER TABLE student1 ADD column_class VARCHAR(20) NULL -添加列添加列GOEXEC sp_help student1GOALTER TABLE student1 DROP COLUMN column_grade -刪除列刪除列GOEXEC sp_help student1GO清華大學(xué)出版社.
40、SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.4表結(jié)構(gòu)的修改表結(jié)構(gòu)的修改例例3.7 修改修改test01中表中表student1的列的列column_class數(shù)據(jù)數(shù)據(jù)類型和名稱。類型和名稱。程序代碼如下:程序代碼如下:Use test01GOALTER TABLE student1 ALTER COLUMN column_class char(20) NOT NULL GOEXEC sp_rename student1.column_class,st_class GO清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.5 表數(shù)據(jù)的修改表數(shù)據(jù)的修改1. 利用利用
41、INSERT語句輸入數(shù)據(jù)語句輸入數(shù)據(jù)INSERT 語句的語法格式如下:語句的語法格式如下:INSERT TOP (expression)PERCENT INTO |rowset_function_limited WITH ( .n ) (column_list) VALUES (DEFAULT|NULL|expression,.n ) |derived_table|execute_statement |DEFAULT VALUES ; 例3.8 向teaching數(shù)據(jù)庫中的score表中添加數(shù)據(jù)。程序代碼如下:INSERT INTO score (usually,courseno,final,
42、studentno)VALUES (79, c05109,91,0937221508 )INSERT INTO scoreVALUES(0824113307,c05127,93,78) 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.5 表數(shù)據(jù)的修改表數(shù)據(jù)的修改2. 利用利用UPDATE語句更新表數(shù)據(jù)語句更新表數(shù)據(jù)UPDATE 語句的基本語法格式如下:語句的基本語法格式如下:UPDATE TOP(expression) PERCENT |rowset_function_limited WITH( .n) SET column_name = expression | D
43、EFAULT | NULL ,.n FROM ,.n WHERE ; 例3.9更改teaching數(shù)據(jù)庫中的score表中的學(xué)號(hào)為0824113307、課程號(hào)為c05127的期末成績(jī)修改為87。程序代碼如下:UPDATE score SET final =87WHERE studentno=0824113307 AND courseno=c05127例例3.10 為數(shù)據(jù)庫為數(shù)據(jù)庫test01中表中表student1輸入輸入3行數(shù)行數(shù)據(jù),然后將列據(jù),然后將列st_class的值全部改為的值全部改為jsj1012。程序代碼如下:程序代碼如下:INSERT INTO student1 VALUES(
44、jixie0809)INSERT INTO student1 VALUES(huag0902)INSERT INTO student1 VALUES(txun0912)GO UPDATE student1SET st_class= jsj1012 GO 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.5 表數(shù)據(jù)的修改表數(shù)據(jù)的修改3. 利用利用DELETE語句刪除表中數(shù)據(jù)語句刪除表中數(shù)據(jù)DELETE 語句的基本語法格式如下:語句的基本語法格式如下:DELETE TOP(expression)PERCENT FROM |rowset_function_limited WI
45、TH ( .n) FROM ,.n WHERE ; 例3.11刪除數(shù)據(jù)庫test01中表student1的列st_class的值為jsj1012的行。程序代碼如下:DELETE FROM student1 WHERE st_class=jsj1012清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.5 表數(shù)據(jù)的修改表數(shù)據(jù)的修改4利用利用Truncate Table語句刪除表中數(shù)據(jù)語句刪除表中數(shù)據(jù)nTransact-SQL語言也支持利用語言也支持利用Truncate Table語句語句刪除表中數(shù)據(jù)。刪除表中數(shù)據(jù)。nTruncate Table語句從一個(gè)表中刪除所有行的速度
46、語句從一個(gè)表中刪除所有行的速度要快于要快于DELETE。Truncate Table語句的格式為:語句的格式為:Truncate Table table_name n若要?jiǎng)h除表中的所有行,則若要?jiǎng)h除表中的所有行,則Truncate Table語句是語句是一種快速、無日志記錄的方法。一種快速、無日志記錄的方法。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.6 刪除表刪除表 1. 在在SQL Server Management Studio中刪除數(shù)中刪除數(shù)據(jù)表據(jù)表在對(duì)象資源管理器中,展開樹形目錄,選取要在對(duì)象資源管理器中,展開樹形目錄,選取要?jiǎng)h除的數(shù)據(jù)表。右擊該表名,在
47、彈出的快捷刪除的數(shù)據(jù)表。右擊該表名,在彈出的快捷菜單中選擇菜單中選擇“刪除刪除”命令。在彈出的命令。在彈出的“刪除刪除對(duì)象對(duì)象”對(duì)話框中,會(huì)出現(xiàn)要?jiǎng)h除的表,可單對(duì)話框中,會(huì)出現(xiàn)要?jiǎng)h除的表,可單擊擊“確定確定”按鈕。按鈕。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.2.6 刪除表刪除表 2. 利用利用Transact-SQL語句刪除數(shù)據(jù)表語句刪除數(shù)據(jù)表利用利用Transact-SQL語句語句DROP TABLE就可刪除數(shù)據(jù)就可刪除數(shù)據(jù)表定義及表的所有數(shù)據(jù)、索引、觸發(fā)器、約束和指表定義及表的所有數(shù)據(jù)、索引、觸發(fā)器、約束和指定的權(quán)限。定的權(quán)限。 其語法格式如下:其語法格式如
48、下:DROP TABLEdatabase_name.schema name. |schema_name.table_name ,.n ;例例3.12在數(shù)據(jù)庫在數(shù)據(jù)庫test01中創(chuàng)建表中創(chuàng)建表stud,為表添加、刪除,為表添加、刪除列和行,再刪除該表。列和行,再刪除該表。例例3.13 局部臨時(shí)表的創(chuàng)建與數(shù)據(jù)輸入。局部臨時(shí)表的創(chuàng)建與數(shù)據(jù)輸入。 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 數(shù)據(jù)完整性是指數(shù)據(jù)的精確性和可靠性,數(shù)據(jù)完整性是指數(shù)據(jù)的精確性和可靠性,是為防止數(shù)據(jù)庫中存在不符合語義規(guī)是為防止數(shù)據(jù)庫中存在不符合語義規(guī)定的數(shù)據(jù),防止因錯(cuò)誤信息的輸入、定的數(shù)據(jù),防止因錯(cuò)誤信
49、息的輸入、輸出而造成無效的操作或錯(cuò)誤信息而輸出而造成無效的操作或錯(cuò)誤信息而提出的,數(shù)據(jù)完整性在數(shù)據(jù)庫管理系提出的,數(shù)據(jù)完整性在數(shù)據(jù)庫管理系統(tǒng)中是十分重要的。統(tǒng)中是十分重要的。 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.1 數(shù)據(jù)完整性的類型數(shù)據(jù)完整性的類型根據(jù)數(shù)據(jù)完整性促使所作用的數(shù)據(jù)庫對(duì)象和范圍不根據(jù)數(shù)據(jù)完整性促使所作用的數(shù)據(jù)庫對(duì)象和范圍不同,可以將其分為以下幾類:同,可以將其分為以下幾類:(1)域()域(Domain)完整性。)完整性。 (2)實(shí)體()實(shí)體(Entity)完整性。)完整性。 (3)引用完整性。)引用完整性。 (4)用戶定義完整性。用戶定義完整性
50、的實(shí)現(xiàn)機(jī)制)用戶定義完整性。用戶定義完整性的實(shí)現(xiàn)機(jī)制有規(guī)則(有規(guī)則(Rule)、觸發(fā)器()、觸發(fā)器(Trigger)和存儲(chǔ)過程)和存儲(chǔ)過程(Stored Procedure)及創(chuàng)建數(shù)據(jù)表時(shí)的所有約束)及創(chuàng)建數(shù)據(jù)表時(shí)的所有約束(Constraint)。)。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2 約束約束 1SQL Server 2005支持的約束類型支持的約束類型(1)NOT NULL約束約束 (2)PRIMARY KEY約束:約束:標(biāo)識(shí)具有唯一標(biāo)識(shí)表標(biāo)識(shí)具有唯一標(biāo)識(shí)表中行的值的列或列集。中行的值的列或列集。 (3)FOREIGN KEY約束約束:外鍵用于建
51、立和加強(qiáng):外鍵用于建立和加強(qiáng)兩個(gè)表數(shù)據(jù)之間的連接的一列或多列。兩個(gè)表數(shù)據(jù)之間的連接的一列或多列。 (4)UNIQUE約束:約束:強(qiáng)制實(shí)施列集中值的唯一性。強(qiáng)制實(shí)施列集中值的唯一性。 (5)CHECK約束:約束:通過限制可放入列中的值來通過限制可放入列中的值來強(qiáng)制實(shí)施域完整性。強(qiáng)制實(shí)施域完整性。 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2 約束約束 2在在SQL Server Management Studio中創(chuàng)建約束中創(chuàng)建約束()創(chuàng)建()創(chuàng)建NOT NULL約束。在約束。在SQL Server Management Studio中選擇表,利用執(zhí)行中選擇表,利
52、用執(zhí)行“修改修改”命令后彈出窗體中,對(duì)表中的列的命令后彈出窗體中,對(duì)表中的列的“允許空允許空”項(xiàng)進(jìn)行選擇即可。項(xiàng)進(jìn)行選擇即可。()創(chuàng)建()創(chuàng)建PRIMARY KEY 約束。在約束。在SQL Server Management Studio中選擇表,利用執(zhí)行中選擇表,利用執(zhí)行“修改修改”命令后彈出窗體中,右擊表中被選擇的列,在命令后彈出窗體中,右擊表中被選擇的列,在彈出的菜單中執(zhí)行彈出的菜單中執(zhí)行“設(shè)置主鍵設(shè)置主鍵”命令即可。命令即可。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約
53、束建約束()創(chuàng)建()創(chuàng)建FOREIGN KEY 約束。約束。 在在SQL Server Management Studio中選中選擇表擇表score,執(zhí)行,執(zhí)行“修改修改”命令后彈出窗體,命令后彈出窗體,單擊單擊“關(guān)系關(guān)系”按鈕,如圖所示。按鈕,如圖所示。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)建約中創(chuàng)建約束束()創(chuàng)建()創(chuàng)建FOREIGN KEY 約束。約束。 在彈出的在彈出的“外鍵關(guān)系外鍵關(guān)系”對(duì)話框中,單擊對(duì)話框中,單擊“添加添加”按鈕,然后選擇按鈕,然后選擇“表和列規(guī)范表和
54、列規(guī)范”后后的的按鈕按鈕,如圖所示。如圖所示。 在彈出的在彈出的“表和列表和列”對(duì)話框中,選擇主鍵表對(duì)話框中,選擇主鍵表student和外鍵表和外鍵表score及共有的列及共有的列studentno。單擊。單擊“確定確定”按鈕,外鍵約束創(chuàng)建完畢。按鈕,外鍵約束創(chuàng)建完畢。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約束建約束()創(chuàng)建()創(chuàng)建UNIQUE約束。約束。 在在SQL Server Management Studio中選擇中選擇表表score,執(zhí)行,執(zhí)行“修改修改”命令后彈
55、出窗體,命令后彈出窗體,單擊單擊“管理索引和鍵管理索引和鍵”按鈕,如圖所示。按鈕,如圖所示。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約束建約束()創(chuàng)建()創(chuàng)建UNIQUE約束。約束。 在彈出的在彈出的“索引索引/鍵鍵”對(duì)話框中,單擊對(duì)話框中,單擊“添加添加”按鈕,然后選擇按鈕,然后選擇“是唯一的是唯一的”后后的列表框按鈕的列表框按鈕,如圖所示。選擇如圖所示。選擇“是是”,單,單擊擊“關(guān)閉關(guān)閉”按鈕即可。按鈕即可。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā)
56、 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約束建約束()創(chuàng)建()創(chuàng)建CHECK約束。約束。在在SQL Server Management Studio中選中選擇表擇表student,執(zhí)行,執(zhí)行“修改修改”命令后彈出窗命令后彈出窗體,單擊體,單擊“管理管理Check約束約束”按鈕,如圖按鈕,如圖所示。所示。 清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約束建約束()創(chuàng)建()創(chuàng)建CHECK約束。約束。 在彈出的在彈出的“CHECK
57、約束約束”對(duì)話框中,單對(duì)話框中,單擊擊“添加添加”按鈕,然后選擇按鈕,然后選擇“表達(dá)式表達(dá)式”后后的的按鈕按鈕,如圖所示。如圖所示。清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.1.2 約束約束 2在在SQL Server Management Studio中創(chuàng)中創(chuàng)建約束建約束()創(chuàng)建()創(chuàng)建CHECK約束。約束。 在彈出的在彈出的“CHECK約束表達(dá)式約束表達(dá)式”對(duì)話對(duì)話框中,輸入表達(dá)式框中,輸入表達(dá)式“ sex=男男 OR sex=女女 ”。如圖所示。單擊。如圖所示。單擊“確定確定”按鈕,按鈕,CHECK約束創(chuàng)建完畢。約束創(chuàng)建完畢。清華大學(xué)出版社. SQL Serv
58、er 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2約束約束 3利用利用Transact-SQL語句創(chuàng)建或修改約束語句創(chuàng)建或修改約束利用利用Transact-SQL語句創(chuàng)建或修改約束的語法格式如下:語句創(chuàng)建或修改約束的語法格式如下: := CONSTRAINT constraint_name WITHCHECK|NOCHECK ADD ,.n |DROP CONSTRAINT constraint_name | COLUMN column_name ,.n | CHECK | NOCHECK CONSTRAINT ALL | constraint_name ,.n 清華大學(xué)出版社. SQL Server
59、 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2約束約束 3利用利用Transact-SQL語句創(chuàng)建或修改約束語句創(chuàng)建或修改約束例3.14 為數(shù)據(jù)庫teaching中的班級(jí)表class的列classno創(chuàng)建FOREIGN KEY 約束,并將其中的classname、department、monitor的“允許空”修改為NOT NULL。程序代碼如下:ALTER TABLE classADD CONSTRAINT PK_class PRIMARY KEY CLUSTERED (classno ASC)GOALTER TABLE classALTER COLUMN classname nchar(12) N
60、OT NULL GOALTER TABLE classALTER COLUMN department nchar(12) NOT NULLGOALTER TABLE classALTER COLUMN monitor nchar(8) NOT NULL GO清華大學(xué)出版社. SQL Server 2005數(shù)據(jù)庫應(yīng)用與開發(fā) 3.3.2約束約束 例例3.15 為數(shù)據(jù)庫為數(shù)據(jù)庫teaching中的成績(jī)表中的成績(jī)表score的的兩個(gè)列兩個(gè)列usually和和final添加添加CHECK約束,限定約束,限定其值在其值在0100范圍內(nèi)。范圍內(nèi)。程序代碼如下:程序代碼如下:ALTER TABLE score
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 山西太原科技大學(xué)招聘真題2024
- 婁底市中心醫(yī)院引進(jìn)真題2024
- 管理學(xué)碩士研究開展
- 2025至2030年中國(guó)皮雕畫市場(chǎng)調(diào)查研究報(bào)告
- 2025至2030年中國(guó)乙基芐基苯胺磺酸市場(chǎng)分析及競(jìng)爭(zhēng)策略研究報(bào)告
- 2025━2030年紅支棉紗行業(yè)深度研究報(bào)告
- 2025━2030年平泡行業(yè)深度研究報(bào)告
- 2025━2030年中國(guó)水泥制構(gòu)件項(xiàng)目投資可行性研究報(bào)告
- 2025-2035年全球及中國(guó)逐卷打印行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景研究報(bào)告
- 2025-2035年全球及中國(guó)電圍欄系統(tǒng)行業(yè)市場(chǎng)發(fā)展現(xiàn)狀及發(fā)展前景研究報(bào)告
- 銷盤摩擦磨損試驗(yàn)機(jī)設(shè)計(jì)
- 長(zhǎng)江流域氣候變化影響脆弱性和適應(yīng)性
- 《中國(guó)古代文學(xué)史——第四編:隋唐五代文學(xué)》PPT課件(完整版)
- 人教版數(shù)學(xué)八年級(jí)下冊(cè)全冊(cè)說課稿(PPT版)(共21張PPT)課件
- 政府采購(gòu)法專題課件(PPT 33頁)
- 材料大課堂鈦合金(課堂PPT)
- NRC蛋雞飼養(yǎng)標(biāo)準(zhǔn)
- 高數(shù)常微分方程-高階微分方程
- 項(xiàng)目總工崗位職責(zé)
- 最新-路面標(biāo)線技術(shù)交底
- 醫(yī)院卒中質(zhì)量控制考核方案
評(píng)論
0/150
提交評(píng)論