数据库----------唯一约束、默认约束、零填充约束

目录

1.唯一约束(Unique)

1.概念

2.语法

3.添加唯一约束

4.删除唯一约束

2.默认约束(default)

1.概念

2.语法

3.添加默认约束

4.删除默认约束

3.零填充约束(zerofill)了解即可

1.概念

2.操作

3.删除


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);

注:

  1. 唯一+非空=主键
  2. 一个表只能一个主键,但是唯一约束可以有多个

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.概念

  1. 插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的0
  2. zerofill默认为int(10)
  3. 当使用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;
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值