目录
[1.1 添加主键约束](#1.1 添加主键约束)
[1.2 单独添加主键约束](#1.2 单独添加主键约束)
[1.3 删除主键约束](#1.3 删除主键约束)
[1.4 设置自动增长](#1.4 设置自动增长)
我们已知道,创建数据表语法:
sql
create table 表名(
字段名1 数据类型(长度) [约束],
字段名2 数据类型(长度) [约束],
字段名3 数据类型(长度) [约束],
...
) engine = 引擎名 default charset utf8;
我们会发现字段名的结尾处可以添加SQL约束。
SQL约束是用于指定字段数据的规则,可以保证数据更加精确、可靠。 通俗地说,SQL约束就是数据在类型的基础上【增加了额外要求】。
1.常见的SQL约束
对于SQL约束,要注意:
(1)SQL约束不是必须的,而是为了让SQL更加规范而存在;
(2)在实际应用中,可以对字段同时设定多个SQL约束,且都是在创建数据表时进行设定。
1.1 添加主键约束
在创建表时添加主键约束语法:
sql
create table 表名(
字段名 数据类型(长度) primary key [其他约束],
...
) engine = 引擎名 default charset utf8;
说明:
(1)给primary key主键约束的字段设定值时,不允许出现重复值;[唯一性]
(2)主键约束列不能包含null值;[非空]
(3)每个表都应该有一个主键约束,且每个表只能有一个主键。
1.2 单独添加主键约束
除了可以在数据表添加主键约束外,还可以单独添加主键约束,语法:
sql
# 创建表后,使用alter table关键字添加主键
alter table 表名 add primary key(字段名);
此方式不常用,了解即可。
1.3 删除主键约束
给有主键约束的数据表删除主键约束,语法:
sql
# 使用alter table关键字删除主键
alter table 表名 drop primary key;
说明: 当删除主键约束后,字段依旧有非空约束,不能为空。
1.4 设置自动增长
在创建表时让主键约束字段为自动增长[auto],语法:
sql
create table 表名(
字段名 数据类型(长度) primary key auto_increment,
...
) engine = 引擎名 default charset utf8;
说明:
(1)自动增长列的数据类型必须是整型;
(2)自动增长列必须为X键(例如主键、外键)。
当给数据字段设定了主键约束后,则: (1)值是唯一的; (2)值是非空的。
2.添加非空约束
语法:
sql
create table 表名(
字段名 数据类型(长度) [其他约束] not null,
...
) engine = 引擎名 default charset utf8;
说明:
(1)当设定主键约束后,值默认是非空的;
(2)当给某列设定为not null后,在添加数据时必须向该字段传递非null值。
当设定为非空约束后,则:
(1)not null约束强制字段不接受null值;
(2)not null约束强制字段传递数据时,必须有数值.
3.添加唯一约束
语法:
sql
create table 表名(
字段名 数据类型(长度) [其他约束] unique,
...
) engine = 引擎名 default charset utf8;
说明:
(1)每个表可以有多个unique唯一约束,但是每个表只能有一个primary key主键约束;
(2)当设定为某字段唯一约束后,给该字段添加已有值,则报错。
设定为唯一约束后,要了解:
(1)unique约束用于唯一标识数据表中的每条数据;
(2)primary key字段默认唯一;
(3)unique和primary key约束均为列提供了唯一性保证
当给数据字段设定了唯一约束后,则:值是唯一的。 通俗地说,当给某字段设定为unique后,在添加数据时若传递已有值,会出错。
4.添加默认值约束
语法:
sql
create table 表名(
字段名 数据类型(长度) [其他约束] default 值,
...
) engine = 引擎名 default charset utf8;
说明:
(1)每个表可以有多个默认值约束;
(2)设置了默认值后,若不传递数值,则直接使用默认值。
当设定为默认值约束后,则:
(1)有了默认值约束后, 当不传递字段对应的值时,会使用默认值;
(2)有了默认值约束后, 当传递字段对应的值时,会传递的具体值为准。