📅  最后修改于: 2023-12-03 15:20:19.645000             🧑  作者: Mango
在关系型数据库中,SQL 插入是一种常见的操作,可以使用INSERT INTO语句将数据插入到数据库表中。本文将介绍SQL插入的各种用法,包括:
插入单行数据是最简单也是最经常使用的操作之一。下面是插入单行数据的一般语法:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);
其中,table_name是要插入数据的表名;column1, column2, column3,...是要插入数据的列名;value1, value2, value3,...是要插入的值。
例如,以下代码将向名为“employees”的表中插入一行数据:
INSERT INTO employees (first_name, last_name, department, salary)
VALUES ('John', 'Doe', 'Marketing', 50000);
这将插入一个名为John Doe、所在部门是市场营销、年薪为50000美元的新雇员记录。
值得注意的是,如果要插入的列是自动增量的,则可以省略列名,如下所示:
INSERT INTO employees
VALUES (NULL, 'Jane', 'Smith', 'IT', 60000);
这将为ID列自动分配一个值,并将其余列设置为指定的值。
有时候,需要一次性向表中插入多个记录。可以使用多个INSERT INTO语句,但这种做法有点笨重。更好的方法是使用INSERT INTO SELECT语句,如下所示:
INSERT INTO table_name (column1, column2, column3,...)
SELECT value1, value2, value3,...
FROM another_table_name
WHERE condition;
其中,table_name是要插入数据的表名;column1, column2, column3,...是要插入数据的列名;another_table_name是另一个表的名称,为插入数据提供数据源;condition是检索结果的过滤条件。
例如,以下代码将向名为“employees”的表中插入名为“Marketing”的所有员工的记录:
INSERT INTO employees (first_name, last_name, department, salary)
SELECT first_name, last_name, department, salary
FROM emp_details
WHERE department = 'Marketing';
这将在名为“employees”的表中插入一个或多个名为“Marketing”的员工记录。
有时候,只需要插入部分数据,而不是全部数据。这可以使用部分列名的INSERT INTO语句实现,如下所示:
INSERT INTO table_name (column1, column2, column3,...)
VALUES (value1, value2, value3,...);
例如,以下代码将向名为“employees”的表中插入一个名为John Doe、所在部门是市场营销的新雇员记录:
INSERT INTO employees (first_name, last_name, department)
VALUES ('John', 'Doe', 'Marketing');
这将自动分配一个ID值和默认的薪水值,因为这些列没有在INSERT INTO语句中指定。
使用INSERT INTO SELECT语句可以将检索结果插入到另一个表中,如下所示:
INSERT INTO table1 (column1, column2, column3,...)
SELECT column1, column2, column3,...
FROM table2
WHERE condition;
其中,table1是要插入数据的表名,column1, column2, column3,...是要插入数据的列名,table2是另一个表的名称,提供插入数据源,condition是检索结果的过滤条件。
例如,以下代码将从名为“employees”的表中检索部门为“Marketing”的所有员工记录,并将它们插入到名为“marketing_employees”的新表中:
CREATE TABLE marketing_employees AS
SELECT first_name, last_name, department, salary
FROM employees
WHERE department = 'Marketing';
这将在数据库中创建一个新表,并将检索到的所有名为“Marketing”的员工记录插入到该表中。
以上就是SQL插入的各种用法。INSERT INTO语句是SQL中最常用的操作之一,也是数据驱动应用程序的关键之一。