create schema 语句
create schema 语句初见create schema 这条语句,还以为oracle 中的schema 是使用该条语句创建呢。其实oracle 中create user 才是创建schema 的语句,user 和 schema 是不可分的。create schema 只不过是提供了一种...
ora_rowscn 伪列
ora_rowscn 伪列如果你需要对表中每条数据的改动,做审计跟踪的话大概有以下两种方式。一、在表中添加额外的列来存放表中某条记录的改动时间。并确保对数据的改动,必须往表中存放记录改动时间的字段填充时间值...
事务的read only mode
事务的read only mode 在session 1中设置事务的模式为read noly,同时执行一个查询。SQL> set transaction read only;Transaction set.SQL> select sum(salary) from employees;SUM(SALARY)-----------...
小解谓词 access 与 filter
小解谓词 access 与 filter对这两个谓词以前的理解是:access:和访问表的方式有关,access标识访问表的方式是索引。filter:只起过滤的作用。今天看到几个explain 改变了我对这点的理解。上面的理解也对,但是...
往表中插入大量的数据的方法(二)
往表中插入大量的数据的方法(二)虽然可以使用insert append 的方式来往一张表中插入大量的数据,但是毕竟存在诸多的限制和缺陷,下面讨论另外一种方式。先创建一张测试表。并添加主键约束。SQL> edWrote fil...
truncate 和 delete 的性能对比
truncate 和 delete 的性能对比下面的例子将会使用不同的数据量来对比,delete 和 truncate 的性能。一、百来条记录的表,delete 和 truncate 性能的对比。SQL> set timing onSQL> select count(*) from merge_...
关于oracle commit
关于oracle commit 在oracle10gR2 中引入了commit 的write 子句,使我们对数据库的commit 操作的控制能力提高了,同时也引入了对commit 语句理解的混乱,本文试图抛砖引玉,尽量说明白oracle commit。(环境为o...
explain plan VS execution plan
explain plan VS execution planexplain plan 翻译成中文应该称作解释计划比较恰当。是oracle对指定的SQL语句给出的理论上的或者称作预期的执行计划。execution plan 翻译成中文应该称作执行计划比较恰当。是ora...
使用deferred constraint 解决“先有蛋还是先有鸡的问题”
使用deferred constraint 解决“先有蛋还是先有鸡的问题”SQL> create table chicken( cid number primary key, 2 e...
使用merge 需要注意的问题
使用merge 需要注意的问题场景一:先创建两张测试用的表。SQL> create table merge_01 as select employee_id,first_name,last_name,salary 2 from hr.employees 3 /Table created.SQL...
往表中插入大量数据的方法(一)
往表中插入大量数据的方法(一)下面这个表是根据all_objects 表的结构构造的。用来模拟大量的数据。SQL> select count(*) from allobjects; COUNT(*)---------- 3375996Elapsed: 00:00:07.71创建...
在oracle 中生成随机数
在oracle 中生成随机数有时候我们需要使用到随机数,可以使用dbms_random 来产生各种各样的随机数。1、初始化随机数参数的种子。如果不指定随机数参数的种子,oracle将会使用当前时间,用户id,进程id号来生成种...
关于enable novalidate 的小实验
关于enable novalidate 的小实验先创建一个简单的测试表,唯一的约束为主键约束。create.sqlcreate table testing01 (id number(5),name varchar2(10),constraint t_id_pk primary key (id))/SQL> @create.sqlTable ...
探索where x=x 和 where x = y
探索where x=x 和 where x = y先创建如下的一张表,再往表中插入一些测试用的数据。create table occupancy ( pet_id number not null primary key, name varchar2(30) n...
关于null值的小知识
关于null值的小知识数据库中的逻辑关系是三元的,true,false,null。null 可以理解为神秘莫测的,不知道的,无法确定的。今天要一层一层的剥去null 值的神秘外衣。。。额,貌似这样有些猥琐。言归正传下面来梳理...
delete 与全表扫描
delete 与全表扫描先创建一张测试用的表。并填充数据。把表造的大小才有比较的效果。SQL> create table testing01 (id number(8),col2 varchar2(30));Table created.SQL> begin 2 for i in 1...
oracle SQL with 子句
oracle SQL with 子句with 子句是在oracle 9i release 2 中引入的。with 子句又叫做子查询构造语句。可以用来给一个子查询块命名。该查询块的检索结果会被oracle 保存在用户的临时表空间中,该命名块就像...
聚集函数之cube
聚集函数之cubeoracle cube ,rollup,grouping sets 是三兄弟。cube 根据给定的列作为参数,计算出所有可能的聚合。语法格式:group by cube(a,b,c)等同于group by grouping sets ((a,b,c),(a,b),(b,c),(a,c...
SQL grouping sets 子句
SQL grouping sets 子句grouping sets子句允许你指定多个group by 选项。增强了group by 的功能。可以通过一条select 语句实现复杂繁琐的多条select 语句的查询。并且更加的高效,解析存储一条SQL于语句。下面...
rowid 伪列
rowid 伪列rowid 是一个伪列,表示的是记录所在的物理位置。rowid 由以下几部分组成:1、对象的编号也就是object。2、记录(行)所在的数据文件编号,file,第一个数据文件编号是1.3、记录(行)所在的数据块编号,bl...