欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > SQL约束

SQL约束

2024/10/23 23:21:30 来源:https://blog.csdn.net/weixin_58468790/article/details/140882425  浏览:    关键词:SQL约束

目录

1.常见的SQL约束

1.1 添加主键约束

1.2  单独添加主键约束

1.3  删除主键约束

1.4  设置自动增长  

2.添加非空约束

3.添加唯一约束

4.添加默认值约束


我们已知道,创建数据表语法:

create table 表名(字段名1 数据类型(长度) [约束],字段名2 数据类型(长度) [约束],字段名3 数据类型(长度) [约束],...
) engine = 引擎名 default charset utf8;

 我们会发现字段名的结尾处可以添加SQL约束。

SQL约束是用于指定字段数据的规则,可以保证数据更加精确、可靠。 通俗地说,SQL约束就是数据在类型的基础上【增加了额外要求】。

1.常见的SQL约束

对于SQL约束,要注意:

(1)SQL约束不是必须的,而是为了让SQL更加规范而存在;

 (2)在实际应用中,可以对字段同时设定多个SQL约束,且都是在创建数据表时进行设定。

1.1 添加主键约束

在创建表时添加主键约束语法:

create table 表名(字段名 数据类型(长度) primary key [其他约束],...
) engine = 引擎名 default charset utf8;

说明:

(1)给primary key主键约束的字段设定值时,不允许出现重复值;[唯一性]

(2)主键约束列不能包含null值;[非空]

(3)每个表都应该有一个主键约束,且每个表只能有一个主键。

1.2  单独添加主键约束

除了可以在数据表添加主键约束外,还可以单独添加主键约束,语法:

# 创建表后,使用alter table关键字添加主键
alter table 表名 add primary key(字段名);

 此方式不常用,了解即可。

1.3  删除主键约束

给有主键约束的数据表删除主键约束,语法:

# 使用alter table关键字删除主键
alter table 表名 drop primary key;

说明: 当删除主键约束后,字段依旧有非空约束,不能为空。

1.4  设置自动增长  

在创建表时让主键约束字段为自动增长[auto],语法:

create table 表名(字段名 数据类型(长度) primary key auto_increment,...
) engine = 引擎名 default charset utf8;

说明:

(1)自动增长列的数据类型必须是整型;

(2)自动增长列必须为X键(例如主键、外键)。

当给数据字段设定了主键约束后,则: (1)值是唯一的; (2)值是非空的。

2.添加非空约束

语法:

create table 表名(字段名 数据类型(长度) [其他约束] not null,...
) engine = 引擎名 default charset utf8;

说明:

(1)当设定主键约束后,值默认是非空的;

(2)当给某列设定为not null后,在添加数据时必须向该字段传递非null值。

当设定为非空约束后,则:

(1)not null约束强制字段不接受null值;

(2)not null约束强制字段传递数据时,必须有数值.

3.添加唯一约束

语法:

create table 表名(字段名 数据类型(长度) [其他约束] unique,...
) engine = 引擎名 default charset utf8;

说明:

(1)每个表可以有多个unique唯一约束,但是每个表只能有一个primary key主键约束;

(2)当设定为某字段唯一约束后,给该字段添加已有值,则报错。

设定为唯一约束后,要了解:

(1)unique约束用于唯一标识数据表中的每条数据;

(2)primary key字段默认唯一;

(3)unique和primary key约束均为列提供了唯一性保证

当给数据字段设定了唯一约束后,则:值是唯一的。 通俗地说,当给某字段设定为unique后,在添加数据时若传递已有值,会出错。

4.添加默认值约束

语法:

create table 表名(字段名 数据类型(长度) [其他约束] default 值,...
) engine = 引擎名 default charset utf8;

说明:

(1)每个表可以有多个默认值约束;

(2)设置了默认值后,若不传递数值,则直接使用默认值。

当设定为默认值约束后,则:

(1)有了默认值约束后, 当不传递字段对应的值时,会使用默认值;

(2)有了默认值约束后, 当传递字段对应的值时,会传递的具体值为准。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com