首页 > 代码库 > SQL约束

SQL约束

SQL 约束分为列级和表级,用来限制可以插入到表中的数据的类型。这确保了在数据库中的数据的准确性和可靠性。

(1)创建约束

约束可以指定在创建表CREATE TABLE语句或创建,即使表被创建后,你可以使用ALTER TABLE语句创建约束。

I 建表时创建约束

Create table 表名

( 列名1  列类型 not null,//not null 约束

  列名2  列类型 primary key,//主键约束

 ......)

或者

Create table 表名

( 列名1  列类型,

  列名2  列类型,

  ......, 

 [Constraint] 约束名 约束类型(列名、约束)

)

II 建表后alter

Alter table 表名 add constraint 约束名 约束类型(列名)

(2)删除约束

Alter table 表名 drop constraint 约束名

 

SQL常用约束:

(1)NOT NULL 约束: 用于控制字段的内容一定不能为空(NULL)

    Eg. Name varchar(20) not null

(2)DEFAULT 约束 : 提供时没有指定一个列的默认值。

·      Eg. Name varchar(20) default ‘bella’

·  添加:Alter 表名 alter column 列名 set default 默认值

·  删除:Alter 表名 alter 列名 drop default

(3)UNIQUE 约束:  控件字段内容不能重复,一个表允许有多个 Unique 约束。

·  Eg. Constraint uniquename unique(column1,column2)

(4)PRIMARY Key: 唯一标识数据库表中的每行/记录, 也是用于控件字段内容不能重复,但它在一个表只允许出现一个。

Unique 与 Primary 的相同之处:UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。 
Unique 与 Primary 的不同之处:每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束,Unique允许有NULL值,而 Primary key 不允许有NULL值。 

(5)FOREIGN Key: 唯一标识一行/任何其他数据库表中的记录。FOREIGN KEY 约束用于预防破坏表之间连接的动作,FOREIGN KEY 约束也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

·  Eg. Id varchar(30) not null foreign key references table2(column)

·  添加: alter table 表名 add constraint 约束名 

·                   Foreign key (column) references table2(column)

·  删除: alter table 表名 drop constraint 外键约束名

(6)CHECK Constraint: CHECK约束,确保一列中的所有值满足一定的条件。

     Eg. Age int not null check(age>20 and age<50)

     添加:alter table 表名 add constraint 约束名 check(约束)

     删除:alter table 表名 drop constraint 约束名

(7)INDEX: 使用非常迅速创建和检索数据库中的数据。

 

SQL约束