麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
517
2023-07-03
MySQL约束之默认约束default与零填充约束zerofill怎么实现
默认约束
MySQL 默认值约束用来指定某列的默认值。
添加默认约束
方式1: <字段名> <数据类型> default <默认值>;方式2: alter table 表名 modify 列名 类型 default 默认值;
create table t_user10 (id int ,name varchar(20) ,address varchar(20) default ‘北京' -- 指定默认约束);登录后复制
-- 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 ‘北京';登录后复制
删除默认约束
-- alter table <表名> modify column <字段名> <类型> default null;alter table t_user11 modify column address varchar(20) default null;登录后复制
零填充约束
1、插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的02、zerofill默认为int(10)3、当使用zerofill 时,默认会自动加unsigned(无符号)属性,使用unsigned属性后,数值范围是原值的2倍,例如,有符号为-128~+127,无符号为0~256。
比如:现在设置某个字段的长度为5,那么真实数据是1,那么显示在你的数据库的是00001;
create table t_user12 (id int zerofill , -- 零填充约束name varchar(20));登录后复制
alter table t_user12 modify id int;登录后复制
-- 1. 添加约束create table t_user12 (id int zerofill , -- 零填充约束name varchar(20));insert into t_user12 values(123, '张三');insert into t_user12 values(1, '李四');insert into t_user12 values(2, '王五');登录后复制
总结
前面我们学习了很多的约束,这里这一个大致的总结,我们需要根据自己的应用场景去设置这些约束,最终才可以达到我们的日常需求:
-- 总结-- 1:通过修改表结构添加主键约束create table emp4(eid int primary key,name varchar(20),deptId int,salary double);-- 2:添加自增正约束create table t_user1 (id int primary key auto_increment,name varchar(20));-- 3:创建非空约束create table mydb1.t_user6 (id int ,name varchar(20) not null, -- 指定非空约束address varchar(20) not null -- 指定非空约束);-- 4:创建唯一约束create table t_user8 (id int ,name varchar(20) ,phone_number varchar(20) unique -- 指定唯一约束);-- 5:创建默认约束create table t_user10 (id int ,name varchar(20) ,address varchar(20) default '北京' -- 指定默认约束);登录后复制
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。