今日份知识学习
今天我们来学习一下Insert的方式,虽然Insert语句基本上是我们的入门第一课,但是我们也要说一下的,因为今天说的这几种多表数据插入,一定有你不知道的。
具体讲解
直言不讳,多表插入相关的语句,目前有三种情况,下面我们会一一讲解。
无条件的Insert
无条件的Insert,也就是没有任何操作,直接将查出来的结果集插入到多表中,如下面的SQL所示:
insert all into user_table_1(name, pwd, age) values (name, pwd, age) into user_table_2(name, pwd, content) values (name, pwd, content) select name, pwd, age, content from user_table where name is not null;
经过上面的SQL,我们会在user_table_1和user_table_2表中均会增加相同的数据条数。
这就是没有加入条件的效果。
有条件的Insert All
在有条件的Insert All中,我们只需要关注一个点,条件在什么地方加?
insert all when age in (2, 3) then into user_table_1(name, pwd, age) values (name, pwd, age) when name = '张三' then into user_table_2(name, pwd, content) values (name, pwd, content) select name, pwd, age, content from user_table where name is not null;
增加了条件后,结果就不再一样了,有兴趣的大家可以自行试一下。
Insert First
Insert First相对比前两个就不太一样了,从名称来看,是插入第一个的意思,功能上也是如此,就是要插入第一个符合条件的数据。
比如这个示例SQL:
insert first when age in (2, 3) then into user_table_1(name, pwd, age) values (name, pwd, age) when name = '张三' then into user_table_2(name, pwd, content) values (name, pwd, content) select name, pwd, age, content from user_table where name is not null;
没有太多的SQL变化,只是将关键字换了first,这时候如果存在多个age=2或者3的数据,也只会存入第一条数据而已。
总结
今日学习了三种多表插入数据的方式,你是否有所收获呢?
最近开始来学习Oracle数据库的一些知识,其中包含一些函数的使用,或者是特性的介绍讲解等,将会在系列文章内说到。
喜欢的可以关注一下专栏。