您的位置 首页 教程

SQL INSERT INTO 语句

INSERT INTO 语句用于将新行插入到现有数据库表中。该语句指定要插入的列和其对应的值。INSERT INTO 语句需要指定要插入数据的表名,以及使用VALUES关键字来指定要插入的值。如果想插入多条记录,可以使用INSERT INTO与SELECT语句的组合。

SQL INSERT INTO 语句

SQL INSERT INTO 语句

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

语法如下:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

其中,INSERT INTO 指示要插入数据的表;table_name 是表的名称;column1, column2, column3 是表中要插入数据的列;value1, value2, value3 是要插入到列中的新数据。

示例:

INSERT INTO customers (customer_id, customer_name, city, country)
VALUES (1, 'Alice', 'Shanghai', 'China');

上述 SQL 语句将向名为 customers 的表中插入一行新数据。这行数据包括四列:customer_id、customer_name、city、和 country。其中,customer_id 的值为 1,customer_name 的值为 “Alice”,city 的值为 “Shanghai”,而 country 的值为 “China”。

若想插入多行数据,可以在 VALUES 关键字后添加多个值列表,用逗号分隔。

示例:

INSERT INTO customers (customer_id, customer_name, city, country)
VALUES (2, 'Bob', 'Beijing', 'China'),
       (3, 'Charlie', 'New York', 'USA');

上述 SQL 语句将向名为 customers 的表中插入两行新数据。第一行数据的值为:customer_id 为 2,customer_name 为 “Bob”,city 为 “Beijing”,country 为 “China”。第二行数据的值为:customer_id 为 3,customer_name 为 “Charlie”,city 为 “New York”,country 为 “USA”。

若想在插入数据时省略某些列,可以在列名的位置使用关键字 DEFAULT。

示例:

INSERT INTO customers (customer_id, customer_name, city)
VALUES (4, 'David', 'Tokyo');

上述 SQL 语句将向名为 customers 的表中插入一行新数据。这行数据除了 three 列的值为默认值(即 NULL)外,其他列的值均为指定的值。

除了 VALUES 关键字,还可以使用 SELECT 子句来在 INSERT INTO 语句中指定要插入的行。这通常适用于从一个表中复制数据到另一个表中。

示例:

INSERT INTO customers (customer_id, customer_name, city, country)
SELECT supplier_id, supplier_name, city, country FROM suppliers
WHERE city = 'Shanghai';

上述 SQL 语句将向名为 customers 的表中插入若干行新数据。这些数据是从名为 suppliers 的表中复制而来,其所在城市为上海。

最后,若表中已经存在某些行的主键与将插入的数据主键相同,INSERT INTO 语句将插入失败。解决此问题的方法是使用 REPLACE INTO 语句或 ON DUPLICATE KEY UPDATE 子句。

示例:

REPLACE INTO customers (customer_id, customer_name, city, country)
VALUES (1, 'Alice', 'Shanghai', 'China');

或者

INSERT INTO customers (customer_id, customer_name, city, country)
VALUES (1, 'Alice', 'Shanghai', 'China')
ON DUPLICATE KEY UPDATE customer_name = VALUES(customer_name);

上述 SQL 语句将向名为 customers 的表中插入一行新数据。这行数据的主键与表中已存在的某行主键相同。REPLACE INTO 语句将先删除此行,然后插入新数据;而 ON DUPLICATE KEY UPDATE 子句将更新已有行的数据。

关于作者: 品牌百科

热门文章