SQL insert into select 用法

SQL insert into select 用法SQLinsertintoselect用法一张存在的表,插入的新数据来源别的表时,可以使用insertintoselect语法。1、两种语法1、表数据user表idnamea

大家好,又见面了,我是你们的朋友全栈君。

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
根据需求选择对应的语法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/154624.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 9.电阻线性电压转换电路[通俗易懂]

    9.电阻线性电压转换电路[通俗易懂]电阻线性电压转换电路在电子设计中,电阻值的测量是非常重要的。比如在薄膜压力传感器中需要对电阻值进行测量,利用PT100测温度的时候需要测量其电阻。1.电阻分压测量方法在测量电阻的时候通常都是转换为电压测量,串联一个已知电阻,测量两个电阻之间的电压,利用分压公式得到电阻值。显然这个电路中,输出电压为:式中,为串联分压的电阻,为参考电压。令为10K,为5V,利用MATLAB画出U-R曲线,如图:从曲线可以看出,U与R不成线性关系,计算复杂。并且R的测量精度在不同值

    2022年5月8日
    86
  • QTcpSocket简单使用[通俗易懂]

    QTcpSocket简单使用[通俗易懂]QTcpServer类提供一个TCP基础服务类继承自QObject这个类用来接收到来的TCP连接,可以指定TCP端口或者用QTcpServer自己挑选一个端口,可以监听一个指定的地址或者所有的机器地址。调用listen()来监听所有的连接,每当一个新的客户端连接到服务端就会发射信号newConnection()调用nextPendingConnection()来接受待处理的连接。返回一个连接的QTcpSocket(),我们可以用这个返回的套接字和客户端进行连接如果有错误,serverErr.

    2025年10月11日
    8
  • html table样式设计_html设置table中的字体

    html table样式设计_html设置table中的字体table.gridtable{font-family:verdana,arial,sans-serif;font-size:11px;color:#333333;border-width:1px;border-color:#666666;border-collapse:collapse;}table.gridtableth{border-width:1px;padding…

    2022年9月20日
    2
  • POJO简介

    POJO简介POJO 一:什么是POJOPOJO的名称有多种,pureoldjavaobject、plainordinaryjavaobject等。按照MartinFowler的解释是“PlainOldJavaObject”,从字面上翻译为“纯洁老式的java对象”,但大家都使用“简单java对象”来称呼它。POJO的内在含义是指那些没有从任何类继承、也没有实现任何接口,更没有被其它框…

    2022年5月28日
    36
  • NOIP2014_noip比赛时间

    NOIP2014_noip比赛时间NOIp2012day1T1Vigenère密码标签:模拟主要是用了ASCII码,字母’A’的ASCII码是41H(01000001B),字母’a’的ASCII码是61H(01100001B),字母’A’与’a’的二进制后5位是相同的,所以无论是大写字母还是小写字母x,x&31(11111B)的值就是x在字母表里的顺序。简单判一下边界就行了c…

    2022年8月22日
    7
  • elasticsearch批量插入数据的时候出现java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection「建议收藏」

    elasticsearch批量插入数据的时候出现java.net.SocketTimeoutException: 30,000 milliseconds timeout on connection「建议收藏」问题:elasticsearch每次都批量插入几万数据量,然后就会出现下列问题。看这个问题应该是配置的问题ERROR[https-jsse-nio-443-exec-4]2020-07-0923:31:54(EsMiniDaansouDataInfoWithBLOBsUtil.java:80)java.net.SocketTimeoutException:30,000millisecondstimeoutonconnectionhttp-outgoing-0[ACTIVE]

    2022年8月30日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号