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 的会话)。
不复杂但容易忽略。










