約束主要有以下下幾種:
NOT NULL : 用于控制字段的內(nèi)容一定不能為空(NULL)。
UNIQUE : 控件字段內(nèi)容不能重復(fù),一個表允許有多個 Unique 約束。
PRIMARY KEY: 也是用于控件字段內(nèi)容不能重復(fù),但它在一個表只允許出現(xiàn)一個。
FOREIGN KEY: FOREIGN KEY 約束用于預(yù)防破壞表之間連接的動作,F(xiàn)OREIGN KEY 約束也能防止非法數(shù)據(jù)插入外鍵列,因為它必須是它指向的那個表中的值之一。
CHECK: 用于控制字段的值范圍。
DEFAULT: 用于設(shè)置新記錄的默認(rèn)值。
1、not null : 用于控制字段的內(nèi)容一定不能為空(NULL)。
用法 :Create table MyTable ( id varchar(32) not null, name varchar (32) ) 2、Unique :控件字段內(nèi)容不能重復(fù),一個表允許有多個 Unique 約束。
新建: 在Sql Server、Orcale、MS access 支持的添加 Unique 語法: Create table MyTable ( id varchar(32) not null unique, name varchar (32) ) 在Sql Server、 My Sql 支持的添加 Unique 語法:可同時添加幾個字段為約束 如: unique (id,name) 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,.....) )
刪除: 在Sql Server、Oracle、MS Access 刪除 Unique 約束語法:drop constraint UniqueName; 在My Sql 刪除 Unique 約束語法:drop index UniqueName;
修改:
ALTER TABLE EPlatform ADD CONSTRAINT Unique_EPlatform unique ([UserId],[Platform]);
3、Primary Key :也是用于控件字段內(nèi)容不能重復(fù),但它在一個表只允許出現(xiàn)一個。 在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,......) --這樣的寫法,系統(tǒng)會自定義約束名稱 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值。 注:在同一個數(shù)據(jù)庫中,就算在不同的表中,約束名稱是不允許相同的。 4、Foreign Key :FOREIGN KEY 約束用于預(yù)防破壞表之間連接的動作,F(xiàn)OREIGN KEY 約束也能防止非法數(shù)據(jù)插入外鍵列,因為它必須是它指向的那個表中的值之一。 在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) --這樣寫系統(tǒng)會自定義約束名稱 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'); --這樣定義是系統(tǒng)自定義 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 :用于設(shè)置新記錄的默認(rèn)值。 在Sql Server、Orcale、MS Access、My Sql 添加default約束的語法: Create table myDefault ( id int, name nvarchar(32) default 'celly' ) 在My Sql 的已存在表中添加 字段默認(rèn)值: Alter table myDefault Alter [id] set default 0 在 Sql Server、Orcale、MS Access 的已存在表中添加 字段默認(rèn)值: Alter table myDefault Alter column [id] set default 0 在 My Sql 中刪除字段默認(rèn)值語法: Alter table myDefault Alter ColumnName drop default
新聞熱點(diǎn)
疑難解答