版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、SQL的主鍵和外鍵約束SQL的主鍵和外鍵的作用:外鍵取值規(guī)則:空值或參照的主鍵值。(1插入非空值時,如果主鍵表中沒有這個值,則不能插入。(2更新時,不能改為主鍵表中沒有的值。(3刪除主鍵表記錄時,你可以在建外鍵時選定外鍵記錄一起級聯(lián)刪除還是拒絕刪除。(4更新主鍵記錄時,同樣有級聯(lián)更新和拒絕執(zhí)行的選擇。簡而言之,SQL的主鍵和外鍵就是起約束作用。關系型數(shù)據(jù)庫中的一條記錄中有若干個屬性,若其中某一個屬性組(注意是組能唯一標識一條記錄,該屬性組就可以成為一個主鍵。比如:學生表(學號,姓名,性別,班級其中每個學生的學號是唯一的,學號就是一個主鍵;課程表(課程編號,課程名,學分其中課程編號是唯一的,課程
2、編號就是一個主鍵;成績表(學號,課程號,成績成績表中單一一個屬性無法唯一標識一條記錄,學號和課程號的組合才可以唯一標識一條記錄,所以,學號和課程號的屬性組是一個主鍵。成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,并且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外鍵;同理,成績表中的課程號是課程表的外鍵。定義主鍵和外鍵主要是為了維護關系數(shù)據(jù)庫的完整性,總結一下:一、主鍵是能確定一條記錄的唯一標識,比如,一條記錄包括身份正號,姓名,年齡。身份證號是唯一能確定你這個人的,其他都可能有重復,所以,身份證號是主鍵。外鍵用于與另一張表的關聯(lián)。是能確定另一張表記錄的字段,用于保持
3、數(shù)據(jù)的一致性。比如,A 表中的一個字段,是B表的主鍵,那他就可以是A表的外鍵。二、主鍵、外鍵和索引的區(qū)別定義:主鍵-唯一標識一條記錄,不能有重復的,不允許為空外鍵-表的外鍵是另一表的主鍵, 外鍵可以有重復的, 可以是空值索引-該字段沒有重復值,但可以有一個空值作用:主鍵-用來保證數(shù)據(jù)完整性外鍵-用來和其他表建立聯(lián)系用的索引-是提高查詢排序的速度個數(shù):主鍵-主鍵只能有一個外鍵-一個表可以有多個外鍵索引-一個表可以有多個唯一索引創(chuàng)建SQL的主鍵和外鍵約束的方法:create table Student -建表格式:create table 自定義的表名(-字段名一般為有一定意義的英文Student
4、Name nvarchar(15,- 格式:字段名類型(括號里面的是允許輸入的長度StudentAge int,-int型的后面不需要接長度StudentSex nvarchar(2-最后一個字段后面不要逗號-在創(chuàng)建表時就可以對字段加上約束:create table Student(StudentNo int PRIMARY KEY IDENTITY(1,1,-加主鍵約束,還有標識列屬性(兩者構成實體完整性StudentName nvarchar(15not null,-加非空約束,不加not null 默認為:可以為空StudentSchool text(20FOREIGN KEY REFE
5、RENCES SchoolTable(SchoolName, -加外鍵約束,格式:FOREIGN KEY REFERENCES 關聯(lián)的表名(字段名StudentAge int DEFAULT(0,-加默認值約束StudentSex nvarchar(2CHECK(StudentSex=N男or StudentSex=N女-加檢查約束,格式:check (條件表達式-如果在表創(chuàng)建好了以后再加約束,則格式分別為:- 主鍵:alter table表名add constraint PK_字段名-PK為主鍵的縮寫,字段名為要在其上創(chuàng)建主鍵的字段名,PK_字段名就為約束名primary key(字段名-字
6、段名同上-唯一約束:alter table表名add constraint UQ_字段名unique(字段名-外鍵約束:alter table表名add constraint FK_字段名-FK為外鍵的縮寫foreign key(字段名references關聯(lián)的表名(關聯(lián)的字段名-注意關聯(lián)的表名和關聯(lián)的字段名alter table表A add constraint FK_B foreign key(ticket_noreferences 表B(ticket_noalter table表A add constraint FK_C foreign key(person_noreferences 表
7、C(person_noalter table成績表add constraint FK_StudentNo foreign key (StudentNo references Student (StudentNoON UPDATE CASCADE ON DELETE CASCADE級聯(lián)更新,級聯(lián)刪除,這樣在刪除主表Student時,成績表中該學生的所有成績都會刪除。-檢查約束:alter table表名add constraint CK_字段名check(條件表達式-條件表達式中的條件用關系運算符連接-默認值約束:alter table表名add constraint DF_字段名default
8、默認值for字段名-其中的默認值為你想要默認的值,注意for-刪除創(chuàng)建的約束:alter table表名drop constraint約束名-約束名為你前面創(chuàng)建的如:PK_字段這樣的約束名-注意:如果約束是在創(chuàng)建表的時候創(chuàng)建的,則不能用命令刪除-只能在企業(yè)管理器里面刪除- 獲取SqlServer中表結構SELECT ,,syscolumns.isnullable, syscolumns.lengthFROM syscolumns,systypesWHERE syscolumns.xusertype = systypes.xusertype
9、AND syscolumns.id =OBJECT_ID(Student- 單獨查詢表遞增字段SELECT name FROM syscolumns WHEREid =OBJECT_ID(NStudentAND COLUMNPROPERTY(id,name,IsIdentity=1- 獲取表主外鍵約束EXEC sp_helpconstraintStuResults- 查詢表主鍵外鍵信息SELECT sysobjects.id objectId,OBJECT_NAME(sysobjects.parent_obj tableName, constraintName, sysobjects.xtype AS constraintType, AS columnNameFROM sysobjects INNER JOIN sysconstraintsON sysobjects.xtype in(C,F,PK,UQ,DAND sys
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 共青科技職業(yè)學院《生物產(chǎn)業(yè)概論》2023-2024學年第一學期期末試卷
- 贛南師范大學《大學綜合英語錢院》2023-2024學年第一學期期末試卷
- 《博物館方案》課件
- 三年級數(shù)學上冊3圖形的運動一3.2旋轉學案冀教版
- 三年級數(shù)學下冊專項復習數(shù)與代數(shù)第五組認識分數(shù)蘇教版
- 三年級科學上冊第三單元人與動物7拯救野生動物教案首師大版1
- 小學生素質培養(yǎng)課件
- 銷售課件培訓
- 《加強蠅必凈更新》課件
- 居家養(yǎng)老服務協(xié)議書
- 汽車租賃服務投標方案(技術方案2)
- dip按病種分值付費
- 流浪乞討人員救助工作總結
- 研究生實驗方案
- 云南省昆明市盤龍區(qū)2023-2024學年高二上學期期末質量檢測數(shù)學試題【含答案解析】
- 腎上腺皮質功能減退通用課件
- 《安徒生童話》試題及答案
- 服務重點客戶
- 《社會工作概論》課件
- 工業(yè)濾芯行業(yè)利潤分析
- 化工生產(chǎn)操作工培訓手冊
評論
0/150
提交評論