Oracle子查询临时表
ORACLE 临时表,可以有两种类型的临时表:会话级临时表、事务级临时表。
会话级临时表:
因为这个临时表中的数据和你的当前会话有关系,当你当前 SESSION 不退出的情况下,临时表中的数据就还存在,而当你退出当前 SESSION 的时候,临时表中的数据就全部没有了,这个时候如果以另外一个 SESSION 登陆的时候是看不到另外一个 SESSION 中的插入到临时表中的数据的。即两个不同的 SESSION 所插入的数据是互不相干的,当某一个 SESSION 退出之后临时表中的数据就会被清空。
--创建会话级临时表
CREATE GLOBAL TEMPORARY TABLE TMP_TABLE(
ID NUMBER
) ON COMMIT PRESERVE ROWS;
事务级临时表:
指该临时表与事务相关,当进行事务提交或者事务回滚的时候,临时表中的数据将自行被截断,其他的内容和会话级的临时表是一致的(包括退出 SESSION 的时候,事务级的临时表也会被自动截断)。
--创建事务级临时表
CREATE GLOBAL TEMPORARY TABLE TRANSACTION_TABLE(ID NUMBER) ON COMMIT DELETE ROWS; --进行事务提交COMMIT 或者事务回滚ROLLBACK 时,数据会被自动截断(清除事务操作的数据)
INSERT INTO TRANSACTION_TABLE(ID) VALUES(1111);
COMMIT;
ROLLBACK;
临时表
-- 语法结构:WITH... AS..语法结构
/*
WITH 临时表名1 AS
(SELECT 查询语句),
临时表2 AS
(SELECT 查询语句),
临时表3 AS
(SELECT 查询语句)
...
SELECT 查询语句;
*/ WITH TMP_A AS
(SELECT MAX(T.SAL) MAX_SAL FROM EMP T) --把查询结构当作临时表
SELECT B.*
FROM EMP B,TMP_A C
WHERE B.SAL = C.MAX_SAL;
总结:
1、两种临时表的异同:
相同点:
两种表都不能永久的保存记录,都是用临时表空间。
不同点:
会话级临时表只有当会话结束时,临时表中的数据才会被截断;而事务级临时表则不管是COMMIT、ROLLBACK 或者是会话结束,临时表中的数据都将被截断。
2、临时表的使用场景:
把复杂的逻辑拆分开来,用临时表储存中间结果,以方便后面的逻辑处理。程序执行过程中可能需要存放一些临时的数据,这些数据在整个程序的会话过程中都需要用到等。
Oracle子查询临时表的更多相关文章
- Oracle子查询相关内容(包含TOP-N查询和分页查询)
本节介绍Oracle子查询的相关内容: 实例用到的数据为oracle中scott用户下的emp员工表,dept部门表,数据如下: 一.子查询 1.概念:嵌入在一个查询中的另一个查询语句,也就是说一个查 ...
- oracle 子查询和组合函数
oracle 子查询和组合函数 --查询与"SCOTT"在同一个部门的员工 select empno,ename,deptno from emp where deptno in ( ...
- 一道Oracle子查询小练习
一道Oracle子查询小练习 昨天晚上躺在床上看Oracle(最近在学习这个),室友说出个题目让我试试.题目如下: 有如下表结构,请选择出成绩为前三名的人的信息(如果成绩相同,则算并列),表名为t ...
- Oracle 子查询
1.子查询在SELECT.UPDATE.DELETE语句内部可以出现SELECT语句.内部的SELECT语句结果可以作为外部语句中条件子句的一部分,也可以作为外部查询的临时表.子查询的类型有: ① 单 ...
- oracle 子查询因子化 浅谈(with的使用)
近来学习oracle,想要提高自己所写语句的效率和易读性,今天的笔记是关于子查询因子话这么一个东西 因子化的查询不一定可以提高效率,但是一定可以再提高程序的可读性方面成效显著 --with 语句 wi ...
- Oracle子查询之高级子查询
Oracle 高级子查询 高级子查询相对于简单子查询来说,返回的数据行不再是一列,而是多列数据. 1,多列子查询 主查询与子查询返回的多个列进行比较 查询与141号或174号员工的manager_id ...
- 22、oracle子查询
22.1.什么是子查询: 1.子查询就是在一条sql语句中嵌入select语句: 2.子查询可区分为关联子查询和非关联子查询,他们和主查询之间的执行顺序和关系是不同的: 22.2.关联子查询: 1.说 ...
- oracle 子查询的几个种类
1.where型子查询: select cat_id,good_id,good_name from goods where good_id in (selct max(good_id) from go ...
- Oracle子查询之简单子查询
Oracle 简单子查询 顾名思义,简单子查询是嵌套在 SQL 语句中的另一个SELECT 语句,并且子查询只返回一列数据 1,单行子查询: 子查询 (内查询) 在主查询之前一次执行完成.子查询的结果 ...
随机推荐
- golang中json格式化自定义日期格式
go 的time.Time,在json序列化是默认 2006-01-02T15:04:05Z07:00 的格式,十分不便, encoding/json包在序列化和反序列化的时候分别调用encode.g ...
- golang中函数的参数
1. 函数当做函数的参数 package main import "fmt" type HandleFunc func(int) (int, bool) func add10(nu ...
- Linux配置 ElasticSearch
一.什么是ElasticSearch? 一.什么是ES? ES是一个分布式使用RestFul风格的数据搜索引擎,并且ES是构建在Lucene框架之上,也就是说ES也是基于Lucene进行开发的搜索引擎 ...
- 计算机电子书 2017 BiliDrive 备份
下载方式 根据你的操作系统下载不同的 BiliDrive 二进制. 执行: bilidrive download <link> 链接 文档 链接 斯坦福 cs224d 深度学习与自然语言处 ...
- Matplotlib 3.0 秘籍·翻译完成
原文:Matplotlib 3.0 Cookbook 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远. 在线阅读 ApacheCN 面试求职交 ...
- ARC084F - XorShift
有两种解法,这里都放一下. 解法一 首先易知异或运算可以视作是 \(\mathbb{F}_2\) 意义下的每一位独立的加法. 因此我们可以考虑对于每个二进制数 \(s\) 构造一个多项式 \(F(x) ...
- Vue2技术整理3 - 高级篇 - 更新完毕
3.高级篇 前言 基础篇链接:https://www.cnblogs.com/xiegongzi/p/15782921.html 组件化开发篇链接:https://www.cnblogs.com/xi ...
- application/x-www-form-urlencoded、application/json、multipart/form-data、text/xml简单总结
最近在数据传输时,一直不明白这四种的区别,查了很多资料,也还是感到很模糊,因此,简单总结一下,以后再完善 1.在GET方式传输数据中,这四种格式,后台都可以接收数据(原生的request.getPar ...
- JDBC工具包commons-dbutils的基本介绍
感谢原文作者:simonXi-tech 原文链接:https://blog.csdn.net/simonforfuture/article/details/90480147 更多请查阅在线API文档: ...
- UITabBarController管理原则