Oracle 扩展

子查询方面有
  • EXISTS和NOT EXISTS - 检查子查询返回的行是否存在。select * from table1 where exists(select * from table2) 如果括号里面有数据,exists前面的SQL才会执行,否则反之;not exists与之相反。
  • ANY,SOME和ALL - 将值与列表或子查询进行比较。
设置操作符
  • UNION - 演示如何将两个查询的结果合并为一个结果。
  • INTERSECT - 演示如何实现两个独立查询的结果的交集。两个SQL结果集共有的数据
  • MINUS - 学习如何从一个结果集中减去另一个结果(也就是求差集)。minus前面的结果集减去后面的结果剩下的数据。
修改数据
  • INSERT ALL - 讨论多重插入语句,将多行插入到一个或多个表中。例如从一张表查出来的数据要存到两张表里,普通的insert是插入两次,如果同时源表的数据改变,两张表的数据可能会出现不一致。
    无条件写数据的情况
    insert all into t1 (object_name, object_id) into t2 (object_name, object_id)
    select * from t;
    有条件写数据的情况
    insert all when object_id < 5 then into t1 (object_name, object_id)
    when object_id >= 5 then into t2 (object_name, object_id)
    select * from t;
    拓展
    insert first 符合条件的同样会写数据,不过已经存在数据了,insert first是不会写入的
    insert first when object_id = 1 then into t1 (object_name, object_id)
    when object_id <= 5 then into t2 (object_name, object_id)
    select * from t;

参考文档:https://www.cnblogs.com/c1024/p/11012016.html

发布了27 篇原创文章 · 获赞 2 · 访问量 2万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览