1. NOT NULL - 指示某列不能存储 NULL 值。
在建表的时候就增加约束
CREATE TABLE Persons (
ID int NOT NULL ,
LastName varchar ( 255 ) NOT NULL ,
FirstName varchar ( 255 ) NOT NULL ,
Age int
) ;
对已存在的表的字段添加约束
ALTER TABLE Persons
MODIFY Age int NOT NULL ;
删除已存在表的字段的约束
ALTER TABLE Persons
MODIFY Age int NULL ;
2 UNIQUE - 保证某列的每行必须有唯一的值。
在建表的时候就增加约束
CREATE TABLE Persons
(
P_Id int NOT NULL ,
LastName varchar ( 255 ) NOT NULL ,
FirstName varchar ( 255 ) ,
Address varchar ( 255 ) ,
City varchar ( 255 ) ,
UNIQUE ( P_Id)
)
对已存在的表的字段添加约束
ALTER TABLE Persons
ADD UNIQUE ( P_Id)
ALTER TABLE Persons
ADD CONSTRAINT uc_PersonID UNIQUE ( P_Id, LastName)
删除已存在表的字段的约束
ALTER TABLE Persons
DROP INDEX uc_PersonID
3. PRIMARY KEY - NOT NULL 和 UNIQUE 的结合。确保某列(或两个列多个列的结合)有唯一标识,有助于更容易更快速地找到表中的一个特定的记录。
在建表的时候就增加约束
CREATE TABLE Persons
(
P_Id int NOT NULL ,
LastName varchar ( 255 ) NOT NULL ,
FirstName varchar ( 255 ) ,
Address varchar ( 255 ) ,
City varchar ( 255 ) ,
PRIMARY KEY ( P_Id)
)
对已存在的表的字段添加约束
ALTER TABLE Persons
ADD PRIMARY KEY ( P_Id)
ALTER TABLE Persons
ADD CONSTRAINT pk_PersonID PRIMARY KEY ( P_Id, LastName)
删除已存在表的字段的约束
ALTER TABLE Persons
DROP PRIMARY KEY
4. FOREIGN KEY - 保证一个表中的数据匹配另一个表中的值的参照完整性。
在建表的时候就增加约束
CREATE TABLE Orders
(
O_Id int NOT NULL ,
OrderNo int NOT NULL ,
P_Id int ,
PRIMARY KEY ( O_Id) ,
FOREIGN KEY ( P_Id) REFERENCES Persons( P_Id)
)
对已存在的表的字段添加约束
ALTER TABLE Orders
ADD FOREIGN KEY ( P_Id)
REFERENCES Persons( P_Id)
ALTER TABLE Orders
ADD CONSTRAINT fk_PerOrders
FOREIGN KEY ( P_Id)
REFERENCES Persons( P_Id)
删除已存在表的字段的约束
ALTER TABLE Orders
DROP FOREIGN KEY fk_PerOrders
5. CHECK - 保证列中的值符合指定的条件。
在建表的时候就增加约束
CREATE TABLE Persons
(
P_Id int NOT NULL ,
LastName varchar ( 255 ) NOT NULL ,
FirstName varchar ( 255 ) ,
Address varchar ( 255 ) ,
City varchar ( 255 ) ,
CHECK ( P_Id> 0 )
)
对已存在的表的字段添加约束
ALTER TABLE Persons
ADD CHECK ( P_Id> 0 )
ALTER TABLE Persons
ADD CONSTRAINT chk_Person CHECK ( P_Id> 0 AND City= 'Sandnes' )
删除已存在表的字段的约束
ALTER TABLE Persons
DROP CHECK chk_Person
6. DEFAULT - 规定没有给列赋值时的默认值。2. 对已存在的表的字段添加约束
在建表的时候就增加约束
CREATE TABLE Persons
(
P_Id int NOT NULL ,
LastName varchar ( 255 ) NOT NULL ,
FirstName varchar ( 255 ) ,
Address varchar ( 255 ) ,
City varchar ( 255 ) DEFAULT 'Sandnes'
)
CREATE TABLE Orders
(
O_Id int NOT NULL ,
OrderNo int NOT NULL ,
P_Id int ,
OrderDate date DEFAULT GETDATE( )
)
对已存在的表的字段添加约束
ALTER TABLE Persons
ALTER City SET DEFAULT 'SANDNES'
删除已存在表的字段的约束
ALTER TABLE Persons
ALTER City DROP DEFAULT