http://blog.csdn.net/fancy050821/article/details/4176212
1、not null :用於控制字段的內容一定不能爲空(NULL)。 用法 :Create table MyTable ( id varchar(32) not null, name varchar (32) ) 2、Unique :控件字段內容不能重複,一個表允許有多個 Unique 約束。 在Sql Server、Orcale、MS Access 支持的添加 Unique 語法: Create table MyTable ( id varchar(32) not null unique, name varchar (32) ) 在Sql Server、 My Sql 支持的添加 Unique 語法: Create table MyTable ( id varchar(32) not null, name varchar (32), unique (id,.....) ) 在Sql Server、Orcale、MS Access、My Sql 都支持的添加 Unique 語法: Create table MyTable ( id varchar(32) not null, name varchar (32), Constraint uniqueName unique(UniqueColumn,.....) ) 注:第一種寫法(也就是在字段後面直接添加約束),保證每個字段數據唯一性。 第二種寫法(也就是同時添加幾個字段爲約束),這個是保證幾個字段數據同時是唯一的,比如 Unique(id,name) 兩個字段爲約束,那麼當 id 有重複值,而 name 沒有重複值的情況下是允許的,只有當兩個字段數據都與原數據重複的情況下才是不允許的。 在Sql Server、Oracle、MS Access 刪除 Unique 約束語法:drop constraint UniqueName; 在My Sql 刪除 Unique 約束語法:drop index UniqueName; 3、Primary Key :也是用於控件字段內容不能重複,但它在一個表只允許出現一個。 在Sql Server、Orcale、MS Access 支持的添加Primary Key語法: Create table myTB1 ( id nvarchar(32) not null primary key, name nvarchar(32) ) 在Sql Server、My Sql 支持的添加Primary Key 語法: Create table myTB1 ( id nvarchar(32) not null, name nvarchar(32), primary key (id) ) 在Sql Server、Orcale、MS Access、My Sql 支持的添加Primary Key 語法: Create table myTB1 ( id nvarchar(32) not null, name nvarchar(32), constraint PrimaryName primary key (id) ) 在Sql Server、Orcale、MS Access、My Sql 表已存在的情況下,添加表的Primary Key約束語法: Alter table myTB1 ADD Primary Key (id,......) --這樣的寫法,系統會自定義約束名稱 Alter table myTB1 Add Constaint PrimaryName primary key (id) --這樣的寫法,自己可以自定義約束名稱 在Sql Server、Orcale、MS Access 刪除表已存在的 Primary Key 約束的語法: Alter table myTB1 Drop Constraint PrimaryName 在My Sql 刪除表已存在的 Primary Key 約束的語法: Alter table myTB1 Drop Primary Key Unique 與 Primary 的相同之處:UNIQUE 和 PRIMARY KEY 約束均爲列或列集合提供了唯一性的保證。 Unique 與 Primary 的不同之處:每個表可以有多個 UNIQUE 約束,但是每個表只能有一個 PRIMARY KEY 約束,Unique允許有NULL值,而 Primary key 不允許有NULL值。 注:在同一個數據庫中,就算在不同的表中,約束名稱是不允許相同的。 4、Foreign Key :FOREIGN KEY 約束用於預防破壞表之間連接的動作,FOREIGN KEY 約束也能防止非法數據插入外鍵列,因爲它必須是它指向的那個表中的值之一。 在Sql Server、My Sql 支持的添加Foreign Key語法: Create table myTB1 ( id nvarchar(32) not null primary key, name nvarchar(32), foreign key(id) references myTB(id) ) 在Sql Server、Orcale、MS Access 支持的添加Foreign Key語法: Create table myTB1 ( id nvarchar(32) not null foreign key references myTB(id), name nvarchar(32) ) 在Sql Server、Orcale、MS Access、My Sql 都支持的添加Foreign Key語法: Create table myTB1 ( id nvarchar(32) not null primary key, name nvarchar(32), Constraint foreignName foreign key(id) references myTB(id) ) 在Sql Server、Orcale、MS Access、My Sql 的表已存在情況下,向表添加外鍵約束的語法: Alter table myTB1 Add foreign key(id) references myTB(id) --這樣寫系統會自定義約束名稱 Alter table myTB1 Add Constraint foreignName foreign key(id) references myTB(id) --這樣寫自己可以自定義約束名稱 在Sql Server、Orcale、MS Access 中刪除外鍵約束的語法: Alter table myTB1 Drop Constraint foreignName; 在My Sql 中刪除外鍵約束的語法: Alter table myTB1 Drop foreign key foreignName; 5、Check :用於控制字段的值範圍。 在Sql Server、My Sql 支持的添加check 語法: Create table myCheck ( id nvarchar(32) not null, age int not null, check (age>15 and age <30) ) 在Sql Server、Orcale、MS Access 支持的添加 check 語法: Create table myCheck ( id nvarchar(32) not null, age int not null check (age>15 and age<30) ) 在Sql Server、Orcale、MS Access、My Sql 都支持的添加 check 語法: Create table myCheck ( id nvarchar(32) not null, age int not null, constraint checkName check (age<15 and age>30) ) 在Sql Server、Orcale、MS Access、My Sql 的表已存在情況下,向表添加check約束的語法: Alter table myCheck add check (id='celly'); --這樣定義是系統自定義 check約束名稱。 Alter table myCheck add constraint checkName check(id='celly'); --這樣定義是自己自定義 check約束名稱。 在 Sql Server、Orcale、MS Access 刪除表已存在的 check 約束的語法: Alter table myCheck drop constraint checkName 6、Default :用於設置新記錄的默認值。 在Sql Server、Orcale、MS Access、My Sql 添加default約束的語法: Create table myDefault ( id int, name nvarchar(32) default 'celly' ) 在My Sql 的已存在表中添加 字段默認值: Alter table myDefault Alter [id] set default 0 在 Sql Server、Orcale、MS Access 的已存在表中添加 字段默認值: Alter table myDefault Alter column [id] set default 0 在 My Sql 中刪除字段默認值語法: Alter table myDefault Alter ColumnName drop default |
數據庫SQL 約束
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.