mysql默认值
作为关系型数据库管理系统(DBMS)的一种,MySQL 是目前广泛应用的开源数据库管理系统之一。在数据库表的设计中,对于某些字段,我们可以为其设置默认值。本文将详细介绍 MySQL 中默认值的概念、用法和示例,为读者提供相关知识和使用经验。
默认值的概念
在数据库中,一个表可包含多个字段。字段是表的列,用于保存表中各条记录的不同数据。在定义每个字段时,我们可以为其指定默认值。当插入新数据时,如果没有为该字段指定具体值,系统会自动使用默认值填充。
默认值有以下特点:
1. 字段默认值是可选的,可以为每个字段指定默认值,也可以不指定。
2. 字段默认值可以是常量或表达式。
3. 在插入新数据时,如果没有为字段指定具体值,系统会自动使用默认值填充。
默认值的用法
在 MySQL 中,我们可以通过以下两种方式来为字段设置默认值:
方法一:在创建表时指定默认值
在创建表的时候,可以使用 DEFAULT
关键字为字段指定默认值。例如,创建一个名为 students
的表,包含 name
和 age
字段,age
的默认值为 18,代码如下:
CREATE TABLE students (
name VARCHAR(50) NOT NULL,
age INT DEFAULT 18
);
通过上述代码,我们创建了一个名为 students
的表,其中 name
字段是必需的,而 age
字段没有指定具体值时,默认为 18。
方法二:在插入数据时指定默认值
除了在创建表时指定默认值外,我们还可以通过在插入数据时指定默认值。例如,创建一个名为 students
的表,包含 name
和 grade
字段,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 中默认值的概念、用法和示例。通过为字段设置默认值,可以在插入新数据时自动填充这些字段,提高数据录入效率。在实际应用中,根据具体业务需求,我们可以为不同类型的字段设置不同的默认值。