MySQL SELECT INTO INSERT INTO

介绍

在MySQL中,我们经常需要从一个表中选择数据,并将这些数据插入到另一个表中。为了方便起见,MySQL提供了SELECT INTO INSERT INTO语句,它可以一次完成这两个操作。本文将介绍如何使用SELECT INTO INSERT INTO语句,并提供详细的代码示例。

SELECT INTO INSERT INTO流程

下面是使用SELECT INTO INSERT INTO的基本流程图:

flowchart TD
    A[选择数据] --> B[插入数据]

SELECT INTO INSERT INTO语法

SELECT INTO INSERT INTO语句的基本语法如下:

SELECT column1, column2, ...
INTO new_table
FROM old_table
WHERE condition;

INSERT INTO table_name (column1, column2, ...)
SELECT column1, column2, ...
FROM old_table
WHERE condition;

其中,column1, column2, ...表示要选择的列,new_table表示要插入数据的新表,old_table表示要选择数据的旧表,condition表示选择数据的条件。

SELECT INTO INSERT INTO代码示例

假设我们有一个学生表(students),其中包含学生的姓名(name)、年龄(age)和成绩(score)等字段。现在我们想要选择年龄大于18岁的学生,并将他们的姓名和成绩插入到新表(adult_students)中。下面是实现这一操作的代码示例:

-- 创建学生表
CREATE TABLE students (
    name VARCHAR(50),
    age INT,
    score INT
);

-- 插入示例数据
INSERT INTO students (name, age, score)
VALUES ('张三', 20, 90),
       ('李四', 17, 85),
       ('王五', 19, 95),
       ('赵六', 21, 88);

-- 创建新表
CREATE TABLE adult_students (
    name VARCHAR(50),
    score INT
);

-- 选择年龄大于18岁的学生,并插入到新表中
SELECT name, score
INTO adult_students
FROM students
WHERE age > 18;

在上面的示例代码中,我们首先创建了一个学生表(students),并向其插入了一些示例数据。然后,我们创建了一个新表(adult_students),用于存储年龄大于18岁的学生的姓名和成绩。最后,我们使用SELECT INTO INSERT INTO语句选择符合条件的学生,并将其插入到新表中。

类图

下面是学生表(students)的类图:

classDiagram
    class students{
        - name: VARCHAR(50)
        - age: INT
        - score: INT
    }

在上面的类图中,学生表(students)包含了姓名(name)、年龄(age)和成绩(score)等字段。

总结

本文介绍了使用MySQL的SELECT INTO INSERT INTO语句将数据从一个表选择并插入到另一个表的方法。我们首先给出了SELECT INTO INSERT INTO的基本流程图,然后提供了SELECT INTO INSERT INTO语句的语法说明。最后,我们通过一个代码示例演示了如何使用SELECT INTO INSERT INTO语句实现将年龄大于18岁的学生的姓名和成绩插入到新表的操作。希望本文能够帮助读者更好地理解和应用SELECT INTO INSERT INTO语句。