首页 > 代码库 > 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约束