MySQL默认值(DEFAULT)详解

yizhihongxing

默认值是指在创建表时,当没有为该列指定特定值时,将为该列赋予的默认值。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日

相关文章

  • mysql-8.0.19-winx64 安装

    一、首先需要到官方mysql中下载最新版mysql          解压到指定目录如:D:\WinInstall\mysql-8.0.19-winx64 这时候你需要在根目录下创建两个文件,分别是data文件夹和my.ini文件,然后使用编辑器编辑my.ini文件,并在其中添加   mysqld] # 设置3306端口 port=3306 # 设置mysq…

    MySQL 2023年4月12日
    00
  • oracle12C安装步骤(图文详解)

    这里是”oracle12C安装步骤(图文详解)”的完整攻略。 1. 下载Oracle 12c安装包 首先,你需要在Oracle官网上下载Oracle 12c的安装包。下载完毕后,解压缩到指定目录。 2. 安装JDK Oracle 12c需要JDK的支持。安装JDK的方法在这里略过,安装前需要确保已经安装了JDK,并且设置了环境变量。 3. 安装Oracle …

    database 2023年5月22日
    00
  • 销售和市场营销的区别

    销售和市场营销的区别 概述 销售和市场营销是商业运营中的两个重要方面,这两个概念通常被人们混淆和误解。虽然它们有相似的目标,都是促进销售和增加利润,但它们的方法和策略有很大的不同。 销售 销售通常是指商业中一种短期的积极性活动,其目的是将产品或服务卖给目标客户。销售过程主要包括了以下几个步骤: 定位潜在客户 建立联系,促进客户与销售人员之间的交流 展示产品或…

    database 2023年3月27日
    00
  • 最全阿里面试题合集118道+答案(阿里技术专家分享)

    首先,这是一个阿里面试题的合集,包含了118道题目和对应的答案。这个合集中的问题涵盖了阿里巴巴的各个技术岗位,从算法和数据结构到操作系统和网络编程等各个方面。但是,这里需要注意的是,这个合集并不是阿里官方出品的面试题库,只是一些技术专家自己总结的样例题目。 那么,对于准备去阿里面试的同学来说,这个合集可以提供一些参考和练习用的例题,但并不能代替对于基础知识和…

    database 2023年5月22日
    00
  • OL7.6上RPM方式安装Oracle 19c的教程

    下面我会详细讲解在OL 7.6操作系统上使用RPM方式安装Oracle 19c的完整攻略。 前置条件 在开始安装之前,需要确保以下前置条件已经满足: 已安装OL 7.6操作系统 已配置yumd源并且可以正常连接互联网 已安装unzip命令并确保其可以被使用 已安装wget命令并确保其可以被使用 确认服务器的操作系统内核版本符合Oracle 19c的要求,具体…

    database 2023年5月22日
    00
  • sql 数据库出现“只读”提示 解决方法 (sql 错误 5120)

    当 SQL 数据库出现 “只读” 提示时,意味着数据库不再允许写入操作。此时,任何写入操作都会失败,因此需要解决这个问题。提示中的错误码 5120,通常表示数据库的权限问题。下面是完整攻略: 1. 检查文件权限 首先,需要检查数据文件的权限是否正确。可通过以下步骤进行操作: 打开 Windows 资源管理器。 找到数据文件所在的目录,右键点击该文件,选择 “…

    database 2023年5月21日
    00
  • Mysql数据库中datetime、bigint、timestamp来表示时间选择,谁来存储时间效率最高

    Mysql数据库中datetime、bigint、timestamp都可以用来存储时间,但它们有不同的特征和适用场景,效率也不同。 datetime: datetime是Mysql用来存储日期和时间的一种数据类型,占用8个字节,可以表示的时间范围大约为1000至9999年,精度为秒。datetime类型存储时间的优点在于精度高,可以精确到秒。缺点在于存储空间…

    database 2023年5月22日
    00
  • redis——队列

    Posted on 2012-02-29 最近忙着用Redis实现一个消息通知系统,今天大概总结了一下技术细节,其中演示代码如果没有特殊说明,使用的都是PhpRedis扩展来实现的。   内存 比如要推送一条全局消息,如果真的给所有用户都推送一遍的话,那么会占用很大的内存,实际上不管粘性有多高的产品,活跃用户同全部用户比起来,都会 小很多,所以如果只处理登录…

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