跳到主要内容

SQL插入语句(INSERT INTO)

提示
  1. INSERT INTO 语句的作用:SQL 中的 INSERT INTO 语句用于向数据库表中插入新行。
  2. INSERT INTO 语法:基本语法为 INSERT INTO table_name(column1, column2, ...) VALUES (value1, value2, ...),其中 table_name 是表名,column1, column2, ... 是列名,value1, value2, ... 是对应的值。
  3. 扩展用法:可以一次插入多行数据,或在插入时省略自动递增字段。如果在插入时跳过某些列,这些列的值将默认为 NULL,除非列设置了其他默认值或 NOT NULL 约束。

在 SQL 中,INSERT INTO 语句用于向数据库表中插入新行。

示例

INSERT INTO Customers(customer_id, first_name, last_name, age, country)
VALUES
(7, 'Ron', 'Weasley', 31, 'UK');

这里,SQL 命令将给定值的新行插入到 Customers 表中。

INSERT INTO 语法

SQL INSERT INTO 语句的语法是:

INSERT INTO table_name(column1, column2, column3, ...)
VALUES
(value11, value12, value13, ...)
(value21, value22, value23, ...)
... ;

这里,

  • table_name 是要插入行的表的名称
  • column1, column2, column3, ... 是要插入值的列的名称
  • value11, value12, value13, ...value21, value22, value23, ... 是要插入的值

向表中插入行

在 SQL 中,INSERT INTO 语句用于向数据库表中插入新的行。

例如,

INSERT INTO Customers(customer_id, first_name, last_name, age, country)
VALUES
(5, 'Harry', 'Potter', 31, 'USA');

这里,SQL 命令将给定值的新行插入到 Customers 表中。

如何在 SQL 中向表中插入行?

插入行时跳过自动递增字段

在数据库表中,ID 字段通常是唯一且自动递增的。在这种情况下,我们可以在插入行时省略该列的值。例如,

-- 跳过自动递增的 customer_id 列
INSERT INTO Customers(first_name, last_name, age, country)
VALUES
('James', 'Bond', 48, 'USA');

这里,SQL 命令自动为新行设置新的 customer_id 并将其插入表中。

如何在不指定 ID 的情况下插入行?

注意: 如果我们想从任何其他现有表中插入数据,我们可以使用 SQL INSERT INTO SELECT 语句。

SQL 中一次插入多行

也可以一次向数据库表中插入多行。例如,

VALUES
('Harry', 'Potter', 31, 'USA'),
('Chris', 'Hemsworth', 43, 'USA'),
('Tom', 'Holland', 26, 'UK');

这里,SQL 命令向 Customers 表中插入了三行。

SQL 插入主题

不指定列名插入行。

也可以在不指定列的情况下插入行中的值。例如,

INSERT INTO Customers
VALUES
(5, 'Chris', 'Evans', 42, 'USA');

这里,SQL 命令按顺序在每列中插入新行。

注意: 如果我们不指定列名,数据库表中的列顺序必须与 SQL 查询中的值顺序相匹配。我们还需要为自动递增字段提供值。

插入时不包括所有列。

如果在插入行时跳过列名,那些列的值将是 NULL

INSERT INTO Customers(first_name, last_name, age)
VALUES
('Brad', 'Pitt', 58);

这里,SQL 命令将 country 列的值设置为 NULL。然而,由于自动递增约束,customer_id 列将是递增值。

注意: 如果某列不允许 NULL 值,SQL 查询会导致错误。要了解更多

,请访问 NOT NULL 约束