在数据库中,INSERT INTO SELECT语句用于将一个查询的结果插入到另一个表中。INSERT INTO SELECT语句可以非常方便地复制一个表的内容到另一个表中,或者根据查询结果创建一个新的表。
INSERT INTO SELECT的语法如下:
INSERT INTO table2 (column1, column2, column3, ...) SELECT column1, column2, column3, ... FROM table1 WHERE condition;
这个语句的意思是将table1中满足某个条件的行的column1、column2、column3等列的值插入到table2中的对应列中。
下面是一个实际的例子来说明INSERT INTO SELECT的使用。
假设我们有两个表:students和new_students。students表包含以下列:id, name, age, score。我们想将students表中年龄大于等于18岁的学生插入到new_students表中。
首先,我们创建students表和插入一些示例数据:
CREATE TABLE students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, score INT ); INSERT INTO students (name, age, score) VALUES ('John', 16, 90), ('Alice', 20, 95), ('Tom', 18, 85), ('Emily', 17, 88);
接下来,我们创建new_students表:
CREATE TABLE new_students ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), age INT, score INT );
最后,我们使用INSERT INTO SELECT语句将students表中年龄大于等于18岁的学生插入到new_students表中:
INSERT INTO new_students (name, age, score) SELECT name, age, score FROM students WHERE age >= 18;
这样,new_students表中就包含了students表中年龄大于等于18岁的学生的信息。
除了直接将查询结果插入到另一个表中外,INSERT INTO SELECT语句还可以用于创建一个新的表,只包含查询结果:
CREATE TABLE new_table AS SELECT column1, column2, ... FROM table WHERE condition;
这样,new_table就会被创建并包含查询结果。
总结
INSERT INTO SELECT语句是在一个表(或查询结果)中选择某些行,并将其插入到另一个表中(或创建一个新的表)。这个功能非常强大,可以方便地复制、筛选和创建新的表。
以上是insert into select语法的使用的详细内容。更多信息请关注PHP中文网其他相关文章!