首页 > SQL学习 > SQL基础知识 > SQL中的约束语句
2017
04-18

SQL中的约束语句

SQL 约束语句用于规定表中的数据规则。如果存在违反约束的数据行为,行为会被约束终止。约束可以在创建表时规定(通过 CREATE TABLE 语句),或者在表创建之后规定(通过 ALTER TABLE 语句)。

在 SQL 中,有如下约束:

NOT NULL 约束强制列不接受 NULL 值。如果不向该字段添加值,就无法插入新记录或者更新记录。
UNIQUE 保证某列的每行必须有唯一的值。

创建时:

CREATE TABLE table_name(column_name int NOT NULL UNIQUE,...);

CREATE TABLE table_name(column_name int NOT NULL,...,UNIQUE(column_name));

修改时:ALTER TABLE Persons ADD UNIQUE (column_name);

PRIMARY KEY 约束唯一标识数据库表中的每条记录。主键必须包含唯一的值(UNIQUE)。主键列不能包含 NULL 值(NOT NULL)。每个表都应该有一个主键,并且每个表只能有一个主键。有助于更容易更快速地找到表中的一个特定的记录。

创建时:

create table table_name(column_name primary key ,...);

create table table_name(column_name ,... ,primary key(column_name));

修改时:alter table table_name add primary key(column_name);

删除:alter table table_name drop primary key; 注意如果字段具有auto_increment属性必须先删除auto_increment属性。

FOREIGN KEY 一个表中的 FOREIGN KEY 指向另一个表中的 PRIMARY KEY。用于预防破坏表之间连接的行为,也能防止非法数据插入外键列,因为它必须是它指向的那个表中的值之一。

创建时(table02_column_name为table_02表中的主键PRIMARY KEY):

CREATE TABLE table_name(column_name,...,FOREIGN KEY (column_name) REFERENCES table_02(table02_column_name));

CREATE TABLE table_name(column_name FOREIGN KEY REFERENCES table_02(table02_column_name),...);

修改时:ALTER TABLE table_name ADD FOREIGN KEY (column_name) REFERENCES table_02(table02_column_name);

CHECK 约束用于限制列中的值的范围。如果对一个表定义 CHECK 约束,那么此约束会基于行中其他列的值在特定的列中对值进行限制。

创建时:

create table table_name(column_name check(column_name>0) ,...);

create table table_name(column_name ,... ,check(column_name>0));

修改时:alter table table_name add check(column_name>0);

DEFAULT 规定没有给列赋值时的默认值。

创建时:create table table_name(column_name default GETDATE() ,...);

修改时:alter table table_name set default GETDATE();

UNSIGNED 整数类型限制为无符号
AUTO_INCREMENT 整数类型限制为自增
最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。