• SQL insert into select 用法


    SQL insert into select 用法

    一张存在的表,插入的新数据来源别的表时,可以使用insert into select语法。

    1、两种语法

    1、表数据

    user表

    id  name   age
    1	test	10
    2	test1	20
    3	test2	14	
    4	test3	16
    

    user_copy表

    user_copy 表结构与 user 表一样,只不过数据为空。

    address 表

    id  city  address  user_id
    1	广州市	天河区		2
    2	肇庆市	端州区		1
    3	汕头市	朝阳区		1
    4	肇庆市	鼎湖区		3
    5	汕头市	从化区		3
    6	广州市	白云区		2
    

    addressuser属于多对一的关系。

    2、语法1

    如果两表的结构完全相同,可以直接使用以下的简易语法。

    insert into 表名2 select * from 表名1 where 条件
    

    例子

    上文 user 表 与user_copy表结构一样,因此例子如下:

    insert into user_copy select * from user u where u.id in(1,2)
    

    id 为1、2的数据便成功插入到user_copy表中。

    结果如下:

    image-20210108165855760

    3、语法2

    如果只希望插入希望的列,或者特定的列指定为常量,语法如下

    insert into 表名2(列名1, 列名2, 列名3) select 返回值1,返回值2,常量 as 返回值3 from 表名1,表名3,表名4 where 条件
    

    注意:返回值要与表2的列名一一对应。

    例子

    user_copy插入特定的nameage, age指定为15,例子如下:

    insert into user_copy(name, age) select u.name as name, 15 as age 
      from user u, address a 
      where u.id = a.user_id and a.address = '从化区'
    

    结果如下:

    image-20210108171707902
    根据需求选择对应的语法。

    自我控制是最强者的本能-萧伯纳
  • 相关阅读:
    2020.1.15考试总结
    P4558 [JSOI2018]机器人 结论&DP
    2020.1.11考试总结
    2020.1.9考试总结
    如何和出题人斗智斗勇?奇技淫巧汇总
    各种公式总结
    2020.1.5考试总结
    C基础学习笔记——01-C基础第10天(内存结构)
    C基础学习笔记——01-C基础第09天(指针下)
    C基础学习笔记——01-C基础第08天(指针上)
  • 原文地址:https://www.cnblogs.com/CF1314/p/14252501.html
Copyright © 2020-2023  润新知