您现在的位置是:首页 >技术教程 >数据库----------唯一约束、默认约束、零填充约束网站首页技术教程
数据库----------唯一约束、默认约束、零填充约束
                简介数据库----------唯一约束、默认约束、零填充约束            
            目录
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;
                风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。
        
    
        
    
            




U8W/U8W-Mini使用与常见问题解决
QT多线程的5种用法,通过使用线程解决UI主界面的耗时操作代码,防止界面卡死。...
stm32使用HAL库配置串口中断收发数据(保姆级教程)
分享几个国内免费的ChatGPT镜像网址(亲测有效)
Allegro16.6差分等长设置及走线总结