mysql insert select
数据库的插入与查询是数据库操作中最基本也是最常用的两个功能。MySQL 是一种常用的关系型数据库管理系统,提供了丰富的插入和查询功能。本文将详解 MySQL 中的插入与查询操作。
插入数据
在 MySQL 中插入数据可以使用 INSERT INTO 语句。下面是 INSERT INTO 语句的基本格式:
INSERT INTO 表名 (列1, 列2, 列3, ...) VALUES (值1, 值2, 值3, ...);
在插入数据时,需要指定要插入的表名、列名和对应的值。例如,我们有一个名为 student
的表,该表有 id
, name
, age
三个列,我们可以通过以下语句插入一条数据:
INSERT INTO student (id, name, age) VALUES (1, 'John', 20);
上述语句将在 student
表中插入新的一行数据,其中 id 为 1,name 为 ‘John’,age 为 20。
如果我们要插入多条数据,可以在 VALUES 后面添加多个以逗号分隔的值组合。例如,在 student
表中插入两条数据可以使用如下语句:
INSERT INTO student (id, name, age) VALUES (2, 'Alice', 22), (3, 'Bob', 21);
上述语句将在 student
表中插入两行数据,第一行数据的 id 为 2,name 为 ‘Alice’,age 为 22;第二行数据的 id 为 3,name 为 ‘Bob’,age 为 21。
除了直接指定列和值的方式插入数据外,还可以使用 SELECT 语句插入数据。
从查询结果插入数据
MySQL 允许我们使用 SELECT 语句的结果插入数据,这样可以方便地将一个表中的数据插入到另一个表中。
使用 SELECT 插入数据的语法如下:
INSERT INTO 目标表 (列1, 列2, 列3, ...) SELECT 列1, 列2, 列3, ... FROM 源表 WHERE 条件;
其中,目标表是要插入数据的表,列1, 列2, 列3, … 是目标表对应的列,源表是 SELECT 语句的查询结果的来源表,WHERE 子句是可选的,用于筛选需要插入的数据。
以下是一个示例,将一个表中的数据插入到另一个表中:
首先,我们创建一个名为 source
的表,并插入一些数据:
CREATE TABLE source (
id INT,
name VARCHAR(20),
age INT
);
INSERT INTO source (id, name, age) VALUES (1, 'John', 20);
INSERT INTO source (id, name, age) VALUES (2, 'Alice', 22);
INSERT INTO source (id, name, age) VALUES (3, 'Bob', 21);
接下来,我们创建一个名为 target
的表,结构与 source
表相同:
CREATE TABLE target (
id INT,
name VARCHAR(20),
age INT
);
使用 SELECT 插入数据到 target
表:
INSERT INTO target (id, name, age) SELECT id, name, age FROM source;
上述语句将把 source
表中的所有数据插入到 target
表中。
我们可以使用 SELECT 语句查询 target
表来验证插入结果:
SELECT * FROM target;
输出应为:
+------+-------+-----+
| id | name | age |
+------+-------+-----+
| 1 | John | 20 |
| 2 | Alice | 22 |
| 3 | Bob | 21 |
+------+-------+-----+
总结
本文详细介绍了 MySQL 中的插入与查询操作。我们可以使用 INSERT INTO 语句直接插入数据,也可以使用 SELECT 语句的结果插入数据。插入与查询是数据库操作中最常用的两个功能,掌握好这两个操作能够更好地利用数据库实现数据的增加和获取。