MySQL 插入单条数据推荐用 INSERT INTO 表名 (字段 1, 字段 2,…) VALUES(值 1, 值 2,…);字符串加单引号,数字不加引号,空值写 NULL;自增主键可省略或写 NULL/DEFAULT。

在 MySQL 中插入单条数据,最基础、最常用的写法是使用 INSERT INTO … VALUES 语句。只要表结构明确、字段类型匹配,一行 SQL 就能完成插入。
基本语法格式
标准写法有两种常用形式,推荐显式指定字段名:
- 带字段名(推荐):INSERT INTO 表名 (字段 1, 字段 2, …) VALUES (值 1, 值 2, …);
- 不带字段名(需严格按表顺序):INSERT INTO 表名 VALUES (值 1, 值 2, …);
带字段名更安全:避免因表结构变更或字段顺序调整导致插入错位,也方便他人阅读和后期维护。
字符串、数字、NULL 的写法注意
MySQL 对不同数据类型有明确的书写要求:
- 字符串(如 VARCHAR、TEXT)必须用单引号 ‘ ‘ 包裹,例如 ‘ 张三 ’、‘2024-06-01’;双引号在标准模式下不推荐,可能触发 SQL 模式警告。
- 数字(如 INT、DECIMAL)直接写,不用引号,例如 25、99.5。
- 插入空值用 NULL(不加引号),前提是该字段允许为 NULL;若字段设为 NOT NULL 且无默认值 ,必须提供有效值,否则报错。
自动递增主键怎么处理?
如果表的主键是 AUTO_INCREMENT(如 id INT PRIMARY KEY AUTO_INCREMENT),插入时可主动赋值,也可让 MySQL 自动分配:
- 让 MySQL 自增:在字段列表中 ** 不包含该字段 **,或对应位置写 NULL 或 DEFAULT(如 INSERT INTO user (id, name) VALUES (NULL, ‘ 李四 ’);)。
- 手动指定:直接写具体数字(需确保不重复且符合约束),例如 INSERT INTO user (id, name) VALUES (100, ‘ 王五 ’);。
执行后怎么看是否成功?
执行成功时,MySQL 客户端通常返回类似 Query OK, 1 row affected 的提示,表示影响了 1 行数据。可通过以下方式进一步确认:
- 立即查刚插的数据:SELECT * FROM 表名 ORDER BY 主键 DESC LIMIT 1;
- 查看自增 ID 当前值:SELECT LAST_INSERT_ID();(适用于刚执行过 INSERT 的会话)。
不复杂但容易忽略。