SQL4-表結構與數據類型_第1頁
SQL4-表結構與數據類型_第2頁
SQL4-表結構與數據類型_第3頁
SQL4-表結構與數據類型_第4頁
SQL4-表結構與數據類型_第5頁
已閱讀5頁,還剩25頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、福建師范大學信息技術學院表結構與數據類型數據類型1約束2表結構設計3福建師范大學信息技術學院數據類型v關系的所有屬性都需要用數據類型加以描述,目的是為了給不同的數據分配合適的空間,確定合適的存儲形式。v SQL Server 2008提供了豐富的系統數據類型,包含字符串、Unicode字符串、二進制數據、位、整數數據、浮點數、日期和時間數據、貨幣數據等。福建師范大學信息技術學院數據類型v系統數據類型福建師范大學信息技術學院數據類型SQL Server 2008的整數數據類型數據類型范圍存儲bigint-263263-18字節int-231231-14字節smallint-215215-12字節

2、tinyint02551字節bit0或11位v精確數字類型 整數數據類型福建師范大學信息技術學院數據類型v精確數字類型 精確的小數數據類型SQL Server 2008的小數數據類型數據類型說明decimal(p,s)p(精度),總位數,138,默認為18;s(小數位數),0p,默認為0;0spnumeric(p,s)福建師范大學信息技術學院數據類型v精確數字類型 貨幣數據類型數據類型范圍存儲money-263263-18字節,精確到貨幣單位的1%smallmoney-215215-14字節,精確到貨幣單位的1%福建師范大學信息技術學院數據類型v精確數字類型 近似數據類型數據類型范圍存儲flo

3、at(n)-1.79E+308+-1.79E+308取決于n,當n取值為124之間,存儲空間為4字節;當n取值在2553之間,存儲空間為8字節real-3.40E+383.40E+384字節,相當于float(24)福建師范大學信息技術學院數據類型v精確數字類型 日期和時間數據類型數據類型范圍存儲date從0001-1-1到9999-12-31格式:yyyy-mm-dd3字節datetime從1753-1-1到9999-12-31格式:yyyy-mm-dd hh:mm:ss8字節smarlldatetime從1900-1-1到2079-12-31格式:yyyy-mm-dd hh:mm:ss4字

4、節福建師范大學信息技術學院數據類型v精確數字類型 字符數據類型數據類型說明char(n)定長字符串,每個字符占用1字節存儲空間,存儲空間為n字節,n介于08000之間整數varchar(n)最大長度為n的可變長字符串,存儲空間根據實際字符串所占字節數text專門用于存儲數量龐大的變長字符數據,最大存儲空間231-1字節福建師范大學信息技術學院數據類型v精確數字類型 unicode字符數據類型數據類型說明nchar(n)存儲雙字節字符,存儲空間為字符數*2(字節);含義同字符數據類型nvarchar(n)ntext福建師范大學信息技術學院數據類型v精確數字類型 二進制字符數據類型數據類型說明bi

5、nary固定長度為n字節的二進制字符串,n介于08000之間整數varbinary最大長度為n字節的可變長二進制字符串image用于存儲超過8000字節的數據,所占空間為0231-1福建師范大學信息技術學院課堂演練_數據類型v為以下信息,定制正確的數據類型 電話號碼一般使用什么數據類型存儲? 年齡信息一般使用什么數據類型存儲? 薪水一般使用什么數據類型存儲? 地址一般用什么數據類型? 生日一般用什么數據類型? 身高用什么數據類型? 圖片用什么類型存儲?定長字符型 char(n)整型 int貨幣型 money可變長 varchar(n)日期型 datetime小數類型 numeric(5,1)圖

6、片存儲有兩種方式路徑存儲:選用varchar(n)圖片存儲:選用image(二進制存儲)福建師范大學信息技術學院數據類型v用戶自定義數據類型 用戶自定義數據類型是在SQL Server系統數據類型基礎上定義的,定義時需要指定該類型的名稱、建立在其上的系統數據類型以及是否允許為空值(NULL)等。自定義數據類型定義以后,使用方式同系統數據類型。 系統存儲過程sp_addtype可用來創建用戶自定義數據類型。其語法格式如下:sp_addtype新數據類型,系統數據類型 , null_type福建師范大學信息技術學院數據類型例2-6 在學籍管理數據庫SM中創建用戶自定義數據類型studentNo,s

7、tudentNo基于的系統數據類型是固定長度字符數據類型,長度為5,不允許為空。 在Microsoft SQL Server Management Studio中執行以下代碼: 運行結果如下圖所示。福建師范大學信息技術學院約束v在設計表時,對于表和表中的某些列要進行完整性約束條件定義,以實現實體完整性、參照完整性和用戶定義的完整性。v SQL Server提供了一些在列上強制完成數據完整性的約束機制,包括非空值約束(NOT NULL)、唯一性約束(UNIQUE)、主鍵約束(PRIMARY KEY)、外鍵約束(FOREIGN KEY)、檢查約束(CHECK)和默認值約束(DEFAULT)。福建師

8、范大學信息技術學院約束v (1)非空約束(NOT NULL) 空值(NULL)是當前不知道、不確定或無法填入的值。空值不能理解為0或空格。例如,某個學生選修某門課程的成績是0和NULL具有不同的含義。成績為0表示該學生該課程已經有了成績,而為NULL則表明該學生此門課程的成績還沒有被填入。這是兩個不同的概念。 當某列的取值不能為空值時,則可以在列級完整性約束定義中設置為非空值約束(NOT NULL)。其定義格式為:CONSTRAINT NOT NULLv 注意:NOT NULL約束只能定義在列級完整性約束,不允許作為一個表級完整性約束來使用。福建師范大學信息技術學院約束v (2)唯一性約束(U

9、NIQUE) 唯一性約束(UNIQUE)用于限定基本表上的某個列或某些列的組合在不同元組中的取值不能相同(空值除外)。UNIQUE約束既可以作為列級約束,也可以作為表級約束。 UNIQUE約束定義格式為:CONSTRAINT UNIQUE 使用UNIQUE約束時,要注意以下幾點。 如果沒有為它指定聚簇索引或非聚簇索引,默認情況下會創建一個非聚簇索引。 每個UNIQUE約束自動生成一個索引,UNIQUE約束的數量不能導致表中索引的數量超過249個非聚簇索引和1個聚簇索引。 可以在列級或表級定義多個UNIQUE約束。當用作列級約束時,UNIQUE只作用于其所在的列,無須指定列名表。當用作表級約束時

10、,可以約束多個列的組合。福建師范大學信息技術學院約束v (3)主鍵約束(PRIMARY KEY) 用于定義基本表的主鍵,以實現實體完整性規則。如果某個列或列組合被定義為主鍵,那么該列或列組合唯一地標識表中的一個元組。其定義格式為:CONSTRAINT PRIMARY KEY 注意:使用PRIMARY KEY約束時,有以下幾點要求。 每一個表僅能定義一個PRIMARY KEY約束。 主鍵值不可為空。 主鍵值不可重復。如果PRIMARY KEY約束建立在多列上,其中某一列上的數據可以重復,但是多列的值不能重復。 image和text類型的列不能定義PRIMARY KEY約束。 同唯一性約束一樣,作

11、為列級約束時可以省略列名表。福建師范大學信息技術學院約束v(4)外鍵約束(FOREIGN KEY) 主要用來維護兩個表之間數據的一致性,它是保證系統參照完整性的手段。外鍵的取值,要么為空值,要么是引用表的某個主鍵或唯一性鍵的值。外鍵約束既可以作為列級約束,也可以作為表級約束。其定義格式為:CONSTRAINT FOREIGN KEY REFERENCES ON DELETE ON UPDATE 福建師范大學信息技術學院約束v(5)檢查約束(CHECK) 可以定義插入或修改某個元組時,元組應滿足的約束條件,通常用于限定某個列的取值范圍或與其他列的關系。其定義格式為:CONSTRAINT CHEC

12、K 條件表達式是由列名、SQL所支持的運算符和函數等構成的邏輯表達式。CHECK約束既可以作為列級約束,也可以作為表級約束。作為列級約束,每一列只能有一個CHECK約束,但可以用邏輯運算符AND(與)或OR(或)等構成復合條件。福建師范大學信息技術學院約束v(5)檢查約束(CHECK)1、約束某列的取值區間(between.and ) check(a between. and .)2、約束某列的取值情況(or/in) check(a=. Or a=.) 或者 check(a in(.,.)3、約束某列的取值形式(like) check(a like 0-90-90-90-9)4、約束某字符列的

13、長度 例如:check(len(a)=18)通通 配配 符符 含含 義義 % % 可以匹配任意類型和長度的字符可以匹配任意類型和長度的字符 _ _任意單個字符任意單個字符 指定一定范圍內的任意單個字符指定一定范圍內的任意單個字符 不在指定范圍內的任意單個字符不在指定范圍內的任意單個字符 福建師范大學信息技術學院約束v(6) DEFAULT默認值約束 作為列級約束,使用DEFAULT可以為某一列指定默認值,當用戶插入或修改元組時,在沒有為該列賦值的情況下,可以用指定的默認值填入該列。其定義格式為:CONSTRAINT DEFAULT 注意: 每個列只能定義一個DEFAULT約束。 如果定義的默認

14、值大于其允許的長度,那么輸入到列的默認值將被截斷。 DEFAULT約束表達式不能參照表中的其他列、其他表、視圖或存儲過程。福建師范大學信息技術學院表結構設計v 設計表的實質就是設計表的結構,設置表和列的屬性。創建表之前,應該考慮一下兩個問題:一是數據庫中要存放哪些數據;二是這些數據如何規劃分到表中。即先要確定表的名字、屬性,同時確定表所包含的列名、列的數據類型、長度、是否為空值、約束條件、默認值設置、規則等,這些屬性構成表的結構。福建師范大學信息技術學院表結構設計福建師范大學信息技術學院表的創建基本表的創建,用CREATE TABLE語句實現,其語法格式如下: CREATE TABLE ( 列

15、級完整性約束條件 , 列級完整性約束條件 ,)表結構設計好,就可以在數據庫中創建表。通常一個數據庫還能有多張表,以存儲用戶需要的各類數據。方法一:使用SSMS對象資源管理器創建方法二:使用SQL語句創建福建師范大學信息技術學院表的創建v例1:用CREATE TABLE語句創建studb數據庫中的學生表Student,記錄學生的基本信息,要求姓名不能為NULL,并約束性別的取值范圍。福建師范大學信息技術學院表的創建v例2:用CREATE TABLE語句創建studb數據庫中的Course表,記錄課程的基本信息,要求課程號為主鍵,課程名唯一,每門課的學分默認為4。福建師范大學信息技術學院表的創建v

16、 例3 用CREATE TABLE語句創建SC表,記錄學生選課的基本信息,并設置外鍵約束。福建師范大學信息技術學院表的修改和刪除v表建立以后,可以根據需要對它的結構進行修改。修改的內容包括修改列屬性,如列名、數據類型、數據長度等,還可以在表結構中添加或刪除列、添加或刪除約束、禁用或啟用約束等。基本表的修改可以使用ALTER TABLE語句福建師范大學信息技術學院表的修改和刪除例4 用SQL向表Student中增加一列Email。ALTER TABLE Student ADD Email VARCHAR(40)例5 在Student表中SName列上設置唯一約束。ALTER TABLE StudentADD

溫馨提示

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

評論

0/150

提交評論