




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第8章創建和使用表8.1表的概念8.1.1什么是表
在關系數據庫中,每一個關系都表現為一張表。表是用來存儲數據和操作數據的邏輯結構,關系數據庫中的所有數據都表現為表的形式,表由列和行組成,行稱為記錄,列稱為屬性或字段。
SQLServer提供了很多種數據類型,還可以根據需要用戶自已定義新的數據類型,SQLServer中常用的數據類型如下所示。數據類型說明number(p)整數(其中p為精度)decimal(p,s)浮點數(其中p為精度,d為小數位數)char(n)固定長度字符串(其中n為長度)varchar(n)可變長度字符串(其中n為最大長度)datetime日期和時間
注意:空值是列的一種特殊取值,用NULL表示。它表示對應的數據不存在、不確定或不知道。表中主鍵列必須有確定的取值不能為空值,其余列的取值可以根據現實語義決定是否可以取空值。8.1.2表中數據的完整性
數據完整性包括規則、默認值和約束等。1.規則
規則是指表中數據應滿足一些基本條件。
例如,學生成績表中分數只能在0~100之間。2.默認值
默認值是指表中數據的默認取值。
例如,學生表中性別的默認可以設置為“男”。3.約束
約束是指表中數據應滿足一些強制性條件,這些條件通常由用戶在設計表時指定。
(1)非空約束(NOTNULL):非空約束是指數據列不接受NULL值。
例如,學生表中學號通常設定為主鍵,不能接受NULL值。
(2)檢查約束(CHECK約束):檢查約束是指限制輸入到一列或多列中的可能值。
例如,學生表中性別約束為只能取“男”或“女”值。
(3)唯一約束(UNIQUE約束):唯一約束是指一列或多列組合不允許出現兩個或兩個以上的相同的值。
例如,學生成績表中,學號和課程號可以設置為唯一約束,因為一個學生對應一門課程不能有兩個或以上的分數。(4)主鍵約束(PRIMARYKEY約束):主鍵約束是指定義為主鍵(一列或多列組合)的列不允許出現兩個或兩個以上的相同值。
例如,若將學生表中的學號設置為主鍵,則不能存在兩個學號相同的學生記錄。
(5)外鍵約束(FOREIGNKEY約束):一個表的外鍵是參照另一個表的候選主鍵的屬性或屬性組合,外鍵約束是指輸入外鍵值時必須參照所對應的另一個表的候選主鍵值。
例如,成績表中的學號列是外鍵,對應于學生表的學號主鍵,外鍵約束是指輸入成績表中的學號值必須在學生表的學號列中已存在,因此,在輸入上述兩個表的數據時,必須先輸入學生表的數據,然后才能輸入成績表的數據,即學生表中存在這個學生,成績表才能有其成績記錄。8.2創建表兩種創建表的方法
使用SQLServer管理控制器建立表
使用T-SQL語句中的createtable命令建立表創建表的過程1.創建表的結構(定義表)
設置表各列的列名、數據類型、是否允許取null值、默認值、主鍵約束、唯一約束、外鍵約束等2.輸入表的記錄在設計表結構時,應該考慮如下幾點因素表中需要包含的列,每一列的數據類型、精度。表中哪些列允許空值或不允許空值。表中是否設置主鍵,在何處設置主鍵。表中是否設置約束、默認值等,以及在何處設置。表中是否設置外鍵以及在何處設置。
表中是否設置索引、在何處設置以及設置什么樣的索引。
【例8.1】
使用SQLServer管理控制器在school數據庫中建立student表(學生表)、teacher表(教師表)、course表(課程表)、allocate(課程分配表)和score表(成績表)。
解:其操作步驟如下:
(1)啟動SQLServer管理控制器,展開“LCB-PC”服務器節點。(2)展開“數據庫”節點。選中數據庫“school”,展開school數據庫。
(3)選中“表”,單擊鼠標右鍵,在出現的快捷菜單中選擇“新建表”命令,如圖8.1所示。
(4)此時打開表設計器窗口,在“列名”欄中依次輸入表的字段名,并設置每個字段的數據類型、長度等屬性。輸入完成后的結果如下圖,每個列都對應一個“列屬性”對話框,其中各個選項的含義如下:名稱:指定列名稱。長度:數據類型的長度。默認值或綁定:在新增記錄時,如果沒有把值賦予該字段,則此默認值為字段值。數據類型:列的數據類型,用戶可以單擊該欄,然后單擊出現的下三角按鈕,即可進行選擇。允許空:指定是否可以輸入空值。RowGuid:可以讓SQLServer產生一個全局唯一的列值,但列類型必須是uniqueidentifier。有此屬性的列會自動產生列值,不需要用戶輸入(用戶也不能輸入)。排序規則:指定該列的排序規則。
(5)在學號列上右擊鼠標,在出現的快捷菜單中選擇“設置主鍵”命令,如下圖,從而將學號列設置為該表的主鍵,此時,該列名前面會出現一個鑰匙圖標。
(6)單擊工具欄中的保存按鈕,出現下圖所示的對話框,輸入表的名稱“student”,單擊“確定”按鈕。此時便建好了student表(表中沒有數據)。
(7)依照上述步驟,再創建4個表:teacher表(教師表)、course表(課程表)、allocate(課程分配表)和score表(學生成績表)。表的結構分別如下圖。
最后在school數據庫中建立的5個表的表結構如下(帶下劃線字段表示主鍵):
student(學號,姓名,性別,出生日期,班號)
teacher(編號,姓名,性別,出生日期,職稱,部門)
course(課程號,課程名,任課教師)
allocate(班號,課程號,教師編號)
score(學號,課程號,分數)8.3修改表的結構
使用SQLServer管理控制器修改和查看數據表結構與創建表結構的過程相同。
【例8.2】
使用SQLServer管理控制器,先在student表中增加一個民族列(其數據類型為char(16)),然后進行刪除。
解:其操作步驟如下:(1)啟動SQLServer管理控制器,展開“LCB-PC”服務器節點。
(2)展開“數據庫”節點。選中“school”,將其展開,選中“表”,將其展開,選中表“dbo.student”,單擊鼠標右鍵,在出現的快捷菜單中選擇“修改”命令,如圖8.8所示。
(3)在班號列前面增加民族列,其操作是,在打開的表設計器窗口中,用鼠標右擊班號列,然后在出現的快捷菜單中選擇“插入列”命令。(4)在新插入的列中,輸入“民族”,設置數據類型為char,長度為16,如圖所示。
(5)現在刪除剛增加的民族列。用鼠標右擊“民族”列,然后在出現的快捷菜單中選擇“刪除列”命令,如圖8.9所示,這樣就刪除了民族列。
(6)單擊工具欄中的保存按鈕,保存所進行的修改。說明:本例操作完畢后,student表保持原有的表結構不變。8.4數據庫關系圖
一個數據庫中可能有多個表,表之間可能存在著關聯關系,建立這種關聯關系的圖示稱為數據庫關系圖。8.4.1建立數據庫關系圖通過一個示例說明建立數據庫關系圖的過程。
【例8.3】
建立school數據庫中5個表的若干外鍵關系。
解:其操作步驟如下:(1)啟動SQLServer管理控制器,展開“LCB-PC”股務器節點。(2)展開“數據庫”節點,選中“school”,將其展開。
(3)選中“數據庫關系圖”,單擊鼠標右鍵,在出現的快捷菜單中選擇“新建數據庫關系圖”命令,如圖8.11所示。
(4)此時出現“添加表”對話框,由于要建立school數據庫中5個表的關系,所以選中每一個表,并單擊“添加”按鈕,添加完畢后,單擊“關閉”按鈕返回到SQLServer管理控制器。在“關系圖”中任意空白處單擊鼠標右鍵,在出現的快捷菜單中選擇“添加表”命令即可出現“添加表”對話框。
(5)此時SQLServer管理控制器右邊出現如圖8.12所示的“關系圖”對話框。
(6)現在建立student表中學號列和score表中學號列之間的關系。
(7)采用同樣的過程建立course表中課程號列(主鍵)和score表中課程號列(外鍵)之間的外鍵關系。(8)采用同樣的過程建立teacher表中編號列(主鍵)和allocate表中教師編號列(外鍵)之間的外鍵關系。(9)采用同樣的過程建立course表中課程列(主鍵)和allocate表中課程號列(外鍵)之間的外鍵關系。
(10)最終建好的關系圖如圖所示。單擊工具欄中的保存按鈕來保存關系,此時出現“選擇名稱”對話框,輸入關系圖名稱,單擊“確定”按鈕保存。
建好的school數據庫中5個表之間的關系如下圖。
通過數據庫關系圖建立的關系反映在各個表的鍵中,如圖所示是allocate表的鍵列表,其中PK_allocate鍵是通過設置主鍵建立的,而FK_allocate_course和FK_allocate_teacher兩個鍵是通過上例建立的。8.4.2刪除關系和數據庫關系圖1.通過數據庫關系圖刪除關系
可通過數據庫關系圖刪除表之間的外鍵關系。
其操作方法:打開相關的數據庫關系圖,選中該外鍵關系連線,單擊鼠標右鍵,在出現的快捷菜單中選擇“從數據庫中刪除關系”命令,在出現的對話框中選擇“是”即可。2.刪除數據庫關系圖
當不再需要數據庫關系圖時,可以選中“數據庫關系圖”列表中的某個數據庫關系圖(如dbo.Diagram_0),單擊鼠標右鍵,在出現的快捷菜單中選擇“刪除”命令即可。刪除某個數據庫關系圖后,其包含的外鍵關系仍然保存在數據庫中,不會連同該數據庫關系圖一起被刪除。若某數據庫關系圖被刪除了,還需要刪除其外鍵關系,只有進入各表的鍵列表中,一個一個將不需要的外鍵刪除掉。8.5更改表名
在有些情況下需要更改表的名稱,被更名的表必須已經存在。可使用SQLServer管理控制器更改表名。
【例8.4】
將數據庫school中abc表(已創建)更名為xyz。
解:其操作步驟如下:(1)啟動SQLServer管理控制器,展開“LCB-PC”股務器節點。(2)展開“數據庫”節點,展開“school”,選中“表”,將其展開。
(3)選中表“dbo.abc”,單擊鼠標右鍵,在出現的快捷菜單中選擇“重命名”命令,如圖所示。
(4)此時表名稱變為可編輯的,如圖所示,直接將其修改成“xyz”即可。8.6刪除表
【例8.5】
刪除數據庫school中xyz表(已創建)。
解:其操作步驟如下:(1)啟動SQLServer管理控制器,展開“LCB-PC”股務器節點。(2)展開“數據庫”節點,展開“school”,選中“表”,將其展開。
(3)選中表“dbo.xyz”,單擊鼠標右鍵,在出現的快捷菜單中選擇“刪除”命令,如圖所示。
(4)此時出現“刪除對象”對話框,直接單擊“確定”按鈕將xyz表刪除了。8.7記錄的新增和修改
記錄的新增和修改與記錄的表內容的查看的操作過程是相同的,就是在打開表的內容窗口后,直接輸入新的記錄或者進行修改。
【例8.6】
輸入school數據庫中student、teacher、course、allocate和score等5個表的相關記錄。
解:其操作步驟如下:(1)啟動SQLServer管理控制器,展開“LCB-PC”股務器節點。(2)展開“數據庫”節點,選中“school”,將其展開,選中“表”,將其展開。
(3)選中表“dbo.student”,單擊鼠標右鍵,在出現的快捷菜單中選擇“打開表”命令,如圖所示。
(4)此時出現student數據表編輯對話框,用戶可以在其中各字段中直接輸入或編輯相應的數據,這里輸入6個學生記錄,如圖所示。
(5)采用同樣的方法輸入teacher、course、allocate和score表中數據記錄,分別如圖所示。說明:本例中輸入的數據作為樣本數據,在本書后面的許多例子中用到。常用的基本數據類型種類數據類型數字整數int,bigint,smallint,tinyint精確數值decimal,numeric近似數值float,real貨幣money,smallmoney日期和時間datetime,smalldatetime字符Non-Unicodechar,varchar,varchar(max),textUnicodenchar,nvarchar,nvarchar(max),ntext二進制binary,varbinary,varbinary(max)圖像image全局標識符uniqueidentifierXMLxml特殊bit,cursor,timestamp,sysname,table,sql_variant數字數據類型數字數據類型表示符號用途精確數字類型整數數據類型int、bigint、smallint、tinyint存儲數字數據,直接進行數據運算位數據類型bit用于一些條件邏輯判斷貨幣數據類型money、smallmoney存儲貨幣數據十進制小數型decimal、numeric存儲帶固定精度和位數的小數近似數字類型浮點數據類型float、real存儲范圍非常大的數字,用于表示指定數的大致數據值整數數據類型:bigint型,長度為8個字節,存儲范圍為-263~263-1;int型,長度為4個字節,存儲范圍為-231~231-1;smallint型,長度為2個字節,存儲范圍為-215~215-1;tinyint型,長度為1個字節,存儲范圍為0~255。位型數據(bit):只存儲0、1或NULL,長度為1字節,常用于一些條件邏輯判斷。貨幣數據類型:小數位數最多4位,money型長度為8個字節,存儲范圍為-263~263-1,smallmoney型長度為4個字節,存儲范圍為-231~231-1,使用時在數字前面加上“$”貨幣符號。十進制小數型:decimal和numeric,這兩種數據類型為完全相同的數據類型。decimal數據類型由整數部分和小數部分構成,它的語法格式如下:decimal(p,s)其中p表示數字的精度,s表示數字的小數位數,s的默認值為0。浮點數據型數:(real和float)通常用于科學計算,數據用科學計數法表示。這種數據類型的優點是能夠存儲范圍非常大的數字。但是浮點數據類型容易產生舍入誤差。在對數據的精度要求并不是絕對嚴格時,可以考慮使用real或者float型數據。字符數據類型字符類型表示符號用法ANSI字符char存儲指定長度的字符串varchar存儲可變長度字符text存儲大量字符Unicode字符nchar用于存儲Unicode字符nvarchar與varchar類似,存儲可變長度Unicode字符ntext與text類似,存儲大量Unicode字符數據Char:存儲固定長度字符的ANSI字符類型,最長可以容納8K個字符,當列中字符長度基本一致時(如學號、姓名等),可以使用char類型。Varchar:用于存儲可變長度的ANSI字符數據,最長可以容納8K個字符,當數據長度相差較大時(如備注),使用varchar類型可以節省存儲空間。Text:存儲長度大于8K個字符的ANSI字符。Nchar:用于存儲固定長度的Unicode字符數據。Nvarchar:用于存
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年幼兒園中班安全教育課程設計
- 科技行業客戶經理市場拓展計劃
- 建筑工程監理工作計劃
- 2025小學英語國際交流計劃
- 企業員工在崗位職責履行中的問題及整改措施
- 部編版六年級語文下冊讀寫結合計劃
- 部編版小學語文一年級上冊教師培訓方案
- 高層建筑消防工程實施流程
- 醫療行業主要物資保障計劃
- 湘教版六年級美術下冊實踐教學計劃
- 廈門市2024屆高三畢業班第四次質量檢測 政治試卷(含答案)
- (附答案)2024公需課《百縣千鎮萬村高質量發展工程與城鄉區域協調發展》試題廣東公需科
- 微創冠脈搭橋手術
- 檔案館檔案數字化加工項目技術方案
- 福建省泉州市2022-2023學年八年級下學期英語期中試卷(含答案)
- 2024版國開電大本科《公共政策概論》在線形考(形考任務1至4)試題及答案
- 園林植物器官的識別-園林植物營養器官的識別
- 宮頸癌科普講座課件
- 亞朵服務流程
- 第三十一屆YMO青少年數學思維研學交流活動一年級復選試卷(含答案)
- 數據安全與保護:確保企業數據安全與合規性
評論
0/150
提交評論