數(shù)據(jù)庫表管理_第1頁
數(shù)據(jù)庫表管理_第2頁
數(shù)據(jù)庫表管理_第3頁
數(shù)據(jù)庫表管理_第4頁
數(shù)據(jù)庫表管理_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1第二章第二章SQL Server數(shù)據(jù)庫表管理2回顧 使用企業(yè)管理器創(chuàng)建組、注冊 用兩種方法創(chuàng)建、修改、查看數(shù)據(jù)庫 移動和配置數(shù)據(jù)庫的選項3本章目標 使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫表 設置表的主鍵、外鍵和建立表之間的關系 為表增加約束4再論數(shù)據(jù)完整性 2-1數(shù)據(jù)完整性數(shù)據(jù)完整性可靠性可靠性準確性準確性5再論數(shù)據(jù)完整性 2-2 數(shù)據(jù)存放在表中 “數(shù)據(jù)完整性的問題大多是由于設計引起的” 創(chuàng)建表的時候,就應當保證以后數(shù)據(jù)輸入是正確的錯誤的數(shù)據(jù)、不符合要求的數(shù)據(jù)不允許輸入創(chuàng)建表:保證數(shù)據(jù)的完整性創(chuàng)建表:保證數(shù)據(jù)的完整性 = 實施完整性約束實施完整性約束6完整性包括2-1 輸入的類型是否正確?年齡必須是數(shù)字

2、輸入的格式是否正確?身份證號碼必須是18位 是否在允許的范圍內?性別只能是”男”或者”女” 是否存在重復輸入?學員信息輸入了兩次 是否符合其他特定要求?信譽值大于5的用戶才能夠加入會員列表 列值要求(約束)整行要求(約束)7完整性包括2-2域完整性實體完整性引用完整性自定義完整性8實體完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012. .地址地址姓名姓名學號學號江西南昌雷銅0010014約束方法:唯一約束、主鍵約束、標識列約束方法:唯一約束、主鍵約束、標識列9域完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)

3、張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012. .地址地址姓名姓名學號學號湖北江門李亮8700000000約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、默認值、非空約束默認值、非空約束10引用完整性河南新鄉(xiāng)趙可以0010016河南新鄉(xiāng)張麗鵑0010015江西南昌雷銅0010014湖南新田吳蘭0010013山東定陶李山0010012地址地址姓名姓名學號學號980010021數(shù)學約束方法:外鍵約束約束方法:外鍵約束科目學號分數(shù)數(shù)學001001288數(shù)學001001374語文001001267語文0010

4、01381數(shù)學00100169811自定義完整性AV121322喬峰CV0016AV372133玄痛CV0015AV378291沙悟凈AV0014AV378290豬悟能AV0013AV378289AV378289孫悟空AV0012. .會員證會員證用戶姓名用戶姓名用戶編號用戶編號約束方法:規(guī)則、存儲過程、觸發(fā)器約束方法:規(guī)則、存儲過程、觸發(fā)器帳號姓名信用.00192孫悟空700288豬悟能612333段譽890111虛竹4093000岳不群-10觸發(fā)器:檢查信用值12表操作在企業(yè)管理器中演示打開表、數(shù)據(jù)輸入等操作13創(chuàng)建數(shù)據(jù)庫表-114SQL Server的數(shù)據(jù)類型分類分類備注和說明備注和說明

5、數(shù)據(jù)類型數(shù)據(jù)類型說明說明二進制數(shù)據(jù)類二進制數(shù)據(jù)類型型存儲非子符和文本的數(shù)據(jù)存儲非子符和文本的數(shù)據(jù)Image可用來存儲圖像可用來存儲圖像文本數(shù)據(jù)類型文本數(shù)據(jù)類型字符數(shù)據(jù)包括任意字母、符字符數(shù)據(jù)包括任意字母、符號或數(shù)字字符的組合號或數(shù)字字符的組合Char固定長度的非固定長度的非 Unicode 字字符數(shù)據(jù)符數(shù)據(jù)Varchar可變長度非可變長度非 Unicode 數(shù)據(jù)數(shù)據(jù)Nchar固定長度的固定長度的 Unicode 數(shù)據(jù)數(shù)據(jù)Nvarchar可變長度可變長度 Unicode 數(shù)據(jù)數(shù)據(jù)Text存儲長文本信息存儲長文本信息Ntext存儲可變長度的長文本存儲可變長度的長文本日期和時間日期和時間日期和時間在

6、單引號內輸入日期和時間在單引號內輸入Datetime 日期和時間日期和時間數(shù)字數(shù)據(jù)數(shù)字數(shù)據(jù)該數(shù)據(jù)僅包含數(shù)字,包括正該數(shù)據(jù)僅包含數(shù)字,包括正數(shù)、負數(shù)以及分數(shù)數(shù)、負數(shù)以及分數(shù)intsmallint整數(shù)整數(shù)floatreal數(shù)字數(shù)字貨幣數(shù)據(jù)類型貨幣數(shù)據(jù)類型用于十進制貨幣值用于十進制貨幣值MoneyBit數(shù)據(jù)類型數(shù)據(jù)類型表示是表示是/否的數(shù)據(jù)否的數(shù)據(jù)Bit存儲布爾數(shù)據(jù)類型存儲布爾數(shù)據(jù)類型15思考q 電話號碼一般使用什么數(shù)據(jù)類型存儲?q 性別一般使用什么數(shù)據(jù)類型存儲?q 年齡信息一般使用什么數(shù)據(jù)類型存儲?q 照片信息一般使用什么數(shù)據(jù)類型存儲?q 薪水一般使用什么數(shù)據(jù)類型存儲?16創(chuàng)建數(shù)據(jù)庫表-217思考

7、q 學員姓名允許為空嗎?q 家庭地址允許為空嗎?q 電子郵件信息允許為空嗎?q 考試成績允許為空嗎?18創(chuàng)建數(shù)據(jù)庫表-319思考q 在主鍵列輸入的數(shù)值,允許為空嗎?q 一個表可以有多個主鍵嗎?q 在一個學校數(shù)據(jù)庫中,如果一個學校內允許重名的學員,但是一個班級內不允許學員重名,可以組合班級和姓名兩個字段一起來作為主鍵嗎?20選擇主鍵的原則q最少性q盡量選擇單個鍵作為主鍵q穩(wěn)定性q盡量選擇數(shù)值更新少的列作為主鍵21創(chuàng)建數(shù)據(jù)庫表-4q表中沒有合適的列作為主鍵怎么辦?22思考q 標識列允許為字符數(shù)據(jù)類型嗎?q 如果標識列A的初始值為1,增長量為2,則輸入三行數(shù)據(jù)以后,再刪除兩行,下次再輸入數(shù)據(jù)行的時候

8、,標識值從多少開始?23創(chuàng)建數(shù)據(jù)庫表-524創(chuàng)建數(shù)據(jù)庫表-6演示建立主-外鍵關系25關系圖演示關系圖26主表和從表q 1、當主表中沒有對應的記錄時,不能將記錄添加到子表成績表中不能出現(xiàn)在學員信息表中不存在的學號;q 2、不能更改主表中的值而導致子表中的記錄孤立把學員信息表中的學號改變了,學員成績表中的學號也應當隨之改變;q 3、子表存在與主表對應的記錄,不能從主表中刪除該行不能把有成績的學員刪除了q 4、刪除主表前,先刪子表先刪學員成績表、后刪除學員信息表27創(chuàng)建數(shù)據(jù)庫表-7演示建立檢查約束28創(chuàng)建數(shù)據(jù)庫表完畢!輸入數(shù)據(jù)項,驗證主鍵、主外鍵關系、檢查約束輸入數(shù)據(jù)項,驗證主鍵、主外鍵關系、檢查約

9、束29創(chuàng)建表 建表的語法CREATE TABLE 表名 ( 字段1 數(shù)據(jù)類型 列的特征, 字段2 數(shù)據(jù)類型 列的特征, .)列的特征:包括該列是是否為空(NULL)、是否是標識列(自動編號)、是否有默認值、是否為主鍵等。 30建表示例 1USE stuDB -將當前數(shù)據(jù)庫設置為stuDB GOCREATE TABLE stuInfo /*-創(chuàng)建學員信息表-*/( stuName VARCHAR(20) NOT NULL , -姓名,非空(必填) stuNo CHAR(6) NOT NULL, -學號,非空(必填) stuAge INT NOT NULL, -年齡,INT類型默認為4個字節(jié) st

10、uID NUMERIC(18,0), -身份證號 stuSeat SMALLINT IDENTITY (1,1), -座位號,自動編號 stuAddress TEXT -住址,允許為空,即可選輸入) GONUMERIC (18,0)代表18位數(shù)字,小數(shù)位數(shù)為0演示:創(chuàng)建學員信息表stuInfoIDENTITY(起始值,遞增量) 31建表示例 2CREATE TABLE stuMarks( ExamNo CHAR(7) NOT NULL, -考號 stuNo CHAR(6) NOT NULL, -學號 writtenExam INT NOT NULL, -筆試成績 LabExam INT NOT

11、 NULL -機試成績)GO演示:創(chuàng)建學員成績表 stuMarks32刪除表 如果當前數(shù)據(jù)庫中已存在stuInfo表,再次創(chuàng)建時系統(tǒng)將提示出錯 。如何解決呢?33刪除表 刪除表的語法:DROP TABLE 表名USE stuDB -將當前數(shù)據(jù)庫設置為stuDB ,以便在stuDB數(shù)據(jù)庫中建表GOIF EXISTS(SELECT * FROM sysobjects WHERE name=stuInfo ) DROP TABLE stuInfoCREATE TABLE stuInfo /*-創(chuàng)建學員信息表-*/(.) GO34SQL Server的約束 約束的目的:確保表中數(shù)據(jù)的完整型 常用的約束

12、類型: 主鍵約束(Primary Key Constraint):要求主鍵列數(shù)據(jù)唯一,并且不允許為空 唯一約束(Unique Constraint):要求該列唯一,允許為空,但只能出現(xiàn)一個空值。 檢查約束(Check Constraint):某列取值范圍限制、格式限制等,如有關年齡的約束 默認約束(Default Constraint):某列的默認值,如我們的男性學員較多,性別默認為“男” 外鍵約束(Foreign Key Constraint):用于兩表間建立關系,需要指定引用主表的那列35添加約束 添加約束的語法:ALTER TABLE 表名 ADD CONSTRAINT 約束名 約束類型

13、 具體的約束說明q 約束名的取名規(guī)則推薦采用:約束類型_約束字段q主鍵(Primary Key)約束:如 PK_stuNoq唯一(Unique Key)約束:如 UQ_stuIDq默認(Default Key)約束:如 DF_stuAddressq檢查(Check Key)約束:如 CK_stuAgeq外鍵(Foreign Key)約束:如 FK_stuNo 36添加約束示例ALTER TABLE stuInfo ADD CONSTRAINT PK_stuNo PRIMARY KEY (stuNo)ALTER TABLE stuInfo ADD CONSTRAINT UQ_stuID UNIQ

14、UE (stuID)ALTER TABLE stuInfo ADD CONSTRAINT DF_stuAddress DEFAULT (地址不詳) FOR stuAddressALTER TABLE stuInfo ADD CONSTRAINT CK_stuAge CHECK(stuAge BETWEEN 15 AND 40)ALTER TABLE stuMarks ADD CONSTRAINT FK_stuNo FOREIGN KEY(stuNo) REFERENCES stuInfo(stuNo)GO演示:給學員信息表stuInfo添加約束添加主鍵約束(stuNo作為主鍵)添加唯一約束(因

15、為每人的身份證號全國唯一)添加默認約束(如果地址不填,默認為“地址不詳”)添加檢查check約束,要求年齡只能在1540歲之間添加外鍵約束(主表stuInfo和從表stuMarks建立關系,關聯(lián)字段為stuNo)37刪除約束 如果錯誤地添加了約束,我們還可以刪除約束 刪除約束的語法ALTER TABLE 表名 DROP CONSTRAINT 約束名 例如:刪除stuInfo表中地址默認約束ALTER TABLE stuInfo DROP CONSTRAINT DF_stuAddress38總結 SQL Server創(chuàng)建表的過程是規(guī)定數(shù)據(jù)列的屬性的過程,同時也是實施數(shù)據(jù)完整性(包括實體完整性、引用完整性和域完整性等)保證的過程 實體完整性數(shù)據(jù)行不能存在重復,引用完整性要求子表中的相關項必須

溫馨提示

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

評論

0/150

提交評論