當前位置:首頁 » 編程語言 » sql的主鍵和外鍵約束

sql的主鍵和外鍵約束

發布時間: 2024-01-16 14:40:29

sql server語句所有的約束條件

1、主鍵約束(Primary Key constraint):要求主鍵列數據唯一,並且不允許為空。

2、唯一約束(Unique constraint):要求該列唯一,允許為空,但只能出現一個空值。

3、檢查約束(Check constraint):某列取值范圍限制,格式限制等,如有關年齡、郵箱(必須有@)的約束。

4、默認約束(Default constraint):某列的默認值,如在資料庫里有一項數據很多重復,可以設為默認值。

5、外鍵約束(Foreign Key constraint):用於在兩個表之間建立關系,需要指定引用主表的哪一列。

(1)sql的主鍵和外鍵約束擴展閱讀:

對於存在外鍵約束的表,如果進行刪除非空的外鍵,可能會出現錯誤。 如果在 FOREIGN KEY 約束的列中輸入非 NULL 值,則此值必須在被引用的列中存在,否則將返回違反外鍵約束的錯誤信息。

列級 FOREIGN KEY 約束的 REFERENCES 子句僅能列出一個引用列,且該列必須與定義約束的列具有相同的數據類型。表級 FOREIGN KEY 約束的 REFERENCES 子句中引用列的數目必須與約束列列表中的列數相同。每個引用列的數據類型也必須與列表中相應列的數據類型相同。

Ⅱ sql用命令創建主鍵與外鍵。

創建SQL的主鍵和外鍵約束的方法:

--在創建表時就可以對欄位加上約束:
create table Student
(
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主鍵約束,還有標識列屬性(兩者構成實體完整性)
StudentName nvarchar(15) not null, --加非空約束,不加"not null" 默認為:可以為空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外鍵約束,格式:FOREIGN KEY REFERENCES 關聯的表名(欄位名)
StudentAge int DEFAULT ((0)), --加默認值約束
StudentSex nvarchar(2) CHECK(StudentSex=N'男' or StudentSex=N'女') --加檢查約束,格式:check (條件表達式)
)

--如果在表創建好了以後再加約束,則格式分別為:

-- 主鍵:
alter table 表名
add constraint PK_欄位名--"PK"為主鍵的縮寫,欄位名為要在其上創建主鍵的欄位名,'PK_欄位名'就為約束名
primary key (欄位名) --欄位名同上

--唯一約束:
alter table 表名
add constraint UQ_欄位名
unique (欄位名)

--外鍵約束:
alter table 表名
add constraint FK_欄位名--"FK"為外鍵的縮寫
foreign key (欄位名) references 關聯的表名(關聯的欄位名) --注意'關聯的表名'和'關聯的欄位名'

alter table 表A add constraint FK_B foreign key (ticket_no) references 表B(ticket_no)
alter table 表A add constraint FK_C foreign key (person_no) references 表C(person_no)

alter table 成績表 add constraint FK_StudentNo foreign key (StudentNo) references Student (StudentNo)
ON UPDATE CASCADE ON DELETE CASCADE
級聯更新,級聯刪除,這樣在刪除主表Student時,成績表中該學生的所有成績都會刪除。

--檢查約束:
alter table 表名
add constraint CK_欄位名
check (條件表達式) --條件表達式中的條件用關系運算符連接

--默認值約束:
alter table 表名
add constraint DF_欄位名
default '默認值' for 欄位名--其中的'默認值'為你想要默認的值,注意'for'

--刪除創建的約束:
alter table 表名
drop constraint 約束名--約束名為你前面創建的如:PK_欄位這樣的約束名
--注意:如果約束是在創建表的時候創建的,則不能用命令刪除
--只能在'企業管理器'裡面刪除

參考資料 : http://www.studyofnet.com/news/92.html

希望以上的回答能夠幫到你

Ⅲ SQL Server 中的「鍵」是什麼意思主鍵和外鍵是什麼

這需要理清幾個概念:
1)候選鍵: 關系中的一個屬性組,其值能唯一標識一個元組,若從該屬性組中去掉任何一個屬性,它就不具有這一性質了,這樣的屬性組稱作候選碼。

2)主鍵:當有多個候選碼時,可以選定一個作為主碼,選定的候選碼稱主鍵

3)外鍵: 關系R中的一個屬性組,它不是R的候選碼,但它與另一個關系S的候選碼相對應,則稱這個屬性組為R的外碼或外鍵。

舉個例子:
有兩個關系:
student(s#,sname,d#),即學生這個關系有三個屬性:學號,姓名,所在系別
dep(d#,dname),即院系有兩個屬性:系號、系名

則s#、d#是主鍵,也是各自所在關系的唯一候選鍵,d#是student的外鍵。
參考資料:資料庫——原理、編程與性能

Ⅳ SQL中什麼叫主鍵,什麼是外鍵,有啥關系

說簡單點睜慶就是,主鍵就是唯一標識一列的約束,外鍵就是數據引用主鍵的一個約束兩者的關系就是,主鍵值必須是唯一的,也就是不能重復,外鍵引用了仔鋒主鍵,那麼它的值就只能是主鍵中出現過的值,不能是主悉戚握鍵未出現的值

熱點內容
機加工的編程 發布:2024-11-30 00:31:19 瀏覽:727
坦克世界電腦什麼配置 發布:2024-11-30 00:30:41 瀏覽:316
如何在手機設置上找到網路的密碼 發布:2024-11-30 00:18:29 瀏覽:413
和鷹加密鎖 發布:2024-11-30 00:17:17 瀏覽:555
C語言舞會 發布:2024-11-30 00:15:44 瀏覽:377
java下載我的世界 發布:2024-11-30 00:11:08 瀏覽:12
華三配置器升級失敗怎麼回事 發布:2024-11-30 00:09:23 瀏覽:841
汽車空調壓縮機壽命 發布:2024-11-30 00:06:04 瀏覽:566
電腦網路波動異常與伺服器失去連接 發布:2024-11-29 23:43:19 瀏覽:247
個人電腦與伺服器架構類似 發布:2024-11-29 23:40:59 瀏覽:704