MYSQL 从表插入另一张表
在数据库中,我们经常需要从一张表中获取数据,并将其插入到另一张表中。这种操作可以通过MYSQL的INSERT INTO SELECT语句来实现。本文将介绍如何使用该语句来插入数据,并给出代码示例。
INSERT INTO SELECT 语句
INSERT INTO SELECT语句可以将一张表的数据插入到另一张表中。其基本语法如下所示:
INSERT INTO 表名 (列1, 列2, 列3, ...)
SELECT 列1, 列2, 列3, ...
FROM 源表名
WHERE 条件;
其中,表名
是要插入数据的目标表的名称,列1, 列2, 列3, ...
是要插入的目标列的名称,源表名
是要获取数据的源表的名称,条件
是获取数据的条件。
代码示例
为了演示INSERT INTO SELECT语句的使用,我们假设有两张表:表A
和表B
。表A
中包含了员工的姓名和年龄信息,表B
中包含了员工的姓名、年龄和工资信息。我们需要将表A
中的员工信息插入到表B
中。
首先,我们需要创建这两张表:
-- 创建表A
CREATE TABLE 表A (
姓名 VARCHAR(20),
年龄 INT
);
-- 创建表B
CREATE TABLE 表B (
姓名 VARCHAR(20),
年龄 INT,
工资 INT
);
接下来,我们向表A
中插入一些员工数据:
-- 向表A中插入数据
INSERT INTO 表A (姓名, 年龄)
VALUES ('张三', 25), ('李四', 30), ('王五', 35);
现在,我们可以使用INSERT INTO SELECT语句将表A
中的员工信息插入到表B
中:
-- 将表A中的员工信息插入到表B中
INSERT INTO 表B (姓名, 年龄, 工资)
SELECT 姓名, 年龄, 0
FROM 表A;
在上面的示例中,我们将表A
中的姓名和年龄信息插入到了表B
中,并为工资列设置了默认值0。你可以根据实际情况修改该语句。
类图
下面是表A
和表B
的类图:
classDiagram
class 表A {
姓名
年龄
}
class 表B {
姓名
年龄
工资
}
表A "1" --> "0..*" 表B
旅行图
下面是从表A
到表B
的旅行图:
journey
title 从表A插入表B
section 插入数据
表A --> 表B : INSERT INTO SELECT
end
结论
通过使用MYSQL的INSERT INTO SELECT语句,我们可以轻松地将一张表的数据插入到另一张表中。这种操作可以很方便地用于数据的迁移、复制和合并等场景。在实际应用中,你可以根据自己的需求对INSERT INTO SELECT语句进行灵活的调整和扩展。
希望本文对你理解和使用MYSQL的INSERT INTO SELECT语句有所帮助!