新睿云

> 云数据库MySQL > mysql insert into语句教程

mysql insert into语句教程

作者/来源:新睿云小编 发布时间:2019-11-15

本次我们将学习如何使用MySQL INSERT INTO SELECT语句将数据插入表中,其中数据来自SELECT语句筛选后的结果。

一、MySQL INSERT INTO SELECT概述

INSERT带有在VALUES子句中指定的列值列表的语句将一个或多个行插入表中。

INSERT INTO table_name(c1,c2,...)

VALUES(v1,v2,..);

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

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

INSERT INTO table_name(column_list)

SELECT

   select_list

FROM

   another_table

WHERE

   condition;

在此语法中,VALUES可以使用SELECT语句来代替使用子句。该SELECT语句可以从一个或多个表中检索数据。

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

二、MySQL INSERT INTO SELECT示例

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

CREATE TABLE suppliers (

    supplierNumber INT AUTO_INCREMENT,

    supplierName VARCHAR(50) NOT NULL,

    phone VARCHAR(50),

    addressLine1 VARCHAR(50),

    addressLine2 VARCHAR(50),

    city VARCHAR(50),

    state VARCHAR(50),

    postalCode VARCHAR(50),

    country VARCHAR(50),

    customerNumber INT,

    PRIMARY KEY (supplierNumber)

);

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

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

SELECT

    customerNumber,

    customerName,

    phone,

    addressLine1,

    addressLine2,

    city,

    state,

    postalCode,

    country

FROM

    customers

WHERE

    country = 'USA' AND

    state = 'CA';

MySQL INSERT INTO SELECT-要插入的客户数据

 结果1

其次,使用INSERT INTO ... SELECT语句插入谁在客户定位California USA从   customers表到   suppliers表:

INSERT INTO suppliers (

    supplierName,

    phone,

    addressLine1,

    addressLine2,

    city,

    state,

    postalCode,

    country,

    customerNumber

)

SELECT

    customerName,

    phone,

    addressLine1,

    addressLine2,

    city,

    state ,

    postalCode,

    country,

    customerNumber

FROM

    customers

WHERE

    country = 'USA' AND

    state = 'CA';

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

11 row(s) affected Records: 11  Duplicates: 0  Warnings: 0

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

SELECT * FROM suppliers;

这是展示结果:

结果2 

三、mysql插入选择示例

列表中的using SELECT语句VALUES

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

CREATE TABLE stats (

    totalProduct INT,

    totalCustomer INT,

    totalOrder INT

);

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

INSERT INTO stats(totalProduct, totalCustomer, totalOrder)

VALUES(

    (SELECT COUNT(*) FROM products),

    (SELECT COUNT(*) FROM customers),

    (SELECT COUNT(*) FROM orders)

);

在此示例中:

首先,将SELECT语句与COUNT()函数一起使用以获取总产品,员工和订单。

第二,使用从SELECT语句返回的值代替语句VALUES子句中的值INSERT。

第三,从表中查询数据stats:

SELECT * FROM stats;

结果3 

热门标签
new year
在线咨询
咨询热线 400-0505-565
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待