SQL INSERT INTO 语句详细讲解
INSERT INTO
语句在 SQL 中用于向数据库表中插入新的数据行。这条语句可以为表中的列指定具体的值,或者允许 SQL 系统为新行自动生成值(例如,自动递增的主键)。
基本语法
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
table_name
:要插入数据的表名称。column1, column2, ...
:要插入值的列名称。如果省略列名称,必须提供所有列的值,并且顺序要与表中列的顺序相匹配。value1, value2, ...
:要插入到指定列的值。
使用方法
- 插入完整的行:提供所有列的值。
- 插入部分行:只提供部分列的值,未指定的列将根据其默认值或为空填充。
- 插入多行:使用多个
VALUES
子句一次性插入多行。
代码示例
假设我们有一个名为 "Customers" 的表,该表包含了客户的信息:
+----+---------+-----------+---------------------+
| id | name | email | join_date |
+----+---------+-----------+---------------------+
| 1 | Alice | alice@example.com | 2023-10-01 |
| 2 | Bob | bob@example.com | 2023-11-01 |
+----+---------+-----------+---------------------+
示例 1:插入完整的行
INSERT INTO Customers (name, email, join_date)
VALUES ('Charlie', 'charlie@example.com', '2024-01-01');
这条语句将向 "Customers" 表中插入一个新的客户记录。
示例 2:插入部分行
如果 "email" 列没有默认值且允许为空,可以省略这个列:
INSERT INTO Customers (name, join_date)
VALUES ('David', '2024-02-01');
这条语句将插入一个名为 David 的新客户,假设 "email" 列可以为空。
示例 3:插入多行
INSERT INTO Customers (name, email, join_date)
VALUES
('Eve', 'eve@example.com', '2024-03-01'),
('Frank', 'frank@example.com', '2024-04-01');