MySQL默认值(DEFAULT)详解

默认值是指在创建表时,当没有为该列指定特定值时,将为该列赋予的默认值。MySQL支持为列设置默认值,并且默认为NULL或特定值。可以设置DEFAULT关键字来指定默认值,并且可以使用函数、表达式等方式为此指定默认值。

在MySQL中,DEFAULT 关键字用于设置默认值。有两种方式设置默认值:设置常数或使用函数或表达式。

设置常数作为默认值:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT DEFAULT 18,
    sex VARCHAR(10) DEFAULT 'male'
);

使用函数或表达式作为默认值:

CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(255) NOT NULL,
    age INT DEFAULT (YEAR(CURRENT_DATE) - YEAR(birthday)),
    sex VARCHAR(10) DEFAULT (CASE WHEN gender = 'M' THEN 'male' ELSE 'female' END)
);

在这个例子中,我们使用表达式和函数来计算默认值。在AGE列中,使用YEAR函数和CURRENT_DATE函数计算年龄,并将该值作为默认值。在SEX列中,使用CASE语句根据性别值为每个行设置默认值。

如果要更改现有的表的默认值,可以使用ALTER TABLE语句:

ALTER TABLE employees MODIFY age INT DEFAULT 21;

这将为“age”列设置新的默认值。

总之,MySQL的默认值可以尽可能的减少重复代码并且简化开发工作。它可以使用常数、函数和表达式来指定列的默认值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:MySQL默认值(DEFAULT)详解 - Python技术站

(0)
上一篇 2023年3月9日
下一篇 2023年3月9日

相关文章

  • Linux安装PHP MongoDB驱动

    下面是Linux安装PHP MongoDB驱动的完整攻略: 步骤一:安装pecl工具 sudo apt install php-pear 步骤二:安装MongoDB驱动 sudo pecl install mongodb 步骤三:修改PHP配置文件 在/etc/php/7.x/cli/conf.d目录下新建20-mongodb.ini文件(注意7.x应该写入…

    database 2023年5月22日
    00
  • 解压版MYSQL安装及遇到的错误及解决方法

    解压版MYSQL安装和遇到的错误及解决方法 安装步骤 下载解压版的MySQL安装包,官方地址:https://dev.mysql.com/downloads/mysql/ 将压缩包解压到指定目录中,如:D:\mysql 进入MySQL目录,在该目录下新建my.ini文件,并添加以下内容: ini [mysqld] # 设置MySQL安装目录 basedir=…

    MySQL 2023年5月18日
    00
  • 列出SQL Server中具有默认值的所有字段的语句

    要列出 SQL Server 数据库中具有默认值的所有字段,可以使用以下两种方法。 方法一:查询系统表 sys.columns 可以通过查询系统表 sys.columns,以获取具有默认值的列信息。 SELECT OBJECT_SCHEMA_NAME(c.object_id) AS [Schema], OBJECT_NAME(c.object_id) AS …

    database 2023年5月21日
    00
  • mysql连接查询详解

    MySQL连接查询详解 MySQL连接查询(JOIN)是最常用的查询类型之一,用于将两个或多个表中的数据进行关联和组合。本文将详细介绍MySQL连接查询的类型和使用方法,以及示例说明,帮助读者更深入地了解连接查询的使用。 连接查询类型 MySQL连接查询主要有以下几种类型: 内连接(INNER JOIN):只返回两个表中匹配的行。 左连接(LEFT JOIN…

    database 2023年5月22日
    00
  • MySQL 5.7新特性介绍

    MySQL 5.7新特性介绍 MySQL 5.7是一款经过大量优化和改进的版本,它带来了许多新的特性。本文将介绍其中的一些更为重要的特性。 更好的性能 InnoDB引擎优化 在MySQL 5.7中,InnoDB存储引擎进行了大量的优化和改进,这些改进使得InnoDB在性能和可伸缩性方面都比以前版本更加优秀。 多线程复制 MySQL 5.7的复制机制现在支持多…

    MySQL 2023年5月19日
    00
  • 【SpringBoot】整合Redis实战

    ========================9、SpringBoot2.x整合Redis实战 ================================   1、分布式缓存Redis介绍 简介:讲解为什么要用缓存和介绍什么是Redis,新手练习工具 通过缓存减少数据库访问,提高访问速度 1、redis官网 https://redis.io/down…

    Redis 2023年4月13日
    00
  • Mysql写入数据十几秒后被自动删除了如何解决

    问题说明: 在使用Mysql时,有时会出现写入数据成功,但是过了十几秒后数据却自动被删除的情况。这种问题可能是由于Mysql有一个默认设置,在某些情况下会自动回滚事务,导致数据被删除。此时可以通过更改Mysql的设置来解决这个问题。 解决步骤: 编辑Mysql配置文件 首先需要编辑Mysql的配置文件my.cnf。找到[mysqld]部分,将innodb_r…

    database 2023年5月22日
    00
  • python对redis的连接和操作

    一、redis   redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作…

    Redis 2023年4月11日
    00
合作推广
合作推广
分享本页
返回顶部