您现在的位置是:首页 >技术教程 >数据库----------唯一约束、默认约束、零填充约束网站首页技术教程
数据库----------唯一约束、默认约束、零填充约束
简介数据库----------唯一约束、默认约束、零填充约束
目录
1.唯一约束(Unique)
1.概念
唯一约束(Unique Key)是指所有记录中字段的值不能重复出现。
例如,为id字段加上唯一性约束后,每条记录的id值都是唯一的,不能出现重复的情况。
2.语法
方式1:<字段名> <数据类型> unique
方式2:alter table 表名 add constraint 约束名 unique (列);
3.添加唯一约束
- 方式1:创建表时指定
create table t_user8(
id int,
name varchar(20),
phone_number varchar(20) unique -- 指定唯一约束
);
insert into t_user8 values (1001,'张三',138);
insert into t_user8 values (1002,'李四',138); -- 不可以
insert into t_user8 values (1002,'李四',139);
insert into t_user8 values (1003,'王五',null);
insert into t_user8 values (1004,'小六',null);
-- 在MySQL中 null和任何值都不相同 甚至和自己都不相同
- 方式2:创建表之后指定
格式:alter table 表名 add constraint 约束名 unique(列);
constraint:约束
create table t_user9(
id int,
name varchar(20),
phone_number varchar(20)
);
alter table t_user9 add constraint unique_pn unique(phone_number);
insert into t_user9 values (1001,'张三',138);
insert into t_user9 values (1002,'李四',139);
注:
- 唯一+非空=主键
- 一个表只能一个主键,但是唯一约束可以有多个
4.删除唯一约束
格式:alter table <表名> drop index <唯一约束名>/<列名>;
alter table t_user9 drop index unique_pn;
2.默认约束(default)
1.概念
MySQL默认值约束用来指定某列的默认值。
2.语法
方式1:<字段名> <数据类型> default <默认值>;
方式2: alter table 表名 modify 列名类型 default 默认值;
3.添加默认约束
- 方式1:创建表时指定
create table t_user10 (
id int,
name varchar(20),
address varchar (20) default '北京' -- 指定默认约束
);
insert into t_user10(id,name) values(1001, '张三');
insert into t_user10(id,name,address) values(1002, '李四','上海');
insert into t_user10 values(1003, '王五',null);
- 方式2:创建表之后指定
-- alter table 表名 modify 列名 类型 default 默认值; create table t_user11( id int, name varchar(20), address varchar(20) ); alter table t_user11 modify address varchar(20) default '深圳';
4.删除默认约束
-- alter table <表名> modify <字段名> <类型> default null;
alter table t_user11 modify address varchar(20) default null;
3.零填充约束(zerofill)了解即可
1.概念
- 插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的0
- zerofill默认为int(10)
- 当使用zerofill时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如,有符号为-128~+127,无符号为0~256。
2.操作
create table t_user12 (
id int zerofill, -- 零填充约束
name varchar (20)
);
3.删除
alter table t_user12 modify id int;
风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。