第04章-4數(shù)據(jù)表的創(chuàng)建_第1頁
第04章-4數(shù)據(jù)表的創(chuàng)建_第2頁
第04章-4數(shù)據(jù)表的創(chuàng)建_第3頁
第04章-4數(shù)據(jù)表的創(chuàng)建_第4頁
第04章-4數(shù)據(jù)表的創(chuàng)建_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第第4章章 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 2第第4章章 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 l4.1 數(shù)據(jù)表的建立數(shù)據(jù)表的建立l4.2 數(shù)據(jù)表的修改數(shù)據(jù)表的修改34.1 數(shù)據(jù)表的建立數(shù)據(jù)表的建立 l4.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l4.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 l4.1.3 數(shù)據(jù)完整性數(shù)據(jù)完整性l4.1.4 數(shù)據(jù)表創(chuàng)建數(shù)據(jù)表創(chuàng)建l4.1.4 關(guān)系的類型關(guān)系的類型l4.1.6 特殊類型表特殊類型表 44.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l在在SQL Server中,可以通過中,可以通過SQL Server Management Studio的圖形界面或的圖形界面或Transact-SQL語句實現(xiàn)

2、數(shù)據(jù)表的創(chuàng)建,語句實現(xiàn)數(shù)據(jù)表的創(chuàng)建,下面將分別介紹。下面將分別介紹。l例如,在教學(xué)數(shù)據(jù)庫中創(chuàng)建如下例如,在教學(xué)數(shù)據(jù)庫中創(chuàng)建如下3張數(shù)據(jù)表,學(xué)生表張數(shù)據(jù)表,學(xué)生表(student)、課程表、課程表(course)、選課表、選課表(s_c),其表結(jié)構(gòu)如,其表結(jié)構(gòu)如表表6.6、表、表6.7和表和表6.8所示。所示。54.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例64.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l1. 在圖形界面下創(chuàng)建數(shù)據(jù)表l(1) 在在SQL Server Management Studio中的對象資源管中的對象資源管理器中,右擊理器中,右擊 “teaching”數(shù)據(jù)庫下的數(shù)據(jù)庫下的【表表】項,

3、在彈出項,在彈出的快捷菜單中選擇的快捷菜單中選擇【新建表新建表】命令,出現(xiàn)如圖命令,出現(xiàn)如圖4.1所示的表所示的表設(shè)計器界面。設(shè)計器界面。l(2) 在圖在圖4.1中的列名下依次輸入列名,在數(shù)據(jù)類型下選擇中的列名下依次輸入列名,在數(shù)據(jù)類型下選擇數(shù)據(jù)類型,并選擇各個列是否允許空值,也可在下面的列屬數(shù)據(jù)類型,并選擇各個列是否允許空值,也可在下面的列屬性對話框中修改某列的屬性,出現(xiàn)如圖性對話框中修改某列的屬性,出現(xiàn)如圖4.2所示的學(xué)生數(shù)據(jù)所示的學(xué)生數(shù)據(jù)表結(jié)構(gòu)。表結(jié)構(gòu)。l(3) 選中選中SNO所在的列,單擊工具欄上的所在的列,單擊工具欄上的【設(shè)置主鍵設(shè)置主鍵】按鈕按鈕設(shè)置主鍵。設(shè)置主鍵。74.1.1 數(shù)

4、據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.1 表設(shè)計器界面表設(shè)計器界面 84.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.2 學(xué)生表結(jié)構(gòu)界面學(xué)生表結(jié)構(gòu)界面 94.1.1 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 l圖圖4.3 設(shè)置設(shè)置CHECK約束界面約束界面 104.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l(4) 單擊工具欄上的單擊工具欄上的【管理管理CHECK約束約束】按鈕,設(shè)置用戶按鈕,設(shè)置用戶定義約束,如圖定義約束,如圖4.3所示。所示。l(5) 設(shè)置好設(shè)置好CHECK約束后單擊約束后單擊【關(guān)閉關(guān)閉】按鈕,返回表設(shè)計按鈕,返回表設(shè)計器界面。器界面。l(6) 單擊工具欄中的單擊工具欄中的【保存保存】按鈕,出現(xiàn)

5、如圖按鈕,出現(xiàn)如圖4.4所示的所示的【選擇名稱選擇名稱】對話框,在該框中輸入表名對話框,在該框中輸入表名“student”,然,然后單擊后單擊【確定確定】按鈕。按鈕。l(7) 這時,在這時,在【對象資源管理器對象資源管理器】中的中的【表表】項就會出現(xiàn)用項就會出現(xiàn)用戶表戶表student。l(8) 根據(jù)以上步驟,依次建立課程表根據(jù)以上步驟,依次建立課程表(course)和選課表和選課表(s_c)。如圖。如圖4.5和圖和圖4.6所示。所示。114.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.4 【選擇名稱選擇名稱】對話框?qū)υ捒?124.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.5 建立課程表

6、建立課程表(course)界面界面 134.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.6 建立選課表建立選課表(s_c)界面界面 144.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l在該對話框中單擊在該對話框中單擊【添加添加】按鈕,再單擊右側(cè)窗口中按鈕,再單擊右側(cè)窗口中“表和表和列規(guī)范列規(guī)范”右側(cè)的按鈕,出現(xiàn)如圖右側(cè)的按鈕,出現(xiàn)如圖4.8所示的所示的【表和列表和列】對話對話框???。l在該對話框中選擇主鍵表為在該對話框中選擇主鍵表為student,選擇主鍵為,選擇主鍵為SNO,然,然后單擊后單擊【確定確定】按鈕,返回如圖按鈕,返回如圖4.7所示的所示的【外鍵關(guān)系外鍵關(guān)系】對對話框,再單擊話框,再單

7、擊【添加添加】按鈕添加按鈕添加CNO外鍵,同時可以在外鍵,同時可以在“標(biāo)識標(biāo)識”中更改外鍵的名稱,如圖中更改外鍵的名稱,如圖4.9所示。所示。154.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.7 【外鍵關(guān)系外鍵關(guān)系】對話框?qū)υ捒?164.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.8 【表和列表和列】對話框?qū)υ捒?174.1.1 數(shù)據(jù)表創(chuàng)建實例數(shù)據(jù)表創(chuàng)建實例l圖圖4.9 【外鍵關(guān)系外鍵關(guān)系】對話框?qū)υ捒?184.1.1 數(shù)據(jù)表創(chuàng)建實例的總結(jié)數(shù)據(jù)表創(chuàng)建實例的總結(jié)l在設(shè)計數(shù)據(jù)庫時,必須先確定數(shù)據(jù)庫所需的表、每個表中數(shù)在設(shè)計數(shù)據(jù)庫時,必須先確定數(shù)據(jù)庫所需的表、每個表中數(shù)據(jù)的類型以及可以訪問每個

8、表的用戶。據(jù)的類型以及可以訪問每個表的用戶。在創(chuàng)建表及其對象之在創(chuàng)建表及其對象之前,要先確定表的下列特征:前,要先確定表的下列特征: 表中的列數(shù),每一列中數(shù)據(jù)的類型和長度表中的列數(shù),每一列中數(shù)據(jù)的類型和長度(如果必要如果必要)。 哪些列允許空值。哪些列允許空值。 是否要使用以及何處使用約束、默認(rèn)設(shè)置和規(guī)則。是否要使用以及何處使用約束、默認(rèn)設(shè)置和規(guī)則。 所需索引的類型,哪里需要索引,哪些列是主鍵,哪些是外所需索引的類型,哪里需要索引,哪些列是主鍵,哪些是外鍵。鍵。 194.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 l設(shè)計表時首先要執(zhí)行的操作之一是為每個列指定數(shù)據(jù)類型。設(shè)計表時首先要執(zhí)行的操作之一是為每個列指定數(shù)

9、據(jù)類型。數(shù)據(jù)類型定義了各列允許使用的數(shù)據(jù)值。通過下列方法之一數(shù)據(jù)類型定義了各列允許使用的數(shù)據(jù)值。通過下列方法之一可以為列指定數(shù)據(jù)類型:可以為列指定數(shù)據(jù)類型: l使用使用 SQL Server 2005 系統(tǒng)數(shù)據(jù)類型。系統(tǒng)數(shù)據(jù)類型。l創(chuàng)建基于系統(tǒng)數(shù)據(jù)類型的別名數(shù)據(jù)類型。創(chuàng)建基于系統(tǒng)數(shù)據(jù)類型的別名數(shù)據(jù)類型。l1. 系統(tǒng)數(shù)據(jù)類型l在在 SQL Server 2005 中,每個列、局部變量、表達(dá)式和參中,每個列、局部變量、表達(dá)式和參數(shù)都具有一個相關(guān)的數(shù)據(jù)類型。數(shù)據(jù)類型是一種屬性,用于數(shù)都具有一個相關(guān)的數(shù)據(jù)類型。數(shù)據(jù)類型是一種屬性,用于指定對象可保存的數(shù)據(jù)的類型:整數(shù)數(shù)據(jù)、字符數(shù)據(jù)、貨幣指定對象可保存的

10、數(shù)據(jù)的類型:整數(shù)數(shù)據(jù)、字符數(shù)據(jù)、貨幣數(shù)據(jù)、日期和時間數(shù)據(jù)、二進(jìn)制字符串等。數(shù)據(jù)、日期和時間數(shù)據(jù)、二進(jìn)制字符串等。 204.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 lSQL Server 提供系統(tǒng)數(shù)據(jù)類型集,該類型集定義了可與提供系統(tǒng)數(shù)據(jù)類型集,該類型集定義了可與 SQL Server 一起使用的所有數(shù)據(jù)類型。一起使用的所有數(shù)據(jù)類型。(1) 精確數(shù)字類型精確數(shù)字類型bigint、int、smallint、tinyint 取值范圍及存儲字節(jié)數(shù)取值范圍及存儲字節(jié)數(shù)見。見。 bit 可以取值為可以取值為 1、0 或或 NULL 的整數(shù)數(shù)據(jù)類型。的整數(shù)數(shù)據(jù)類型。decimal與與numeric 帶固定精度和小數(shù)位數(shù)的

11、數(shù)值數(shù)據(jù)類帶固定精度和小數(shù)位數(shù)的數(shù)值數(shù)據(jù)類型。型。money和和smallmoney 代表貨幣或貨幣值的數(shù)據(jù)類型。代表貨幣或貨幣值的數(shù)據(jù)類型。 (2) 近似數(shù)字類型近似數(shù)字類型float和和real 用于表示浮點數(shù)值數(shù)據(jù)的大致數(shù)值數(shù)據(jù)類型。用于表示浮點數(shù)值數(shù)據(jù)的大致數(shù)值數(shù)據(jù)類型。 (3) 日期和時間類型日期和時間類型 datetime和和smalldatetime 用于表示某天的日期和時間用于表示某天的日期和時間的數(shù)據(jù)類型。的數(shù)據(jù)類型。214.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 224.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 234.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 l(4) 字符串類型字符串類型char 和和 varcha

12、r 固定長度或可變長度的字符數(shù)據(jù)類型。固定長度或可變長度的字符數(shù)據(jù)類型。text長度可變的非長度可變的非Unicode 數(shù)據(jù),最大長度為數(shù)據(jù),最大長度為 230 - 1 個字符個字符 。 l(5) Unicode字符串類型字符串類型(2 字節(jié)的模式字節(jié)的模式 (65,536) )nchar 和和 nvarchar 字符數(shù)據(jù)類型字符數(shù)據(jù)類型(nchar 長度固定,長度固定,nvarchar 長度可變長度可變)和和 Unicode 數(shù)據(jù)使用數(shù)據(jù)使用 Unicode UCS-2 字符集。字符集。ntext長度可變的長度可變的 Unicode 數(shù)據(jù),最大長度為數(shù)據(jù),最大長度為 230 - 1 個字符個

13、字符 。l(6) 二進(jìn)制字符串類型二進(jìn)制字符串類型binary 和和 varbinary 固定長度或可變長度的固定長度或可變長度的binary 數(shù)據(jù)數(shù)據(jù)類型。類型。 image長度可變的二進(jìn)制數(shù)據(jù),從長度可變的二進(jìn)制數(shù)據(jù),從 0 到到 231-1 個字個字節(jié)。節(jié)。 。244.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 l(7) 其他數(shù)據(jù)類型其他數(shù)據(jù)類型ltable 一種特殊的數(shù)據(jù)類型,用于存儲結(jié)果集以進(jìn)行后續(xù)一種特殊的數(shù)據(jù)類型,用于存儲結(jié)果集以進(jìn)行后續(xù)處理。處理。lcursor 這是變量或存儲過程這是變量或存儲過程 OUTPUT 參數(shù)的一種數(shù)據(jù)類參數(shù)的一種數(shù)據(jù)類型,這些參數(shù)包含對游標(biāo)的引用。型,這些參數(shù)包含對游

14、標(biāo)的引用。lTimestamp 公開數(shù)據(jù)庫中自動生成的惟一二進(jìn)制數(shù)字的數(shù)公開數(shù)據(jù)庫中自動生成的惟一二進(jìn)制數(shù)字的數(shù)據(jù)類型。使用某一行中的據(jù)類型。使用某一行中的 timestamp 列可以很容易地確定列可以很容易地確定該行中的任何值自上次讀取以后是否發(fā)生了更改。如果對行該行中的任何值自上次讀取以后是否發(fā)生了更改。如果對行進(jìn)行了更改,就會更新該時間戳值。進(jìn)行了更改,就會更新該時間戳值。 luniqueidentifier 公開數(shù)據(jù)庫中自動生成的惟一二進(jìn)制公開數(shù)據(jù)庫中自動生成的惟一二進(jìn)制數(shù)字的數(shù)據(jù)類型。數(shù)字的數(shù)據(jù)類型。254.1.2 數(shù)據(jù)類型數(shù)據(jù)類型 l2. 別名數(shù)據(jù)類型 別名類型基于別名類型基于 S

15、QL Server 2005 中的系統(tǒng)數(shù)據(jù)類型。當(dāng)多中的系統(tǒng)數(shù)據(jù)類型。當(dāng)多個表必須在一個列中存儲相同類型的數(shù)據(jù),而必須確保這些個表必須在一個列中存儲相同類型的數(shù)據(jù),而必須確保這些列具有相同的數(shù)據(jù)類型、長度和為空性時,可以使用別名類列具有相同的數(shù)據(jù)類型、長度和為空性時,可以使用別名類型。型。 CREATE TYPE SSN FROM varchar(11) NOT NULL ; 264.1.3 數(shù)據(jù)完整性數(shù)據(jù)完整性 l數(shù)據(jù)完整性數(shù)據(jù)完整性是指列中每個事件都有是指列中每個事件都有正確的數(shù)據(jù)值正確的數(shù)據(jù)值,數(shù)據(jù)值必數(shù)據(jù)值必須位于正確的域中。須位于正確的域中。 l引用完整性引用完整性指示指示表之間的關(guān)

16、系表之間的關(guān)系得到正確維護(hù)。一個表中的數(shù)得到正確維護(hù)。一個表中的數(shù)據(jù)只應(yīng)指向另一個表中的現(xiàn)有行,不應(yīng)指向不存在的行。據(jù)只應(yīng)指向另一個表中的現(xiàn)有行,不應(yīng)指向不存在的行。l1. 空值 列可以接受空值,也可以拒絕空值。在數(shù)據(jù)庫中,列可以接受空值,也可以拒絕空值。在數(shù)據(jù)庫中,NULL 是是一個特殊值,表示未知值的概念。一個特殊值,表示未知值的概念。NULL 不同于空字符或不同于空字符或 0。實際上,空字符是一個有效的字符,實際上,空字符是一個有效的字符,0 是一個有效的數(shù)字。是一個有效的數(shù)字。NULL 只是表示此值未知這一概念。只是表示此值未知這一概念。NULL 也不同于零長度也不同于零長度字符串。字

17、符串。 274.1.3 數(shù)據(jù)完整性數(shù)據(jù)完整性 l2. 約束約束 通過約束可以定義通過約束可以定義 SQL Server 2005 Database Engine 自動自動強制實施數(shù)據(jù)庫完整性的方式。強制實施數(shù)據(jù)庫完整性的方式。 約束優(yōu)先于使用約束優(yōu)先于使用 DML 觸發(fā)器、規(guī)則和默認(rèn)值。另外,查詢優(yōu)化觸發(fā)器、規(guī)則和默認(rèn)值。另外,查詢優(yōu)化器也使用約束定義生成高性能的查詢執(zhí)行計劃。器也使用約束定義生成高性能的查詢執(zhí)行計劃。l(1) 約束類約束類 SQL Server 2005 支持下列約束類:支持下列約束類: NOT NULL 指定列不接受指定列不接受 NULL 值。值。 CHECK 約束通過限制

18、可放入列中的值來強制實施域完整性。約束通過限制可放入列中的值來強制實施域完整性。 UNIQUE 約束強制實施列集中值的惟一性。約束強制實施列集中值的惟一性。 PRIMARY KEY 約束標(biāo)識具有惟一標(biāo)識表中行的值的列或列集。約束標(biāo)識具有惟一標(biāo)識表中行的值的列或列集。 FOREIGN KEY 約束標(biāo)識并強制實施表之間的關(guān)系。約束標(biāo)識并強制實施表之間的關(guān)系。284.1.3 數(shù)據(jù)完整性數(shù)據(jù)完整性 l(2) 列約束和表約束列約束和表約束 列約束指定為列定義的一部分,并且只應(yīng)用于該列。列約束指定為列定義的一部分,并且只應(yīng)用于該列。 表約束的聲明與列定義無關(guān),可以應(yīng)用于表中多個列。當(dāng)一表約束的聲明與列定義

19、無關(guān),可以應(yīng)用于表中多個列。當(dāng)一個約束中必須包含多個列時,必須使用表約束。個約束中必須包含多個列時,必須使用表約束。294.1.3 數(shù)據(jù)完整性數(shù)據(jù)完整性l3. 默認(rèn)值默認(rèn)值 如果插入行時沒有為列指定值,默認(rèn)值則指定列中使用什么如果插入行時沒有為列指定值,默認(rèn)值則指定列中使用什么值。默認(rèn)值可以是計算結(jié)果為常量的任何值,例如常量、內(nèi)值。默認(rèn)值可以是計算結(jié)果為常量的任何值,例如常量、內(nèi)置函數(shù)或數(shù)學(xué)表達(dá)式。置函數(shù)或數(shù)學(xué)表達(dá)式。l4. 規(guī)則規(guī)則 一個列只能應(yīng)用一個規(guī)則,但可以應(yīng)用多個一個列只能應(yīng)用一個規(guī)則,但可以應(yīng)用多個 CHECK 約束。約束。CHECK 約束被指定為約束被指定為 CREATE TAB

20、LE 語句的一部分,而語句的一部分,而規(guī)則是作為單獨的對象創(chuàng)建,然后綁定到列上。規(guī)則是作為單獨的對象創(chuàng)建,然后綁定到列上。CREATE RULE range_rule AS range= 2 AND range =18 or AGE=25)l外鍵外鍵 CONSTRAINT c_name FOREIGN KEY CLUSTERED | NONCLUSTERED (column 1, 列列 2,) REFERENCES table_name(column 1, 列列 2,) ON DETELE NO ACTION|CASCADE|SET NULL|SET DEFAULT ON UPDATE NO

21、ACTION|CASCADE|SET NULL|SET DEFAULT 如在如在s_c表中:表中: FOREIGN KEY (SNO)REFERENCES student(SNO), FOREIGN KEY (CNO)REFERENCES course(CNO),364.1.4 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 lON DELETE NO ACTION | CASCADE | SET NULL | SET DEFAULT 指定如果已創(chuàng)建表中的行具有引用關(guān)系,并且被引用行已從指定如果已創(chuàng)建表中的行具有引用關(guān)系,并且被引用行已從父表中刪除,則對這些行采取操作。默認(rèn)值為父表中刪除,則對這些行采取操作。默認(rèn)值

22、為 NO ACTION。 NO ACTION 數(shù)據(jù)庫引擎將引發(fā)錯誤,并回滾對父表中數(shù)據(jù)庫引擎將引發(fā)錯誤,并回滾對父表中相應(yīng)行的刪除操作。相應(yīng)行的刪除操作。 CASCADE 如果從父表中刪除一行,則將從引用表中刪如果從父表中刪除一行,則將從引用表中刪除相應(yīng)行。除相應(yīng)行。 SET NULL 如果父表中對應(yīng)的行被刪除,則組成外鍵的如果父表中對應(yīng)的行被刪除,則組成外鍵的所有值都將設(shè)置為所有值都將設(shè)置為 NULL。 SET DEFAULT 如果父表中對應(yīng)的行被刪除,則組成外如果父表中對應(yīng)的行被刪除,則組成外鍵的所有值都將設(shè)置為默認(rèn)值。鍵的所有值都將設(shè)置為默認(rèn)值。 374.1.4 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建

23、 lON UPDATE NO ACTION | CASCADE | SET NULL | SET DEFAULT 指定如果表中發(fā)生更改的行有引用關(guān)系,指定如果表中發(fā)生更改的行有引用關(guān)系,并且被引用行在父表中已更新,則這些行將發(fā)生什么操作。并且被引用行在父表中已更新,則這些行將發(fā)生什么操作。默認(rèn)值為默認(rèn)值為 NO ACTION。 NO ACTION 數(shù)據(jù)庫引擎將引發(fā)錯誤,并回滾對父表中相數(shù)據(jù)庫引擎將引發(fā)錯誤,并回滾對父表中相應(yīng)行的更新操作。應(yīng)行的更新操作。 CASCADE 如果在父表中更新了一行,則將在引用表中更如果在父表中更新了一行,則將在引用表中更新相應(yīng)的行。新相應(yīng)的行。 SET NULL

24、如果更新了父表中的相應(yīng)行,則會將構(gòu)成外鍵如果更新了父表中的相應(yīng)行,則會將構(gòu)成外鍵的所有值設(shè)置為的所有值設(shè)置為 NULL。若要執(zhí)行此約束,外鍵列必須可為。若要執(zhí)行此約束,外鍵列必須可為空值。空值。 SET DEFAULT 如果更新了父表中的相應(yīng)行,則會將構(gòu)成如果更新了父表中的相應(yīng)行,則會將構(gòu)成外鍵的所有值都設(shè)置為其默認(rèn)值。外鍵的所有值都設(shè)置為其默認(rèn)值。 384.1.4 數(shù)據(jù)表的創(chuàng)建數(shù)據(jù)表的創(chuàng)建 l語法394.1.5 表間關(guān)系的類型表間關(guān)系的類型實體用表實現(xiàn),實體間的關(guān)系也用表實現(xiàn),實體間的實體用表實現(xiàn),實體間的關(guān)系也用表實現(xiàn),實體間的關(guān)系有關(guān)系有3中情形:中情形:一對一關(guān)系:一對一關(guān)系:一種實體

25、型中的一個實體對應(yīng)另一種實一種實體型中的一個實體對應(yīng)另一種實體型中的一個實體,即表中的一條記錄對應(yīng)另一個體型中的一個實體,即表中的一條記錄對應(yīng)另一個表的一條記錄。如病人與病床。表的一條記錄。如病人與病床。一對多關(guān)系:一對多關(guān)系:一種實體型中的一個實體對應(yīng)另一種實一種實體型中的一個實體對應(yīng)另一種實體型中的多個實體,即表中的一條記錄對應(yīng)另一個體型中的多個實體,即表中的一條記錄對應(yīng)另一個表的多條記錄。如班級與學(xué)生。表的多條記錄。如班級與學(xué)生。多對多關(guān)系:多對多關(guān)系:一種實體型中的多個實體對應(yīng)另一種實一種實體型中的多個實體對應(yīng)另一種實體型中的多個實體,即表中的多條記錄對應(yīng)另一個體型中的多個實體,即表中

26、的多條記錄對應(yīng)另一個表的多條記錄。如課程與學(xué)生形成的選課關(guān)系。表的多條記錄。如課程與學(xué)生形成的選課關(guān)系。404.1.6 特殊類型表特殊類型表 l除了基本用戶定義表的標(biāo)準(zhǔn)角色以外,除了基本用戶定義表的標(biāo)準(zhǔn)角色以外,SQL Server 2005 還提供了下列類型的表,這些表在數(shù)還提供了下列類型的表,這些表在數(shù)據(jù)庫中起著特殊的作用。據(jù)庫中起著特殊的作用。l1. 臨時表臨時表 臨時表有兩種類型:本地表和全局表。在與首次創(chuàng)臨時表有兩種類型:本地表和全局表。在與首次創(chuàng)建或引用表時相同的建或引用表時相同的 SQL Server 實例連接期間,實例連接期間,本地臨時表只對于創(chuàng)建者是可見的。當(dāng)用戶與本地臨時表

27、只對于創(chuàng)建者是可見的。當(dāng)用戶與 SQL Server 實例斷開連接后,將刪除本地臨時表。全實例斷開連接后,將刪除本地臨時表。全局臨時表在創(chuàng)建后對任何用戶和任何連接都是可見局臨時表在創(chuàng)建后對任何用戶和任何連接都是可見的,當(dāng)引用該表的所有用戶都與的,當(dāng)引用該表的所有用戶都與 SQL Server 實例實例斷開連接后,將刪除全局臨時表。斷開連接后,將刪除全局臨時表。414.1.6 特殊類型表特殊類型表 l2. 系統(tǒng)表系統(tǒng)表 SQL Server 將定義服務(wù)器配置及其所有表的數(shù)據(jù)存儲在一將定義服務(wù)器配置及其所有表的數(shù)據(jù)存儲在一組特殊的表中,這組表稱為系統(tǒng)表。除非通過專用的管理員組特殊的表中,這組表稱為

28、系統(tǒng)表。除非通過專用的管理員連接連接(DAC,只能在,只能在 Microsoft 客戶服務(wù)的指導(dǎo)下使用客戶服務(wù)的指導(dǎo)下使用),否則用戶無法直接查詢或更新系統(tǒng)表。否則用戶無法直接查詢或更新系統(tǒng)表。 例:視圖例:視圖sysobjects,在,在SQL SERVER 2000中以表的形中以表的形式提供給用戶式提供給用戶424.2 數(shù)據(jù)表的修改數(shù)據(jù)表的修改* l4.2.1 查看數(shù)據(jù)表查看數(shù)據(jù)表l4.2.2 修改數(shù)據(jù)表修改數(shù)據(jù)表l4.2.3 刪除數(shù)據(jù)表刪除數(shù)據(jù)表* 對用對用SQL語句實現(xiàn)數(shù)據(jù)表查看修改不做要求語句實現(xiàn)數(shù)據(jù)表查看修改不做要求 434.2.1 查看數(shù)據(jù)表查看數(shù)據(jù)表 l在數(shù)據(jù)庫中創(chuàng)建表之后,可

29、能需要查找有關(guān)表屬性的信息在數(shù)據(jù)庫中創(chuàng)建表之后,可能需要查找有關(guān)表屬性的信息(例如,列的名稱、數(shù)據(jù)類型或其索引的性質(zhì)例如,列的名稱、數(shù)據(jù)類型或其索引的性質(zhì)),還可以顯示,還可以顯示表的依賴關(guān)系來確定哪些對象表的依賴關(guān)系來確定哪些對象(如視圖、存儲過程和觸發(fā)器如視圖、存儲過程和觸發(fā)器)是由表決定的。在更改表時,相關(guān)對象可能會受到影響。是由表決定的。在更改表時,相關(guān)對象可能會受到影響。l【例例4.2】返回有關(guān)所有對象的信息。返回有關(guān)所有對象的信息。l單擊工具欄上單擊工具欄上【新建查詢新建查詢】按鈕,輸入以下代碼:按鈕,輸入以下代碼:lUSE master;lGOlEXEC sp_help;lGOl

30、然后單擊工具欄中的然后單擊工具欄中的【執(zhí)行執(zhí)行】按鈕,結(jié)果如圖按鈕,結(jié)果如圖4.10所示。所示。444.2.1 查看數(shù)據(jù)表查看數(shù)據(jù)表 l圖圖4.10 查詢結(jié)果查詢結(jié)果 454.2.1 查看數(shù)據(jù)表查看數(shù)據(jù)表 l【例例4.3】返回教學(xué)數(shù)據(jù)庫中學(xué)生表的信息。返回教學(xué)數(shù)據(jù)庫中學(xué)生表的信息。 USE teaching; GO EXEC sp_help student; (EXEC sp_help student;) GO 結(jié)果如圖結(jié)果如圖4.11所示。所示。 464.2.1 查看數(shù)據(jù)表查看數(shù)據(jù)表 l圖圖4.11 查詢結(jié)果查詢結(jié)果 474.2.2 修改數(shù)據(jù)表修改數(shù)據(jù)表 l1. 使用圖形工具修改數(shù)據(jù)表使用圖形工具修改數(shù)據(jù)表 在對象資源管理器中,右擊要向其添加列的表,再選擇在對象資源管理器中,右擊要向其添加列的表,再選擇【修修改改】菜單項,進(jìn)入表設(shè)計器,在表設(shè)計器中可以作以下修改。菜單項,進(jìn)入表設(shè)計器,在表設(shè)計器中可以作以下修改。l(1) 添加列和其他對象添加列和其他對象 A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論