版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、福建師范大學(xué)信息技術(shù)學(xué)院表結(jié)構(gòu)與數(shù)據(jù)類型數(shù)據(jù)類型1約束2表結(jié)構(gòu)設(shè)計3福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v關(guān)系的所有屬性都需要用數(shù)據(jù)類型加以描述,目的是為了給不同的數(shù)據(jù)分配合適的空間,確定合適的存儲形式。v SQL Server 2008提供了豐富的系統(tǒng)數(shù)據(jù)類型,包含字符串、Unicode字符串、二進制數(shù)據(jù)、位、整數(shù)數(shù)據(jù)、浮點數(shù)、日期和時間數(shù)據(jù)、貨幣數(shù)據(jù)等。福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v系統(tǒng)數(shù)據(jù)類型福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型SQL Server 2008的整數(shù)數(shù)據(jù)類型數(shù)據(jù)類型范圍存儲bigint-263263-18字節(jié)int-231231-14字節(jié)smallint-215215-12字節(jié)
2、tinyint02551字節(jié)bit0或11位v精確數(shù)字類型 整數(shù)數(shù)據(jù)類型福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 精確的小數(shù)數(shù)據(jù)類型SQL Server 2008的小數(shù)數(shù)據(jù)類型數(shù)據(jù)類型說明decimal(p,s)p(精度),總位數(shù),138,默認為18;s(小數(shù)位數(shù)),0p,默認為0;0spnumeric(p,s)福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 貨幣數(shù)據(jù)類型數(shù)據(jù)類型范圍存儲money-263263-18字節(jié),精確到貨幣單位的1%smallmoney-215215-14字節(jié),精確到貨幣單位的1%福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 近似數(shù)據(jù)類型數(shù)據(jù)類型范圍存儲flo
3、at(n)-1.79E+308+-1.79E+308取決于n,當(dāng)n取值為124之間,存儲空間為4字節(jié);當(dāng)n取值在2553之間,存儲空間為8字節(jié)real-3.40E+383.40E+384字節(jié),相當(dāng)于float(24)福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 日期和時間數(shù)據(jù)類型數(shù)據(jù)類型范圍存儲date從0001-1-1到9999-12-31格式:yyyy-mm-dd3字節(jié)datetime從1753-1-1到9999-12-31格式:yyyy-mm-dd hh:mm:ss8字節(jié)smarlldatetime從1900-1-1到2079-12-31格式:yyyy-mm-dd hh:mm:ss4字
4、節(jié)福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 字符數(shù)據(jù)類型數(shù)據(jù)類型說明char(n)定長字符串,每個字符占用1字節(jié)存儲空間,存儲空間為n字節(jié),n介于08000之間整數(shù)varchar(n)最大長度為n的可變長字符串,存儲空間根據(jù)實際字符串所占字節(jié)數(shù)text專門用于存儲數(shù)量龐大的變長字符數(shù)據(jù),最大存儲空間231-1字節(jié)福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 unicode字符數(shù)據(jù)類型數(shù)據(jù)類型說明nchar(n)存儲雙字節(jié)字符,存儲空間為字符數(shù)*2(字節(jié));含義同字符數(shù)據(jù)類型nvarchar(n)ntext福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v精確數(shù)字類型 二進制字符數(shù)據(jù)類型數(shù)據(jù)類型說明bi
5、nary固定長度為n字節(jié)的二進制字符串,n介于08000之間整數(shù)varbinary最大長度為n字節(jié)的可變長二進制字符串image用于存儲超過8000字節(jié)的數(shù)據(jù),所占空間為0231-1福建師范大學(xué)信息技術(shù)學(xué)院課堂演練_數(shù)據(jù)類型v為以下信息,定制正確的數(shù)據(jù)類型 電話號碼一般使用什么數(shù)據(jù)類型存儲? 年齡信息一般使用什么數(shù)據(jù)類型存儲? 薪水一般使用什么數(shù)據(jù)類型存儲? 地址一般用什么數(shù)據(jù)類型? 生日一般用什么數(shù)據(jù)類型? 身高用什么數(shù)據(jù)類型? 圖片用什么類型存儲?定長字符型 char(n)整型 int貨幣型 money可變長 varchar(n)日期型 datetime小數(shù)類型 numeric(5,1)圖
6、片存儲有兩種方式路徑存儲:選用varchar(n)圖片存儲:選用image(二進制存儲)福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型v用戶自定義數(shù)據(jù)類型 用戶自定義數(shù)據(jù)類型是在SQL Server系統(tǒng)數(shù)據(jù)類型基礎(chǔ)上定義的,定義時需要指定該類型的名稱、建立在其上的系統(tǒng)數(shù)據(jù)類型以及是否允許為空值(NULL)等。自定義數(shù)據(jù)類型定義以后,使用方式同系統(tǒng)數(shù)據(jù)類型。 系統(tǒng)存儲過程sp_addtype可用來創(chuàng)建用戶自定義數(shù)據(jù)類型。其語法格式如下:sp_addtype新數(shù)據(jù)類型,系統(tǒng)數(shù)據(jù)類型 , null_type福建師范大學(xué)信息技術(shù)學(xué)院數(shù)據(jù)類型例2-6 在學(xué)籍管理數(shù)據(jù)庫SM中創(chuàng)建用戶自定義數(shù)據(jù)類型studentNo,s
7、tudentNo基于的系統(tǒng)數(shù)據(jù)類型是固定長度字符數(shù)據(jù)類型,長度為5,不允許為空。 在Microsoft SQL Server Management Studio中執(zhí)行以下代碼: 運行結(jié)果如下圖所示。福建師范大學(xué)信息技術(shù)學(xué)院約束v在設(shè)計表時,對于表和表中的某些列要進行完整性約束條件定義,以實現(xiàn)實體完整性、參照完整性和用戶定義的完整性。v SQL Server提供了一些在列上強制完成數(shù)據(jù)完整性的約束機制,包括非空值約束(NOT NULL)、唯一性約束(UNIQUE)、主鍵約束(PRIMARY KEY)、外鍵約束(FOREIGN KEY)、檢查約束(CHECK)和默認值約束(DEFAULT)。福建師
8、范大學(xué)信息技術(shù)學(xué)院約束v (1)非空約束(NOT NULL) 空值(NULL)是當(dāng)前不知道、不確定或無法填入的值。空值不能理解為0或空格。例如,某個學(xué)生選修某門課程的成績是0和NULL具有不同的含義。成績?yōu)?表示該學(xué)生該課程已經(jīng)有了成績,而為NULL則表明該學(xué)生此門課程的成績還沒有被填入。這是兩個不同的概念。 當(dāng)某列的取值不能為空值時,則可以在列級完整性約束定義中設(shè)置為非空值約束(NOT NULL)。其定義格式為:CONSTRAINT NOT NULLv 注意:NOT NULL約束只能定義在列級完整性約束,不允許作為一個表級完整性約束來使用。福建師范大學(xué)信息技術(shù)學(xué)院約束v (2)唯一性約束(U
9、NIQUE) 唯一性約束(UNIQUE)用于限定基本表上的某個列或某些列的組合在不同元組中的取值不能相同(空值除外)。UNIQUE約束既可以作為列級約束,也可以作為表級約束。 UNIQUE約束定義格式為:CONSTRAINT UNIQUE 使用UNIQUE約束時,要注意以下幾點。 如果沒有為它指定聚簇索引或非聚簇索引,默認情況下會創(chuàng)建一個非聚簇索引。 每個UNIQUE約束自動生成一個索引,UNIQUE約束的數(shù)量不能導(dǎo)致表中索引的數(shù)量超過249個非聚簇索引和1個聚簇索引。 可以在列級或表級定義多個UNIQUE約束。當(dāng)用作列級約束時,UNIQUE只作用于其所在的列,無須指定列名表。當(dāng)用作表級約束時
10、,可以約束多個列的組合。福建師范大學(xué)信息技術(shù)學(xué)院約束v (3)主鍵約束(PRIMARY KEY) 用于定義基本表的主鍵,以實現(xiàn)實體完整性規(guī)則。如果某個列或列組合被定義為主鍵,那么該列或列組合唯一地標(biāo)識表中的一個元組。其定義格式為:CONSTRAINT PRIMARY KEY 注意:使用PRIMARY KEY約束時,有以下幾點要求。 每一個表僅能定義一個PRIMARY KEY約束。 主鍵值不可為空。 主鍵值不可重復(fù)。如果PRIMARY KEY約束建立在多列上,其中某一列上的數(shù)據(jù)可以重復(fù),但是多列的值不能重復(fù)。 image和text類型的列不能定義PRIMARY KEY約束。 同唯一性約束一樣,作
11、為列級約束時可以省略列名表。福建師范大學(xué)信息技術(shù)學(xué)院約束v(4)外鍵約束(FOREIGN KEY) 主要用來維護兩個表之間數(shù)據(jù)的一致性,它是保證系統(tǒng)參照完整性的手段。外鍵的取值,要么為空值,要么是引用表的某個主鍵或唯一性鍵的值。外鍵約束既可以作為列級約束,也可以作為表級約束。其定義格式為:CONSTRAINT FOREIGN KEY REFERENCES ON DELETE ON UPDATE 福建師范大學(xué)信息技術(shù)學(xué)院約束v(5)檢查約束(CHECK) 可以定義插入或修改某個元組時,元組應(yīng)滿足的約束條件,通常用于限定某個列的取值范圍或與其他列的關(guān)系。其定義格式為:CONSTRAINT CHEC
12、K 條件表達式是由列名、SQL所支持的運算符和函數(shù)等構(gòu)成的邏輯表達式。CHECK約束既可以作為列級約束,也可以作為表級約束。作為列級約束,每一列只能有一個CHECK約束,但可以用邏輯運算符AND(與)或OR(或)等構(gòu)成復(fù)合條件。福建師范大學(xué)信息技術(shù)學(xué)院約束v(5)檢查約束(CHECK)1、約束某列的取值區(qū)間(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)通通 配配 符符 含含 義義 % % 可以匹配任意類型和長度的字符可以匹配任意類型和長度的字符 _ _任意單個字符任意單個字符 指定一定范圍內(nèi)的任意單個字符指定一定范圍內(nèi)的任意單個字符 不在指定范圍內(nèi)的任意單個字符不在指定范圍內(nèi)的任意單個字符 福建師范大學(xué)信息技術(shù)學(xué)院約束v(6) DEFAULT默認值約束 作為列級約束,使用DEFAULT可以為某一列指定默認值,當(dāng)用戶插入或修改元組時,在沒有為該列賦值的情況下,可以用指定的默認值填入該列。其定義格式為:CONSTRAINT DEFAULT 注意: 每個列只能定義一個DEFAULT約束。 如果定義的默認
14、值大于其允許的長度,那么輸入到列的默認值將被截斷。 DEFAULT約束表達式不能參照表中的其他列、其他表、視圖或存儲過程。福建師范大學(xué)信息技術(shù)學(xué)院表結(jié)構(gòu)設(shè)計v 設(shè)計表的實質(zhì)就是設(shè)計表的結(jié)構(gòu),設(shè)置表和列的屬性。創(chuàng)建表之前,應(yīng)該考慮一下兩個問題:一是數(shù)據(jù)庫中要存放哪些數(shù)據(jù);二是這些數(shù)據(jù)如何規(guī)劃分到表中。即先要確定表的名字、屬性,同時確定表所包含的列名、列的數(shù)據(jù)類型、長度、是否為空值、約束條件、默認值設(shè)置、規(guī)則等,這些屬性構(gòu)成表的結(jié)構(gòu)。福建師范大學(xué)信息技術(shù)學(xué)院表結(jié)構(gòu)設(shè)計福建師范大學(xué)信息技術(shù)學(xué)院表的創(chuàng)建基本表的創(chuàng)建,用CREATE TABLE語句實現(xiàn),其語法格式如下: CREATE TABLE ( 列
15、級完整性約束條件 , 列級完整性約束條件 ,)表結(jié)構(gòu)設(shè)計好,就可以在數(shù)據(jù)庫中創(chuàng)建表。通常一個數(shù)據(jù)庫還能有多張表,以存儲用戶需要的各類數(shù)據(jù)。方法一:使用SSMS對象資源管理器創(chuàng)建方法二:使用SQL語句創(chuàng)建福建師范大學(xué)信息技術(shù)學(xué)院表的創(chuàng)建v例1:用CREATE TABLE語句創(chuàng)建studb數(shù)據(jù)庫中的學(xué)生表Student,記錄學(xué)生的基本信息,要求姓名不能為NULL,并約束性別的取值范圍。福建師范大學(xué)信息技術(shù)學(xué)院表的創(chuàng)建v例2:用CREATE TABLE語句創(chuàng)建studb數(shù)據(jù)庫中的Course表,記錄課程的基本信息,要求課程號為主鍵,課程名唯一,每門課的學(xué)分默認為4。福建師范大學(xué)信息技術(shù)學(xué)院表的創(chuàng)建v
16、 例3 用CREATE TABLE語句創(chuàng)建SC表,記錄學(xué)生選課的基本信息,并設(shè)置外鍵約束。福建師范大學(xué)信息技術(shù)學(xué)院表的修改和刪除v表建立以后,可以根據(jù)需要對它的結(jié)構(gòu)進行修改。修改的內(nèi)容包括修改列屬性,如列名、數(shù)據(jù)類型、數(shù)據(jù)長度等,還可以在表結(jié)構(gòu)中添加或刪除列、添加或刪除約束、禁用或啟用約束等?;颈淼男薷目梢允褂肁LTER TABLE語句福建師范大學(xué)信息技術(shù)學(xué)院表的修改和刪除例4 用SQL向表Student中增加一列Email。ALTER TABLE Student ADD Email VARCHAR(40)例5 在Student表中SName列上設(shè)置唯一約束。ALTER TABLE StudentADD
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年軟件開發(fā)項目經(jīng)理勞動合同3篇
- 2025年度城市廣場草坪修剪與夜間經(jīng)濟合同3篇
- 2024甲乙雙方關(guān)于區(qū)塊鏈技術(shù)研發(fā)與應(yīng)用的合同
- 2024年財產(chǎn)分割協(xié)議:無共同債權(quán)雙方自愿離婚協(xié)商書3篇
- 2024年環(huán)保新材料研發(fā)與應(yīng)用合作協(xié)議
- 2024年車間租賃合同:工業(yè)用途
- 2025賓館股權(quán)轉(zhuǎn)讓與旅游產(chǎn)品開發(fā)協(xié)議3篇
- 2024年砌墻工程質(zhì)量檢測合同
- 2024年食堂食品安全追溯系統(tǒng)委托運營管理協(xié)議3篇
- 2024長租公寓協(xié)議標(biāo)準(zhǔn)格式版A版
- 【高一上】【期末話收獲 家校話未來】期末家長會
- 滯銷風(fēng)險管理制度內(nèi)容
- 關(guān)于物業(yè)服務(wù)意識的培訓(xùn)
- JJF 2184-2025電子計價秤型式評價大綱(試行)
- 排污許可證辦理合同1(2025年)
- GB/T 44890-2024行政許可工作規(guī)范
- 上海科目一考試題庫參考資料1500題-上海市地方題庫-0
- 二年級下冊加減混合豎式練習(xí)360題附答案
- (完整版)四年級上冊數(shù)學(xué)豎式計算題100題直接打印版
- 高層住宅(23-33層)造價估算指標(biāo)
- “千師訪萬家”家訪記錄表(共2頁)
評論
0/150
提交評論