oracle的多表插入学习笔记

----------------------------multitable  insert--------------------------------
----------------insert all----------------------------------------------------
select * from emp ;

create table sal_history (
empid NUMBER(4),hiredate date, SAL number(7,2) 
);
create table mgr_history (
empid NUMBER(4), mgr number(4),SAL number(7,2) 
);

INSERT ALL
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT empno EMPID, HIREDATE, SAL, MGR
FROM emp
WHERE empno < 7654 ;

commit ;

select * from sal_history ;
select * from mgr_history ;

-------------------conditional insert all-------------------------------
truncate table sal_history ;
truncate table mgr_history ;

INSERT ALL
when empid >= 7521 then 
INTO sal_history VALUES(EMPID,HIREDATE,SAL)
when mgr >= 7839 then 
INTO mgr_history VALUES(EMPID,MGR,SAL)
SELECT empno EMPID, HIREDATE, SAL, MGR
FROM emp
WHERE empno < 7654 ;

commit ;
注意: when语句里面只能使用pseudocolumn

--------------------conditional FIRST INSERT-----------------------
查询得到的语句,如果满足第一个条件,则执行对应的第一个动作,而后面将不再考虑已经处理过的返回行。
INSERT first
 when empid < 7654 then 
  INTO sal_history VALUES(EMPID,HIREDATE,SAL)
 when empid = 7499 then 
  INTO sal_history VALUES(EMPID,HIREDATE,SAL)
 else
  into mgr_history values(EMPID,MGR,SAL)
SELECT empno EMPID, HIREDATE, SAL, MGR
FROM emp
WHERE empno < 7654 ;

如果有一部分返回行不满足第一个语句的条件,该部分会被当作条件插入处理。
INSERT first
 when empid > 7654 then 
  INTO sal_history VALUES(EMPID,HIREDATE,SAL)
 when mgr = 7499 then 
  INTO sal_history VALUES(EMPID,HIREDATE,SAL)
 else
  into mgr_history values(EMPID,MGR,SAL)
SELECT empno EMPID, HIREDATE, SAL, MGR
FROM emp
WHERE empno < 7654 ;

时间: 2024-10-10 16:16:09

oracle的多表插入学习笔记的相关文章

ORACLE PL/SQL异常处理(Exception)学习笔记

1.PL/SQL错误类型 错误类型 报告者 处理方法 编译时错误 PL/SQL编译器 交互式地处理:编译器报告错误,你必须更正这些错误 运行时错误 PL/SQL运行时引擎 程序化地处理:异常由异常处理子程序引发并进行捕获 2.异常的声明 有两种异常:用户自定义异常和预定义异常 用户自定义异常就是由程序员自己定义的一个错误.该错误还不是非常重要,所以并没有将整个错误包含在Oracle的错误中.例如,它可能是一个与数据有关的错误.而预定义异常则对应于一般的SQL和PL/SQL错误. 用户自定义异常是

向oracle中的表插入数据的方法

向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:select t.*,rowid from User t for update;-->点击钥匙那个标记就可向表中添加数据 第三种方法:在oracle中的table表中选中你要添加数据的那个表-->点击右键-->选中Edit data-->就可向表中添加数据 第四种方法:通过DAO层来添加

初级Oracle和SQL学习者的学习笔记。韩顺平-玩转oracle。

我自己就是一个oracle和sql的初学者,前段时间看了韩顺平老师的oracle视频教程,觉得很深入浅出,收获了很多.同时自己也做了不少笔记,现在想将纸质笔记以自己的话总结出来.俗话说得好:教学总是相得益彰,在总结的过程中想必会加深自己的印象,能够巩固自己的学习过程. oracle 用户部分: 创建用户:create user user_name identified by user_password; 此时用户并没有连接数据库的权限.需要给其赋予连接权限 赋予权限:权限分为对象权限和系统权限.

Oracle PL/SQL语句基础学习笔记(上)

PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及怎样设计并运行一个PL/SQL程序. 1.PL/SQL的长处 从版本号6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的长处以及其独有的数据管理的便利性,那么你非常难想象ORACLE缺了PL/SQL的情形.PL/SQL 不是一个独立的产品,他

Hibernate单表映射学习笔记之一——hibernalnate开发环境配置

1.什么是ORM? Object/Relationship Mapping:对象/关系映射 2.写SQL语句不好之处: (1)不同数据库使用的SQL语法不同(PL/SQL.T/SQL) (2)同样的功能在不同的数据库中有不同的实现方式(分页SQL) (3)过分依赖SQL语句对程序的移植和拓展不利 3.Hibernate (1)ORM框架技术 (2)对JDBC进行了非常轻量的对象封装 4.其他ORM框架技术 (1)Mybatis(前身为iBatis) (2)Toplink(现为Oracle As

多表查询(学习笔记)

语法: SELECT [DISTINCT] * | 列名称 [AS]别名,........ FROM 表名称1 [别名1],表名称2 [别名2],... [WHERE 条件(s)] [ORDER BY 排序的字段 1,ASC| DESC,排序的字段2 ASC| DESC,....] 示例一 查询所有员工的信息和部门信息     SELECT * FROM EMP,DEPT; 查询结果可以看到有56条记录,而emp表只有14条,dept表只有4条,很多重复记录,这就是多表查询所产生的笛卡尔积 消除

PHP 文件上传表单 ~~学习笔记

PHP文件上传 通过PHP,可以把文件上传到服务器. ------------------------------------------------------------------------------------------------------------------- 创建一个文件上传表单:允许用户从表单上传文件时非常有用的: 下面是一个供上传文件的html表单: <html> <body> <form action="upload_file.php

0006-css引入内联和内部和外联样式表-前端学习笔记

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>css样式</title> <!--次选推荐:引入内部样式表--> <!-- <style type="text/css"> p{ color:blue; font-size:15px; } </style> --> <!-

表视图学习笔记

//  MainViewController.m //  UI_TableView界面传值 // //  Created by dllo on 15/8/7. //  Copyright (c) 2015年 cml. All rights reserved. // #import "MainViewController.h" #import "SecondViewController.h" // 4.签订协议 @interface MainViewControlle