📜  SQL插入(1)

📅  最后修改于: 2023-12-03 15:20:19.645000             🧑  作者: Mango

SQL 插入

在关系型数据库中,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中最常用的操作之一,也是数据驱动应用程序的关键之一。