当前位置:   article > 正文

MySQL INSERT INTO SELECT概述_mysql insertinto select

mysql insertinto select

这个教程不错,备份一下。MySQL 教程网

在上一教程中,您学习了如何使用INSERT语句以及VALUES子句中指定的列值列表向表中插入一行或多行。

  1. INSERT INTO table_name(c1,c2,...)
  2. VALUES(v1,v2,..);
Code language: SQL (Structured Query Language) (sql)

除了在VALUES子句中使用行值之外,您还可以使用SELECT语句的结果作为INSERT语句的数据源。

下面说明了INSERT INTO SELECT语句的语法:

  1. INSERT INTO table_name(column_list)
  2. SELECT
  3. select_list
  4. FROM
  5. another_table
  6. WHERE
  7. condition;
Code language: SQL (Structured Query Language) (sql)

在此语法中,您可以使用VALUES语句,而不是使用SELECT子句。 SELECT语句可以从一个或多个表中检索数据。

当您想要将数据从其他表复制到一个表或将多个表中的数据汇总到一个表中时, INSERT INTO SELECT语句非常有用。

MySQL INSERT INTO SELECT示例

首先,创建一个名为suppliers新表

  1. CREATE TABLE suppliers (
  2. supplierNumber INT AUTO_INCREMENT,
  3. supplierName VARCHAR(50) NOT NULL,
  4. phone VARCHAR(50),
  5. addressLine1 VARCHAR(50),
  6. addressLine2 VARCHAR(50),
  7. city VARCHAR(50),
  8. state VARCHAR(50),
  9. postalCode VARCHAR(50),
  10. country VARCHAR(50),
  11. customerNumber INT,
  12. PRIMARY KEY (supplierNumber)
  13. );
Code language: SQL (Structured Query Language) (sql)

请注意,您将在后续教程中学习如何创建新表。现在,您只需执行此语句即可创建suppliers表。

假设所有来自California, USA的客户都成为该公司的供应商。以下查询查找位于美国加利福尼亚州的所有客户:

  1. SELECT
  2. customerNumber,
  3. customerName,
  4. phone,
  5. addressLine1,
  6. addressLine2,
  7. city,
  8. state,
  9. postalCode,
  10. country
  11. FROM
  12. customers
  13. WHERE
  14. country = 'USA' AND
  15. state = 'CA';
Code language: SQL (Structured Query Language) (sql)

MySQL INSERT INTO SELECT - customers data to be inserted

其次,使用INSERT INTO ... SELECT语句将客户表中位于California USA州的客户插入到suppliers customers中:

  1. INSERT INTO suppliers (
  2. supplierName,
  3. phone,
  4. addressLine1,
  5. addressLine2,
  6. city,
  7. state,
  8. postalCode,
  9. country,
  10. customerNumber
  11. )
  12. SELECT
  13. customerName,
  14. phone,
  15. addressLine1,
  16. addressLine2,
  17. city,
  18. state ,
  19. postalCode,
  20. country,
  21. customerNumber
  22. FROM
  23. customers
  24. WHERE
  25. country = 'USA' AND
  26. state = 'CA';
Code language: SQL (Structured Query Language) (sql)

它返回以下消息,表明已成功插入 11 行。

11 row(s) affected Records: 11  Duplicates: 0  Warnings: 0Code language: SQL (Structured Query Language) (sql)

第三,通过查询suppliers表中的数据来验证插入:

SELECT * FROM suppliers;Code language: SQL (Structured Query Language) (sql)

这是输出:

mysql 插入选择示例

VALUES列表中使用SELECT语句

首先,创建一个名为stats的新表:

  1. CREATE TABLE stats (
  2. totalProduct INT,
  3. totalCustomer INT,
  4. totalOrder INT
  5. );
Code language: SQL (Structured Query Language) (sql)

其次,使用INSERT语句插入来自SELECT语句的值:

  1. INSERT INTO stats(totalProduct, totalCustomer, totalOrder)
  2. VALUES(
  3. (SELECT COUNT(*) FROM products),
  4. (SELECT COUNT(*) FROM customers),
  5. (SELECT COUNT(*) FROM orders)
  6. );
Code language: SQL (Structured Query Language) (sql)

在这个例子中:

  • 首先,使用带有COUNT()函数的SELECT语句来获取产品、员工和订单的总数。
  • 其次,使用从SELECT语句返回的值代替INSERT语句的VALUES子句中的值。

三、从表stats中查询数据:

SELECT * FROM stats;Code language: SQL (Structured Query Language) (sql)

mysql插入到值列表中的选择中

在本教程中,您学习了如何使用 MySQL INSERT INTO SELECT语句将数据从结果集中插入到表中

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/840347
推荐阅读
相关标签
  

闽ICP备14008679号