总结下Oracle 中的Insert用法

1.标准Insert --单表单行插入

语法:

INSERT INTO table [(column1,column2,...)] VALUE (value1,value2,...)

例子:

insert into dep (dep_id,dep_name) values(1,'技术部');

备注:使用标准语法只能插入一条数据,且只能在一张表中插入数据

2, 无条件 Insert all --多表多行插入

语法:

INSERT [ALL] [condition_insert_clause]

[insert_into_clause values_clause] (subquery)

示例:

INSERT ALL

INTO sal_history(emp_id,hire_date,salary) values (empid,hiredate,sal)

INTO mgr_history(emp_id,manager_id,salary) values (empid,hiredate,sal)

SELECT employee_id empid,hire_date hiredate,salary sal,manager_id mgr

FROM employees

WHERE employee_id>200;

3,有条件的Insert

语法:

INSERT [ALL | FIRST]

WHEN condition THEN insert_into_clause values_clause

[WHEN condition THEN] [insert_into_clause values_clause]

......

[ELSE] [insert_into_clause values_clause]

Subquery;

示例:

Insert All

when id>5 then into z_test1(id, name) values(id,name)

when id<>2 then into z_test2(id) values(id)

else into z_test3 values(name)

select id,name from z_test;

当使用ALL关键字时,oracle会从上至下判断每一个条件,当条件满足时就执行后面的into语句

在上面的例子中,如果ID=6 那么将会在z_test1中插入一条记录,同时也在z_test2中插入一条记录

备注:

当使用FIRST关键字时,oracle会从上至下判断每一个条件,当遇到第一个满足时就执行后面的into语句,

同时中断判断的条件判断,在上面的例子中,如果ID=6,仅仅会在z_test1中插入一条数据

4, 旋转Insert (pivoting insert)

create table sales_source_data (

employee_id number(6),

week_id number(2),

sales_mon number(8,2),

sales_tue number(8,2),

sales_wed number(8,2),

sales_thur number(8,2),

sales_fri number(8,2)

);

insert into sales_source_data values (176,6,2000,3000,4000,5000,6000);

create table sales_info (

employee_id number(6),

week number(2),

sales number(8,2)

);

看上面的表结构,现在将要sales_source_data表中的数据转换到sales_info表中,这种情况就需要使用旋转Insert

示例如下:

insert all

into sales_info values(employee_id,week_id,sales_mon)

into sales_info values(employee_id,week_id,sales_tue)

into sales_info values(employee_id,week_id,sales_wed)

into sales_info values(employee_id,week_id,sales_thur)

into sales_info values(employee_id,week_id,sales_fri)

select employee_id,week_id,sales_mon,sales_tue,

sales_wed,sales_thur,sales_fri

from sales_source_data;

从该例子可以看出,所谓旋转Insert是无条件 insert all 的一种特殊应用,但这种应用被oracle官方,赋予了一个pivoting insert的名称,即旋转insert

oracle插入数据语句实例,oracle Insert 用法总结相关推荐

  1. oracle插入数据不重复,oracle插入数据重复

    版本号: 业务场景(如下): 后台自动执行的SQL插入数据,出现了重复数据,且无法稳定重现,偶然会遇见一次.场景为一组数据,如10条,依次插入数据库中.采取了循环生成sql拼接,先删后插的方式,最后统 ...

  2. Oracle 插入数据

    Oracle 插入数据 顾名思义,INSERT用于向数据库插入(添加行). 可以以多种方式使用插入操作: 插入单个完整的行; 插入单个部分行: 插入多行: 插入查询的结果. 提示:insert 和系统 ...

  3. oracle 自增id函数,oracle插入数据时自增ID的解决思路

    一直在用MySQL,从来没有为自增ID发过愁,这初到oracle上,连自增ID都让我挠头,好在互联网资源丰富,我在充分吸取精华后,把我的一点经验总结出来给大家分享分享- 1. 创建一个sequence ...

  4. oracle插入数据脚本

    这篇主要讲oracle插入数据的两种方式,一种是.sql文件,一种是shell脚本本文数据是在linux环境下测试的 一.sql文件方式 1.新建.sql文件vi test_insert.sql 2. ...

  5. oracle新增id怎么写,oracle插入数据时自增ID的解决思路

    一直在用MySQL,从来没有为自增ID发过愁,这初到oracle上,连自增ID都让我挠头,好在互联网资源丰富,我在充分吸取精华后,把我的一点经验总结出来给大家分享分享- 1. 创建一个sequence ...

  6. oracle表数据实例,Oracle创建数据表实例

    Oracle创建数据表实例. 1.创建数据表 --判断数据表是否存在,存在则删除 DECLARE IS_EXIST NUMBER; BEGIN SELECT COUNT(*) INTO IS_EXIS ...

  7. python如何往oracle写入数据_python3向oracle插入数据

    1.保证与oracle服务器版本统一 2.python3 ,oracle服务器,oracle client统一使用64位或者32位 2.先解压缩instantclient-basic-linux.x6 ...

  8. oracle插入数据时有特殊符号@‘

    oracle插入数据时有特殊符号@&' 现在用户名插入一个有特殊符号的value 如果SQL中有&,那么后面的字符串将被作为一个变量来处理,无法正常插入数据库. 如果的确需要把& ...

  9. Oracle插入数据每5000条提交一次

    Oracle插入数据每5000条提交一次 declarei_count int;i_large int; begini_count := 1;select ceil(count(1) / 5000)i ...

最新文章

  1. Caused by: java.net.UnknownHostException: localhost.localdomain: localhost.localdomain的问题解决
  2. Javascript获取或设置ckeditor的数据
  3. pythonweb开发-Web开发
  4. 【TarsosDSP】TarsosDSP 简介 ( TarsosDSP 功能 | 相关链接 | 源码和相关资源收集 | TarsosDSP 示例应用 | TarsosDSP 源码路径解析 )
  5. php check name,checkname.php
  6. html5中底部对齐怎么写,如何将页脚(div)与页面底部对齐?
  7. 在浏览器控制台执行以下代码,输入的结果是()
  8. fileinput 加 ftp 加 nginx 加 SpringBoot上传文件
  9. java绘画imo,搞死帮忙看下这个:需要为class interface或enum imort java.ut
  10. c调用python keras模型_tensorflow中调用keras训练模型作为一个计算过程
  11. 大学计算机基础应用教程ppt,大学计算机基础教程.ppt
  12. netstat 的10个基本用法
  13. thinkpad解决Win8.1电源管理的方法
  14. 软考中级哪一门比较好过?我建议你考这个。
  15. Mac电脑清空搜狗输入法联想记忆词库
  16. FastDB使用记录
  17. 如何防止黑客入侵服务器?
  18. 打造一款可靠的WAF(Web应用防火墙)
  19. Webstorm基本配置
  20. 优秀开源项目(持续更新)

热门文章

  1. 通过环境变量注入的方式启动SAP Spartacus B2B模块
  2. SAP技术专家Jerry的技术分享微信群 - 2021年1月14日更新 - 还剩27个名额
  3. SAP CDS view源代码行数统计工具
  4. SAP S/4HANA key user tool extensibility原理
  5. how is RFC to backend determined - maintenance view IWFNDV_MGDEAM
  6. Angular self study 3 - data binding
  7. Element.prototype.addDependent will call addAggregation
  8. SAP plant and location
  9. IFRAME中嵌入C4C UI
  10. 重用CL_CRM_QUERYAUI_RUN_BTIL实现order search