MySQL CRUD(增删改查)是数据库操作中的基础且核心的功能,涵盖了数据的创建(Create)、读取(Retrieve)、更新(Update)和删除(Delete)四个基本动作。
插入数据 INSERT INTO
在 MySQL 中可以使用INSERT
语句向数据库已有的表中插入一行或者多行元组数据。INSERT语句分别有两种形式,分别为INSERT...VALUES
和 INSERT...SET
当使用单条 INSERT
语句插入多行数据的时候,只需要将每行数据用圆括号括起来即可。
max_allowed_packet
在 MySQL 中,用单条 INSERT
语句处理多个插入要比使用多条 INSERT 语句更快。当插入大量数据时,若 INSERT
的占用大于max_allowed_packet
时,会发生错误
使用下列语句获取、设置 max_allowed_packet
的值:
#获取 (单位为bytes)
SHOW VARIABLES LIKE 'max_allowed_packet';
#设置
SET GLOBAL max_allowed_packet = Size;
max_allowed_packet 对于 INSERT INTO … SELECT 语句无影响,该语句能添加任意数量的数据。
INSERT INTO … VALUES 语句
语法格式:
INSERT INTO table_name
[column1, column2, ...] VALUES
(value1, value2, ...)
- 若向表中每个列都插入数据,列名可省略。
value
与column
一 一对应插入- 非空的字段必须在插入数据时提供值
- 每执行一次 INSERT 语句,被[[主键约束#AUTO_INCREMENT|AUTO_INCREMENT]]修饰的字段值就会自动加一
插入默认值
在插入数据时,若需要将默认值插入到字段中,可以使用 DEFAULT
关键字
INSERT INTO table_name
VALUES ('value1', DEFAULT);
插入日期
向字段插入日期数据时,可以使用 YYYY-MM-DD
的形式,也可以使用
CURRENT _DATE()
函数来显示当前的日期
INSERT INTO table_name
VALUES ("2023-09-30", CURRENT_DATE());
INSERT INTO … SET 语句
语法格式:
INSERT INTO table_name
SET <column1> = <value1>,
<column2> = <value2>,
...;
此语句用于直接给表中的某些列指定对应的列值,即要插入的数据的列名在 SET
子句中指定,对于未指定的列,列值会指定为该列的默认值。
INSERT INTO … SELECT 语句
向表中插入数据,不仅可以使用 VALUES
、SET
关键字添加数据,还可以
将SELECT 语句的查询结果,将一个或多个其他表的数据,添加到表中:
INSERT INTO table_name