Oracle insert all语句介绍

Oracle insert all语句介绍Oracle中insert语句的高级用法,INSERTALL语句介绍:1、无条件insertall全部插入CREATETABLEt1(product_idNUMBER,product_nameVARCHAR2(80),MONTHNUMBER);INSERTINTOt1VALUES(111,’苹果’,1);INSERTINTOt1VALUES(222,’橘…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Oracle 中insert语句的高级用法,INSERT ALL 语句介绍:


1、无条件insert all 全部插入

Oracle insert all语句介绍


CREATE TABLE t1(product_id NUMBER, product_name VARCHAR2(80),MONTH NUMBER);

INSERT INTO t1 VALUES(111, '苹果',1);
INSERT INTO t1 VALUES(222, '橘子',1);
INSERT INTO t1 VALUES(333, '香蕉',1);

COMMIT;

CREATE TABLE t2 AS SELECT * FROM t1 WHERE 1=2;

INSERT ALL
    INTO t2 
    VALUES (product_id, product_name,MONTH)
    INTO t2 
    VALUES (product_id, product_name,MONTH+1)
    INTO t2 
    VALUES (product_id, product_name,MONTH+2)
    INTO t2 
    VALUES (product_id, product_name,MONTH+3) 
SELECT product_id, product_name, MONTH
FROM t1;

COMMIT;

SELECT * FROM t2 ORDER BY product_id, product_name, MONTH;

———- ———- ———-
       111 苹果                1
       111 苹果                2
       111 苹果                3
       111 苹果                4
       222 橘子                1
       222 橘子                2
       222 橘子                3
       222 橘子                4
       333 香蕉                1
       333 香蕉                2
       333 香蕉                3
       333 香蕉                4

已选择12行。

2、有条件insert all

Oracle insert all语句介绍


CREATE TABLE small_orders
(order_id   NUMBER(12) NOT NULL,
 customer_id    NUMBER(6) NOT NULL,
 order_total    NUMBER(8,2),
 sale_rep_id    NUMBER(6)
    
);

CREATE TABLE medium_orders AS SELECT * FROM small_orders;

CREATE TABLE large_orders AS SELECT * FROM small_orders;

CREATE TABLE special_orders
(order_id   NUMBER(12)  NOT NULL,
 customer_id    NUMBER(6)   NOT NULL,
 order_total    NUMBER(8,2),
 sale_rep_id    NUMBER(6),
 credit_limit   NUMBER(9,2),
 cust_email     VARCHAR2(30)

);

INSERT ALL
    WHEN order_total < 100000 THEN
        INTO small_orders
    WHEN order_total > 100000 AND order_total < 200000 THEN
        INTO medium_orders
    ELSE
        INTO large_orders
    SELECT order_id, customer_id, order_total, sales_rep_id 
      FROM orders;


3、有条件insert first

    如果第一个 WHEN 子句的值为 true,Oracle 服务器对于给定的行执行相应的 INTO 子句,
    并且跳过后面的 WHEN 子句(后面的when语句都不再考虑满足第一个When子句的记录,即使该记录满足when语句中的条件)。

INSERT FIRST
   WHEN ottl < 100000 THEN
      INTO small_orders
         VALUES(oid, ottl, sid, cid)
   WHEN ottl > 100000 and ottl < 200000 THEN
      INTO medium_orders
         VALUES(oid, ottl, sid, cid)
   WHEN ottl > 290000 THEN
      INTO special_orders
   WHEN ottl > 200000 THEN
      INTO large_orders
         VALUES(oid, ottl, sid, cid)
   SELECT o.order_id oid, o.customer_id cid, o.order_total ottl,
      o.sales_rep_id sid, c.credit_limit cl, c.cust_email cem
      FROM orders o, customers c
      WHERE o.customer_id = c.customer_id;
      
SELECT * FROM small_orders;
SELECT * FROM medium_orders;
SELECT * FROM large_orders;
SELECT * FROM special_orders;

———————————

By           Dylan.

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

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

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


相关推荐

  • 字典树

    字典树

    2021年8月18日
    40
  • 彻底明白vue双向绑定底层原理(源码分析)

    彻底明白vue双向绑定底层原理(源码分析)vue是一个mvvm框架,双向绑定是vue的一个核心功能,所谓双向绑定就是当试图发生改变的时候传递给VM(ViewModel),让数据得到更新,当数据发生改变的时候传给VM(ViewModel),使得视图发生变化!概念都知道,但是vue怎么做到的呢?看下面的一张图(图是搬运别人的)可能你现在看不明白,observer是什么东西,watchter,Dep又是什么东西?没有关系,接下来只要你看完我这篇文章,保证给你整的明明白白!看上图,从左边开始newMVVM其实就是我newVue(),我们一

    2022年9月14日
    2
  • 利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口

    利用sendmsg和recvmsg来指定发送接口或者获取接收数据接口

    2022年1月18日
    53
  • ansi是什么编码格式_ansi编码是什么意思

    ansi是什么编码格式_ansi编码是什么意思用Notepad++创建一个文本文件text.txt,其默认编码格式为ANSI(乍看之下,还以为是ASCII呢),输入汉字居然不是乱码:保存为test.txt,发送给你美国的同事Bob。他也用Notepad++,不幸的是,却发现你的文件内容是这样的:也许你会认为:你用的是中文系统,能正常显示中文;他用的是英文系统,不能显示中文!这么想,好像很有道理呢!但是再细想一下:一个系

    2022年9月24日
    1
  • python psutil替代_psutil[通俗易懂]

    python psutil替代_psutil[通俗易懂]用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等。要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。顾名思义,psutil=pro…

    2022年6月14日
    23
  • 查询mysql的隔离级别_怎么查看数据库隔离级别

    查询mysql的隔离级别_怎么查看数据库隔离级别CPUQuota=value该参数表示服务可以获取的最大CPU时间,value为百分数形式,高于100%表示可使用1核以上的CPU。与cgroupcpu控制器cpu.cfs_quota_us配置项对应。MemoryLimit=value该参数表示服务可以使用的最大内存量,value可以使用K,M,G,T等后缀表示值的大小。与cgroupmemory控制器…

    2022年5月26日
    43

发表回复

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

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