MySQL - Insert Select 语句

MySQL - Insert Select 语句 首页 / MySQL入门教程 / MySQL - Insert Select 语句

有时无涯教程要将一个表的数据插入到同一数据库中的其他表中。使用插入查询手动输入这些数据并不容易。可以使用MySQL Insert在选择查询中优化此过程。它允许快速填充MySQL表。本节将介绍INSERT TO SELECT命令,语法及其用例。

语法

早些时候,无涯教程使用了INSERT命令,将单个或多个记录添加到表中,如下所示:

INSERT INTO table_name (column_list)
VALUES (value_list);

以下是显示在MySQL中使用Insert进入Select命令的基本语法。如果无涯教程想将所有数据从一个表复制到另一个表中,可以使用以下语句:

INSERT INTO table_name2
SELECT * FROM table_name1
WHERE condition;

mysql版本8.0.19 ,无涯教程可以使用 table 语句代替选择查询以获得相同的输出,如下所示:

INSERT INTO table2 TABLE table1;

在这里,表 table1 等同于从表1中选择*。当无涯教程希望将源表中的所有记录添加到目标表时,不会过滤值。

如果想将某些列从一个表中复制到另一个表,可以使用以下语句:

INSERT INTO table_name2 (column_list)
SELECT column_list 
FROM table_name1
WHERE condition;

在此语法中,无涯教程使用了SELECT语句而不是使用值子句。这里选择命令从一个或多个表中检索值。

table_name1      -  它是源表的名称。

table_name2     -  它是将复制源表数据的目标表的名称。

column_list       -  它表示表的列名。

condition            -  它用于过滤表数据。

INSERT to SELCT示例

让无涯教程了解在示例的帮助下,请在MySQL中将插入刀在MySQL中工作。首先,需要使用下面给出的语句创建一个名为" person 的表"表:

CREATE TABLE person (  
  id int AUTO_INCREMENT PRIMARY KEY,  
  name varchar(45) NOT NULL,  
  email varchar(45) NOT NULL,  
  city varchar(25) NOT NULL  
);

接下来,无涯教程将将值插入表中。可以执行以下语句以将数据添加到表中:

INSERT INTO person (id, name, email, city)   
VALUES (1,'Stephen', 'stephen@learnfk.com', 'Texas'),   
(2, 'Joseph', 'Joseph@learnfk.com', 'Alaska'),   
(3, 'Peter', 'Peter@learnfk.com', 'Texas'),
(4,'Donald', 'donald@learnfk.com', 'New York'),   
(5, 'Kevin', 'kevin@learnfk.com', 'Texas');  

无涯教程可以通过执行SELECT语句来验证数据:

SELECT * FROM person;  

执行查询后,可以看到下面的输出,有五行进入表格:

MySQL INSERT INTO SELECT

假设希望将一个人的名字插入另一个表。以下查询用于搜索位于Texas的所有人员:

SELECT name, email, city
FROM person
WHERE city = 'Texas';

现在,无涯教程将创建另一个名为 person_info 的表,该表具有相同数量的列和数据类型,以及上表的顺序:

CREATE TABLE person_info (  
  person_id int AUTO_INCREMENT PRIMARY KEY,  
  person_name varchar(45) NOT NULL,  
  email varchar(45) NOT NULL,  
  city varchar(25) NOT NULL  
);

其次,无涯教程将使用插入刀片进入Select语句,以插入位于Texas的人,从 person table 进入 person_info表:

INSERT INTO person_info (person_name, email, city)
SELECT name, email, city
FROM person
WHERE city = 'Texas';

执行此语句后,无涯教程可以使用SELECT查询验证插入操作。将获得以下产出,所有位于Texas的所有人都成功插入。

MySQL INSERT INTO SELECT

假设想要将所有人的表数据插入person_info表而不过滤任何值;无涯教程可以使用以下声明执行此操作:

INSERT INTO person_info Table person;

执行SELECT语句以验证数据。以下是输出:

链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-insert-into-select.html

来源:LearnFk无涯教程网

MySQL INSERT INTO SELECT

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

零基础学Python -〔尹会生〕

大规模数据处理实战 -〔蔡元楠〕

从0打造音视频直播系统 -〔李超〕

高并发系统设计40问 -〔唐扬〕

Electron开发实战 -〔邓耀龙〕

自动化测试高手课 -〔柳胜〕

结构思考力 · 透过结构看表达 -〔李忠秋〕

PPT设计进阶 · 从基础操作到高级创意 -〔李金宝(Bobbie)〕

AI大模型企业应用实战 -〔蔡超〕

好记忆不如烂笔头。留下您的足迹吧 :)