当前位置 : 主页 > 数据库 > mysql >

select into from和insert into select的使用举例详解

来源:互联网 收集:自由互联 发布时间:2023-05-14
目录 1. SELECT INTO 语句 1.1 SELECT INTO 语法 2. INSERT INTO SELECT 语句 2.1 INSERT INTO SELECT 语法 3. select into from 和 insert into select 区别 4. 复制表结构及其数据 5.只复制表结构 6.只复制表数据 6.1 两个
目录
  • 1. SELECT INTO 语句
    • 1.1 SELECT INTO 语法
  • 2. INSERT INTO SELECT 语句
    • 2.1 INSERT INTO SELECT 语法
  • 3. select into from 和 insert into select 区别
    • 4. 复制表结构及其数据
      • 5.只复制表结构
        • 6.只复制表数据
          • 6.1 两个表结构一样
        • 总结

          1. SELECT INTO 语句

          用途:SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中,表结构与查询结构一致。

          PS:MySQL不支持SELECT INTO语法

          1.1 SELECT INTO 语法

          复制所有的列插入到新表中。

          SELECT *
          INTO newtable 
          FROM table1;
          

          或者只复制希望的列插入到新表中:

          SELECT column_name(s)
          INTO newtable 
          FROM table1;
          

          提示:新表将会使用 SELECT 语句中定义的列名称和类型进行创建。以使用 AS 子句来应用新名称。

          2. INSERT INTO SELECT 语句

          INSERT INTO SELECT 语句从一个表复制数据,然后把数据插入到一个已存在的表中。

          2.1 INSERT INTO SELECT 语法

          从一个表中复制所有的列插入到另一个已存在的表中:

          INSERT INTO table2
          SELECT * FROM table1;
          

          只复制希望的列插入到另一个已存在的表中:

          INSERT INTO table2
          (column_name(s))
          SELECT column_name(s)
          FROM table1;
          

          3. select into from 和 insert into select 区别

          select into from 要求目标表不存在,因为在插入时会自动创建;

          insert into select from 要求目标表存在

          4. 复制表结构及其数据

          create table table_name_new 
          as 
          select * from table_name_old;
          

          5.只复制表结构

          原理就是使得where后边条件为假。

          create table table_name_new as select * from table_name_old where 1=2;

          或者

          create table table_name_new like table_name_old;

          6.只复制表数据

          6.1 两个表结构一样

          insert into table_name_new select * from table_name_old;

          6.2 两个表结构不一样

          insert into table_name_new(column1,column2...) select column1,column2... from table_name_old;

          只能插入相同字段数据。

          总结

          到此这篇关于select into from和insert into select使用的文章就介绍到这了,更多相关select into from和insert into select内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

          网友评论