MySQL约束-默认约束(default)、零填充约束(zerofill)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: MySQL约束-默认约束(default)、零填充约束(zerofill)

默认约束

MySQL 默认值约束用来指定某列的默认值。

添加默认约束

方式1<字段名><数据>default<默认>;

方式2: altertable表名 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、插入数据时,当该字段的值的长度小于定义的长度时,会在该值的前面补上相应的0

2、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, '王五');


image.png

总结

前面我们学习了很多的约束,这里这一个大致的总结,我们需要根据自己的应用场景去设置这些约束,最终才可以达到我们的日常需求:


-- 总结
-- 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 '北京' -- 指定默认约束 
);
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
关系型数据库 MySQL 数据库
MySQL数据库——约束
MySQL数据库——约束
|
3月前
|
SQL 关系型数据库 MySQL
mysql使用default给列设置默认值的问题
mysql使用default给列设置默认值的问题
34 0
|
1月前
|
SQL 关系型数据库 MySQL
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
【MySQL 数据库】2、MySQL 的数据控制语言、函数和约束
31 0
|
4月前
|
存储 关系型数据库 MySQL
12:企业规范约束-MySQL
12:企业规范约束-MySQL
39 0
|
2月前
|
关系型数据库 MySQL Docker
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
MySQL 5.7 timestamp类型设置default value为'0000-00-00 00:00:00'报错的解决方法
|
23天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
23天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
1月前
|
存储 关系型数据库 MySQL
【mysql】—— 表的约束
【mysql】—— 表的约束
|
2月前
|
存储 关系型数据库 MySQL
MySQL技能完整学习列表5、数据库操作——3、索引(Indexing)——4、约束(Constraints)
MySQL技能完整学习列表5、数据库操作——3、索引(Indexing)——4、约束(Constraints)
38 0
|
3月前
|
存储 SQL 关系型数据库