首页 > 数据库 >MySQL的默认值约束(Default),数据库设计必备

MySQL的默认值约束(Default),数据库设计必备

时间:2022-10-31 10:36:11浏览次数:63  
标签:city Default demo COLUMN DEFAULT user MySQL 默认值

一、默认值约束简介

默认值(Default)的完整称呼是默认值约束(Default Constraint)。 MySQL 默认值约束用来指定某列的默认值。

例如女性员工较多,性别就可以默认为“女”。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为“女”。

二、在创建表时设置默认值约束

创建表时可以使用 DEFAULT 关键字设置默认值约束,具体的语法规则如下:

<字段名> <数据类型> DEFAULT <默认值>;

示例1,创建数据表 demo_user,指定sex性别默认为女,city城市默认为北京。

drop table if exists demo_user;
create table if not exists demo_user(
id int(11) primary key,
sex varchar(3) DEFAULT '女',
city varchar(10) DEFAULT '北京'
);

-- 插入测试数据
insert into demo_user(id) values(1);
insert into demo_user(id,sex) values(2,'男');
insert into demo_user(id,city) values(3,'上海');
-- 查询结果
select * from demo_user;

结果如下,所有的sex和city字段,没有设定要插入的数据的情况下,就会采用默认值存储。

MySQL的默认值约束(Default),数据库设计必备_默认值

三、在修改表时添加默认值约束

有两种语法,分别是CHANGE和MODIFY子句。

ALTER TABLE <数据表名>
MODIFY COLUMN <字段名> <数据类型> DEFAULT <默认值>;
ALTER TABLE <数据表名>
CHANGE COLUMN <原字段名> <新字段名> <数据类型> DEFAULT <默认值>;

示例2,修改数据表 demo_user,city城市默认为天津。

--  使用CHANGE子句
alter table demo_user CHANGE COLUMN city city varchar(10) DEFAULT '天津';
-- 使用MODIFY子句
alter table demo_user MODIFY COLUMN city varchar(10) DEFAULT '天津';
insert into demo_user(id) values(4);
select * from demo_user;

运行结果如下,默认值变为天津。

MySQL的默认值约束(Default),数据库设计必备_默认值_02

四、删除默认值约束

修改表时删除默认值约束的语法规则如下:

ALTER TABLE <数据表名>
CHANGE COLUMN <字段名> <字段名> <数据类型> DEFAULT NULL;

示例3,修改数据表 demo_user,将city字段默认值设置为null,对于非空字段依然可以这样设置。

alter table demo_user MODIFY COLUMN city varchar(10) DEFAULT NULL;

标签:city,Default,demo,COLUMN,DEFAULT,user,MySQL,默认值
From: https://blog.51cto.com/yinhongliang/5808578

相关文章

  • mysql主从同步单点故障
    请问Mysql主从同步问题mysql主从同步的步骤一、主机环境master操作系统:rhel6.0IP:172.16.0.100MySQL版本:5.1.47www.2cto.comslave操作系统:rhel6.0IP:172.16.0.200MySQL版本:5.1......
  • mysql主从同步延迟怎么解决
    mysql主从同步是一直进行的吗有两种方法,一种方法使用mysql的checktable和repairtable的sql语句,另一种方法是使用MySQL提供的多个myisamchk,isamchk数据检测恢复工具。前者使......
  • MySQL的主键(PRIMARY KEY),重要性太高
    一、什么是主键主键(PRIMARYKEY)的又叫做“主键约束”,MySQL主键约束是一个单独的列或者多个列的组合,其值能唯一地标识表中的一行数据。这样的一列或多列称为表的主键,通过它......
  • MySQL的外键约束(FOREIGN KEY),有点小复杂
    一、什么是参照完整性在学习外键之前,我们必须先搞懂一个概念,什么是“参照完整性”。参照的关系中的属性值必须能够在被参照关系找到或者取空值,否则不符合数据库的语义。在实......
  • mysql主从复制三个线程
    mysql主从同步很慢查看是io还是sql经过分析,业务那边在删除一个大表数据,从库单线程处理不过来,且io性能也比较低,造成堆积[mysql@mysql192-168-0-36/data/mysqldata1/relaylog......
  • MySQL数据库的唯一性约束(UNIQUE)
    一、数据库表的唯一性约束是什么MySQL唯一约束(UniqueKey)要求被约束的列中的数据唯一,允许为NULL,但只能出现一个NULL值。唯一约束可以确保一列或者几列不出现重复值。二、如......
  • MySQL的唯一约束(Unique Key),数据库设计必备
    一、数据库表的唯一性约束是什么MySQL唯一约束(UniqueKey)要求被约束的列中的数据唯一,允许为NULL,但只能出现一个NULL值。唯一约束可以确保一列或者几列不出现重复值。二、如......
  • MySQL优点你能说出来几个
    MySQL有诸多特点,你能说出来几个呢?MySQL体积很小(相对于Oracle小的太多了),并且执行速度快,性能高。最重要的是开源免费、成本极低,这也是MySQL流行的最重要原因。MySQL是使⽤C和C......
  • 命令行登录MySQL
    我用工具怎么连接不上mysql数据库的?不是提示了么:不是自己开的服务端不能连接。试着用mysql的命令行连接一下,根据相关的提示进行处理。一般要开放所需要的端口,设置用户的远......
  • MySQL的检查约束(Check),其实什么用也没有
    一、检查约束简介在标准SQL中,检查约束(CHECK)可以通过CREATETABLE或ALTERTABLE语句实现,根据用户实际的完整性要求来定义。例如限定某一列必须大于10小于20,限定某一列只......