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.pswp.cn/web/13806.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/13806.shtml
英文地址,請注明出處:http://en.pswp.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;多媒…

前端面試題日常練-day21 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末。 AJAX 是什么的縮寫&#xff1f; a) Asynchronous JavaScript and XMLb) Asynchronous JavaScript and XHTMLc) Asynchronous Java and XMLd) Asynchronous Java and XHTML使用 AJAX 可以實現以下哪…

2024年5月20日優雅草蜻蜓API大數據服務中心v2.0.4更新

v2.0.4更新 v2.0.4更新 2024年5月20日優雅草蜻蜓API大數據服務中心v2.0.4更新-增加ai繪畫接口增加淘寶聯想詞接口底部增加聯系方式 更新日志 底部增加聯系方式 增加ai繪畫接口 增加淘寶聯想詞接口 增加用戶中心充值提示 用戶中心內頁顏色改版完成 截圖 部分具體更新接口信…

神經網絡優化器-從SGD到AdamW

優化器準則 凸優化基本概念 先定義凸集&#xff0c;集合中的兩個點連接的線還在集合里面&#xff0c;就是凸集&#xff0c;用數學語言來表示就是&#xff1a;對于集合中的任意兩個元素x&#xff0c;y以及任意實數 λ ∈ ( 0 , 1 ) \lambda \in (0,1) λ∈(0,1)&#xff0c;有…

【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;從而大幅提高查詢性能。倒排索引在搜索引擎、數據庫和信息檢索系…

matlab實現繪制煙花代碼

下面是一個簡化的示例&#xff0c;它使用MATLAB的繪圖功能來模擬煙花爆炸的視覺效果。請注意&#xff0c;這個示例是概念性的&#xff0c;并且可能需要根據您的具體需求進行調整。 % 初始化參數 num_fireworks 5; % 煙花數量 num_particles_per_firework 200; % 每個煙花…

前端 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…

專注于運動控制芯片、運動控制產品研發、生產與銷售為一體的技術型芯片代理商、方案商——青牛科技

深圳市青牛科技實業有限公司,是專注于運 動控制芯片、運動控制產品研發、生產與銷售為一體的技術型 芯片代理商、方案商。現今代理了國產品牌GLOBALCHIP&#xff0c;芯谷&#xff0c;矽普&#xff0c;TOPPOWER等品牌。其中代理品牌TOPPOWER為電源模塊&#xff0c;他們公司通過了…

cherry-pick的強大之處在于哪里

git cherry-pick 的強大之處在于它提供了一種靈活的方式來應用特定的提交到不同的分支上&#xff0c;而無需合并整個分支或拉取其他不需要的提交。以下是 git cherry-pick 的幾個主要優點和強大之處&#xff1a; 選擇性應用提交&#xff1a;你可以挑選一個或多個特定的提交&…