MySQL INSERT INTO语句中SELECT和VALUES子句的组合使用方法

MySQL INSERT INTO语句中SELECT和VALUES子句的组合使用方法

在本文中,我们将介绍MySQL中INSERT INTO语句中SELECT和VALUES子句的组合使用方法。INSERT INTO语句用于在数据库表中插入新的记录。通过使用SELECT和VALUES子句,我们可以根据已有的数据或者直接指定的值,插入新的记录。

阅读更多:MySQL 教程

INSERT INTO … SELECT

首先我们来看一下INSERT INTO和SELECT子句的基本用法。INSERT INTO语句用于插入一条或者多条记录到一个已存在的表中。而SELECT子句则用于选择一些记录,这些记录将被插入到目标表中。下面是INSERT INTO … SELECT子句的语法:

INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM source_table
WHERE condition;
  • table_name:插入记录的目标表名;
  • column1, column2, ...:要插入记录的目标表的列名;
  • source_table:从中选择记录的源表名;
  • condition:可选的条件,用于过滤源表中的记录。

示例:

假设我们有一个名为students的表,其中包含id, name, age三个列。现在我们想要从另一个表temp_students中选择年龄大于18岁的学生,并将他们插入到students表中。可以使用以下SQL语句完成:

INSERT INTO students (id, name, age)
SELECT id, name, age
FROM temp_students
WHERE age > 18;

执行以上语句后,temp_students表中年龄大于18岁的学生将被插入到students表中。

INSERT INTO … VALUES

接下来我们来看一下INSERT INTO语句中VALUES子句的用法。VALUES子句用于插入一个或者多个记录,这些记录的值由用户直接指定。下面是INSERT INTO … VALUES子句的语法:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...), (value1, value2, ...), ...;
  • table_name:插入记录的目标表名;
  • column1, column2, ...:要插入记录的目标表的列名;
  • value1, value2, ...:插入记录的值,与列对应。

示例:

假设我们有一个名为products的表,其中包含id, name, price三个列。我们可以使用以下SQL语句将一些初始的产品数据插入到products表中:

INSERT INTO products (id, name, price)
VALUES (1, 'Apple', 2.5), (2, 'Banana', 1.8), (3, 'Orange', 3.0);

执行以上语句后,三条产品记录将被插入到products表中。

INSERT INTO … SELECT & VALUES

有时候,我们希望将INSERT INTO和SELECT、VALUES子句结合使用,以便根据已有的数据或者直接指定的值,插入新的记录。以下是INSERT INTO … SELECT & VALUES的语法:

INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM source_table
WHERE condition
VALUES (value1, value2, ...), (value1, value2, ...), ...;

示例:

假设我们有一个名为orders的表,其中包含id, product_name, quantity, price四个列。现在我们想要从另一个表products中选择价格低于2.0的产品,并为每个产品插入一个初始订单记录。可以使用以下SQL语句完成:

INSERT INTO orders (id, product_name, quantity, price)
SELECT id, name, 1, price
FROM products
WHERE price < 2.0
VALUES (4, 'Pear', 1, 2.2), (5, 'Grapes', 2, 1.5);

执行以上语句后,products表中价格低于2.0的产品将被插入到orders表中,并为每个产品插入一个初始订单记录。

总结

在本文中,我们介绍了MySQL中INSERT INTO语句中SELECT和VALUES子句的组合使用方法。通过使用INSERT INTO … SELECT子句,我们可以根据已有的数据插入新的记录。而通过使用INSERT INTO … VALUES子句,我们可以直接指定值插入新的记录。同时,我们还展示了如何将INSERT INTO和SELECT、VALUES子句结合使用,以实现更灵活的记录插入操作。

总而言之,使用MySQL的INSERT INTO语句中的SELECT和VALUES子句的组合,可以提供多种灵活的方式来插入新的记录,无论是根据已有的数据还是直接指定的值。熟练掌握这种组合使用方式,将在实际开发中帮助我们更高效地处理数据的插入需求。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程