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语句有所帮助!