mysql默认值

mysql默认值

mysql默认值

作为关系型数据库管理系统(DBMS)的一种,MySQL 是目前广泛应用的开源数据库管理系统之一。在数据库表的设计中,对于某些字段,我们可以为其设置默认值。本文将详细介绍 MySQL 中默认值的概念、用法和示例,为读者提供相关知识和使用经验。

默认值的概念

在数据库中,一个表可包含多个字段。字段是表的列,用于保存表中各条记录的不同数据。在定义每个字段时,我们可以为其指定默认值。当插入新数据时,如果没有为该字段指定具体值,系统会自动使用默认值填充。

默认值有以下特点:
1. 字段默认值是可选的,可以为每个字段指定默认值,也可以不指定。
2. 字段默认值可以是常量或表达式。
3. 在插入新数据时,如果没有为字段指定具体值,系统会自动使用默认值填充。

默认值的用法

在 MySQL 中,我们可以通过以下两种方式来为字段设置默认值:

方法一:在创建表时指定默认值

在创建表的时候,可以使用 DEFAULT 关键字为字段指定默认值。例如,创建一个名为 students 的表,包含 nameage 字段,age 的默认值为 18,代码如下:

CREATE TABLE students (
  name VARCHAR(50) NOT NULL,
  age INT DEFAULT 18
);

通过上述代码,我们创建了一个名为 students 的表,其中 name 字段是必需的,而 age 字段没有指定具体值时,默认为 18。

方法二:在插入数据时指定默认值

除了在创建表时指定默认值外,我们还可以通过在插入数据时指定默认值。例如,创建一个名为 students 的表,包含 namegrade 字段,grade 的默认值通过插入数据时指定为 “A”,代码如下:

CREATE TABLE students (
  name VARCHAR(50) NOT NULL,
  grade CHAR(1)
);

INSERT INTO students (name) VALUES ('John'), ('Alex'), ('Emily');

通过上述代码,我们创建了一个名为 students 的表,其中 name 字段是必需的,而 grade 字段在插入数据时没有指定具体值时,默认为 “A”。

默认值的示例

下面我们通过示例代码来进一步说明默认值的用法。

示例一:字符串类型的默认值

CREATE TABLE employees (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  position VARCHAR(20) DEFAULT 'Staff'
);

INSERT INTO employees (id, name) VALUES (1, 'John'), (2, 'Alex'), (3, 'Emily');

上述代码创建了一个名为 employees 的表,其中 name 字段是必需的,而 position 字段默认值为 ‘Staff’。然后,通过插入数据的方式,我们分别插入了三条记录。

执行以下 SQL 查询语句,查看表 employees 中的数据:

SELECT * FROM employees;

运行结果如下:

id name position
1 John Staff
2 Alex Staff
3 Emily Staff

可见,当没有为 position 字段指定具体值时,默认值 ‘Staff’ 被自动填充到该字段。

示例二:数值类型的默认值

CREATE TABLE products (
  id INT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  price DECIMAL(10, 2) DEFAULT 0.00
);

INSERT INTO products (id, name) VALUES (1, 'Phone'), (2, 'Laptop'), (3, 'Tablet');

上述代码创建了一个名为 products 的表,其中 name 字段是必需的,而 price 字段默认值为 0.00。通过插入数据的方式,我们分别插入了三条记录。

执行以下 SQL 查询语句,查看表 products 中的数据:

SELECT * FROM products;

运行结果如下:

id name price
1 Phone 0.00
2 Laptop 0.00
3 Tablet 0.00

可以看出,当没有为 price 字段指定具体值时,默认值 0.00 被自动填充到该字段。

示例三:时间类型的默认值

CREATE TABLE orders (
  id INT PRIMARY KEY,
  order_date DATETIME DEFAULT CURRENT_TIMESTAMP
);

INSERT INTO orders (id) VALUES (1), (2), (3);

上述代码创建了一个名为 orders 的表,其中 id 字段是必需的,order_date 字段默认值为当前时间。通过插入数据的方式,我们分别插入了三条记录。

执行以下 SQL 查询语句,查看表 orders 中的数据:

SELECT * FROM orders;

运行结果如下:

id order_date
1 2022-05-09 14:30:20
2 2022-05-09 14:30:21
3 2022-05-09 14:30:22

可见,当没有为 order_date 字段指定具体值时,默认值为当前时间被自动填充到该字段。

总结

本文详细介绍了 MySQL 中默认值的概念、用法和示例。通过为字段设置默认值,可以在插入新数据时自动填充这些字段,提高数据录入效率。在实际应用中,根据具体业务需求,我们可以为不同类型的字段设置不同的默认值。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程