oracle中insert all的用法

1、简述

使用insert into语句进行表数据行的插入,但是oracle中有一个更好的实现方式:使用insert all语句。

insert all语句是oracle中用于批量写数据的 。insert all分又为

  1. 无判断条件插入
  2. 有判断条件插入
  3. 有判断条件插入分为
  • Insert all when... 子句

  • insert first when... 子句

2、表和数据准备

--创建表
sqlplus hr/hr@192.168.0.207:1521/PROD01PDB
CREATE TABLE t_students(ID   NUMBER(4) primary key,NAME VARCHAR2(32),sex  VARCHAR2(3)
);--删除表
drop table t_students;
drop table t_students_01;
drop table st_student_02;--向t_students表中插入数据
INSERT INTO t_students(ID, NAME, sex) VALUES(881001, '成都', '女');
INSERT INTO t_students(ID, NAME, sex) VALUES(881002, '深圳', '男');
INSERT INTO t_students(ID, NAME, sex) VALUES(881003, '上海', '女');
commit;HR@192.168.0.207:1521/PROD01PDB> col NAME format a20
HR@192.168.0.207:1521/PROD01PDB> select * from t_students;ID   NAME                 SEX
---------- -------------------- ---------881001   成都                 女881002   深圳                 男881003   上海                 女--复制表结构创建表t_students_01,t_students_02
CREATE TABLE t_students_01 AS SELECT * FROM t_students WHERE 1 = 2;
CREATE TABLE t_students_02 AS SELECT * FROM t_students WHERE 1 = 2;--查询表
select * from t_students;
select * from t_students_01;
select * from t_students_02;

3、insert all无判断条件插入

将t_students表中的数据插入t_students_01,t_students_02表中可以这样写

insert allinto t_students_01 values(id,name,sex)into t_students_02 values(id,name,sex)
select id,name,sex from t_students;

4、insert all有判断条件插入

有判断条件插入又分为两种:insert all when... 子句和insert first when... 子句

-- insert t_students
INSERT INTO t_students(ID, NAME, sex) VALUES(1004, '广州', '女');
INSERT INTO t_students(ID, NAME, sex) VALUES(1005, '苏州', '男');
commit;-- insert first
insert first when id>=1004 theninto t_students_01 values(id,name,sex)when id=1005 theninto t_students_02 values(id,name,sex)
select id,name,sex from t_students;
commit;-- insert all
insert all when id>=1004 theninto t_students_01 values(id,name,sex)when id=1005 theninto t_students_02 values(id,name,sex)
select id,name,sex from t_students;
commit;

5、insert all 、insert first 子句的区别

insert first是依据是否满足判断条件来确定先后关系的,当数据满足第一个when判断条件又满足第二个when判断条件,则执行第一个then插入语句,第二个then就不插入。

反之有数据不满足第一个when判断条件且满足第二个when判断条件,则数据会插入第二个条件下对应的表中,这也正是insert first与inset all的区别。

insert all    只要满足条件,就会插入,这个会造成重复插入;

insert first 只要有一个满足条件,后面的条件不再判断,不会造成重复插入。

注意:insert all 不支持序列插入,会导致两边不一致

6、Oracle19c OCP 考试点题目

自己在HR schmea下

select employee_id  emp_id,manger_id MGR,salary SAL from EMPLOYEES;create table special_sal 
as 
select employee_id  emp_id,salary SAL 
from HR.EMPLOYEES 
where 1=0;CREATE table sal_history as select employee_id  emp_id,hire_date hiredate,salary SAL 
from EMPLOYEES 
where 1=0;CREATE table mgr_history as select employee_id  emp_id,manager_id MGR,salary SAL 
from EMPLOYEES 
where 1=0;insert all 
when SAL > 20000 theninto special_sal VALUES(emp_id,SAL)
else into sal_history VALUES(emp_id,hiredate,sal) into mgr_history values(emp_id,mgr,sal)
select employee_id  emp_id,hire_date hiredate,salary SAL,manager_id MGR
from EMPLOYEES 
where EMPLOYEE_ID<125;HR@192.168.0.207:1521/PROD01PDB> select * from special_sal;EMP_ID        SAL
---------- ----------100      24000HR@192.168.0.207:1521/PROD01PDB> select * from sal_history;EMP_ID HIREDATE                   SAL
---------- ------------------- ----------101 2005-09-21 00:00:00      17000102 2001-01-13 00:00:00      17000103 2006-01-03 00:00:00       9000104 2007-05-21 00:00:00       6000105 2005-06-25 00:00:00       4800106 2006-02-05 00:00:00       4800107 2007-02-07 00:00:00       4200108 2002-08-17 00:00:00      12008109 2002-08-16 00:00:00       9000110 2005-09-28 00:00:00       8200111 2005-09-30 00:00:00       7700EMP_ID HIREDATE                   SAL
---------- ------------------- ----------112 2006-03-07 00:00:00       7800113 2007-12-07 00:00:00       6900114 2002-12-07 00:00:00      11000115 2003-05-18 00:00:00       3100116 2005-12-24 00:00:00       2900117 2005-07-24 00:00:00       2800118 2006-11-15 00:00:00       2600119 2007-08-10 00:00:00       2500120 2004-07-18 00:00:00       8000121 2005-04-10 00:00:00       8200122 2003-05-01 00:00:00       7900EMP_ID HIREDATE                   SAL
---------- ------------------- ----------123 2005-10-10 00:00:00       6500124 2007-11-16 00:00:00       580024 rows selected.HR@192.168.0.207:1521/PROD01PDB> select * from mgr_history;EMP_ID        MGR        SAL
---------- ---------- ----------101        100      17000102        100      17000103        102       9000104        103       6000105        103       4800106        103       4800107        103       4200108        101      12008109        108       9000110        108       8200111        108       7700EMP_ID        MGR        SAL
---------- ---------- ----------112        108       7800113        108       6900114        100      11000115        114       3100116        114       2900117        114       2800118        114       2600119        114       2500120        100       8000121        100       8200122        100       7900EMP_ID        MGR        SAL
---------- ---------- ----------123        100       6500124        100       580024 rows selected.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

利用 MongoDB Atlas 进行大模型语义搜索和RAG

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学. 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 汇总合集&…

基于英飞凌BGT60LTR11AIP E6327芯片具低功耗的脉冲多普勒操作模式常用于汽车应用的雷达上

芯片特征&#xff1a; 60 GHz收发器MMIC&#xff0c;带一个发射器和一个接收器单元封装天线&#xff08;AIP&#xff09;&#xff08;6.73.30.56 mm3)低功耗的脉冲多普勒操作模式自主模式用于运动和运动方向的集成检测器运动检测信号的直接输出目标检测范围的15个可配置阈值检测…

Android14之Binder调试(二百一十一)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新

v2.0.4更新 v2.0.4更新 2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新-增加ai绘画接口增加淘宝联想词接口底部增加联系方式 更新日志 底部增加联系方式 增加ai绘画接口 增加淘宝联想词接口 增加用户中心充值提示 用户中心内页颜色改版完成 截图 部分具体更新接口信…

【NLP】词性标注

词 词是自然语言处理的基本单位&#xff0c;自动词法分析就是利用计算机对词的形态进行分析&#xff0c;判断词的结构和类别。 词性&#xff08;Part of Speech&#xff09;是词汇最重要的特性&#xff0c;链接词汇和句法 词的分类 屈折语&#xff1a;形态分析 分析语&#…

k8s 1.24.x之后如果rest 访问apiserver

1.由于 在 1.24 &#xff08;还是 1.20 不清楚了&#xff09;之后&#xff0c;下面这两个apiserver的配置已经被弃用 了&#xff0c;简单的说就是想不安全的访问k8s是不可能了&#xff0c;所以只能走安全的访问方式也就是 https://xx:6443了&#xff0c;所以需要证书。 - --ins…

Git系列:git rm 的高级使用技巧

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【go项目01_学习记录15】

重构MVC 1 Article 模型1.1 首先创建 Article 模型文件1.2 接下来创建获取文章的方法1.3 新增 types.StringToUint64()函数1.4 修改控制器的调用1.5 重构 route 包1.6 通过 SetRoute 来传参对象变量1.7 新增方法&#xff1a;1.8 控制器将 Int64ToString 改为 Uint64ToString1.9…

【数据结构】栈和队列的相互实现

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 1.用栈实现队列 当队列中进入这些元素时&#xff0c;相应的栈1中元素出栈顺序与出队列相反&#xff0c;因此我们可以使用两个栈来使元素的出栈顺序相同&#xff1b; 通过将栈1元素出栈&#xff0c;再…

Databend 倒排索引的设计与实现

倒排索引是一种用于全文搜索的数据结构。它的主要功能是将文档中的单词作为索引项&#xff0c;映射到包含该单词的文档列表。通过倒排索引&#xff0c;可以快速准确地定位到与查询词相匹配的文档列表&#xff0c;从而大幅提高查询性能。倒排索引在搜索引擎、数据库和信息检索系…

前端 CSS 经典:3D 渐变轮播图

前言&#xff1a;无论什么样式的轮播图&#xff0c;核心 JS 实现原理都差不多。所以小伙伴们&#xff0c;还是需要了解一下核心 JS 实验原理的。 效果图&#xff1a; 实现代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta chars…

MySQL —— 复合查询

一、基本的查询回顾练习 前面两章节整理了许多关于查询用到的语句和关键字&#xff0c;以及MySQL的内置函数&#xff0c;我们先用一些简单的查询练习去回顾之前的知识 1. 前提准备 同样是前面用到的用于测试的表格和数据&#xff0c;一张学生表和三张关于雇员信息表 雇员信息…

优化数据查询性能:StarRocks 与 Apache Iceberg 的强强联合

Apache Iceberg 是一种开源的表格格式&#xff0c;专为在数据湖中存储大规模分析数据而设计。它与多种大数据生态系统组件高度兼容&#xff0c;相较于传统的 Hive 表格格式&#xff0c;Iceberg 在设计上提供了更高的性能和更好的可扩展性。它支持 ACID 事务、Schema 演化、数据…

leetcode-设计LRU缓存结构-112

题目要求 思路 双链表哈希表 代码实现 struct Node{int key, val;Node* next;Node* pre;Node(int _key, int _val): key(_key), val(_val), next(nullptr), pre(nullptr){} };class Solution { public: unordered_map<int, Node*> hash; Node* head; Node* tail; int …

普源DHO924示波器OFFSET设置

一、简介 示波器是电子工程师常用的测量工具之一&#xff0c;能够直观地显示电路信号的波形和参数。普源DHO924是一款优秀的数字示波器&#xff0c;具有优异的性能和易用性。其中OFFSET功能可以帮助用户调整信号的垂直位置&#xff0c;使波形更清晰易读。本文将详细介绍DHO924…

声音转文本(免费工具)

声音转文本&#xff1a;解锁语音技术的无限可能 在当今这个数字化时代&#xff0c;信息的传递方式正以前所未有的速度进化。从手动输入到触控操作&#xff0c;再到如今的语音交互&#xff0c;技术的发展让沟通变得更加自然与高效。声音转文本&#xff08;Speech-to-Text, STT&…

爬虫学习--12.MySQL数据库的基本操作(下)

MySQL查询数据 MySQL 数据库使用SQL SELECT语句来查询数据。 语法&#xff1a;在MySQL数据库中查询数据通用的 SELECT 语法 SELECT 字段1&#xff0c;字段2&#xff0c;……&#xff0c;字段n FROM table_name [WHERE 条件] [LIMIT N] 查询语句中你可以使用一个或者多个表&…

vue3使用mitt.js进行各种组件间通信

我们在vue工程中&#xff0c;除开vue自带的什么父子间&#xff0c;祖孙间通信&#xff0c;还有一个非常方便的通信方式&#xff0c;类似Vue2.x 使用 EventBus 进行组件通信&#xff0c;而 Vue3.x 推荐使用 mitt.js。可以实现各个组件间的通信 优点&#xff1a;首先它足够小&…

【云原生】Kubeadm部署k8s

目录 一、部署步骤 二、部署kubernetes 2.1、所有节点关闭防火墙 核心防护 iptables规则 swap交换 2.2、修改主机名并添加主机映射 2.3、调整内核参数 三、安装Docker 3.1、所有节点安装docker 3.2、所有接点添加镜像加速器 3.3、开启docker、并设置开机自启、查看状态…

ESP32学习笔记:WS2812B驱动

WS2812B是一款贴片RGB灯。由于采用了单总线通讯&#xff0c;所以需要特别关注下它的通讯时序。 调试细节&#xff1a; 本来以为会是一个比较简单的调试&#xff0c;结果还是花了很长时间才调试完成。 首先是关于ESP32的纳秒级延时确定&#xff0c;当时按照空指令始终调试不出来…