oracle高级sql的参考资料
1.集合操作
学习oracle中集合操作的有关语句,掌握union,union all,minus,interest的使用,能够描述结合运算,并且能够将多个查询组合到一个查询中去,能够控制行返回的顺序。
包含集合运算的查询称为复合查询。见表格1-1
表1-1
Operator Returns content
UNION 由每个查询选择的所有不重复的行 并集不包含重复值
UNION ALL 由每个查询选择的所有的行,包括所有重复的行 完全并集包含重复值
INTERSECT 由每个查询选择的所有不重复的相交行 交集
MINUS 在第一个查询中,不在后面查询中,并且结果行不重复 差集
所有的集合运算与等号的优先级相同,如果SQL语句包含多个集合运算并且没有圆括号明确地指定另一个顺序,Oracle服务器将以从左到右的顺序计算。你应该使用圆括号来明确地指定带另外的集合运算的INTERSECT (相交) 运算查询中的赋值顺序。
Union all 效率一般比union高。
1.1.union和union all
UNION(联合)运算
UNION运算返回所有由任一查询选择的行。用UNION运算从多表返回所有行,但除去任何重复的行。
原则 :
􀂃被选择的列数和列的数据类型必须是与所有用在查询中的SELECT语句一致。列的名字不必相同。
􀂃联合运算在所有被选择的列上进行。
􀂃在做重复检查的时候不忽略空(NULL)值。
􀂃IN运算有比UNION运算高的优先级。
􀂃在默认情况下,输出以SELECT子句的第一列的升序排序。
全联合(UNION ALL)运算
用全联合运算从多个查询中返回所有行。
原则
􀂃和联合不同,重复的行不被过滤,并且默认情况下输出不排序。
􀂃不能使用DISTINCT关键字。
使用:
Select statement union | union all Select statement;
1.2.intersect交集操作
相交运算
用相交运算返回多个查询中所有的公共行。 无重复行。
原则
􀂃在查询中
相关文档:
--变量赋值
declare
identity :=0;
a varchar2(59,0);
b varchar2(50):='abc';
a :='cba';
-- 控制语句
----------------------------------
if a>b then
  ......
语法:
select *
from [TABLE] as of timestamp
to_timestamp('时间', ’时间格式')
作用:
查询某个时间点的数据,在这个时间点之后,数据更改已经提交了。
可以用来更正用户对数据的误操作
可以用来获取数据的更改情况,比如频率等
原理:
当数据update或delete时,原来的数据 ......
刚才上网搜checkpoint cnt,看到EYGLE写的一篇文章,写得不错,存起来方便以后学习。
=========================================================================
通过试验说明checkpoint cnt 和checkpoint scn的关系
1.在不同条件下转储控制文件
SQL> alter session set events 'immediate trace name C ......
oracle数据库是重量级的,其管理非常复杂,将其在linux平台上的启动和关闭步骤整理一下。
安装完毕oracle以后,需要创建oracle系统用户,
并在/home/oracle下面的.bash_profile添加几个环境变量:
ORACLE_SID,ORACLE_BASE,ORACLE_HOME。
比如:
export ORACLE_SID=test export ORACLE_BASE=oracle_install_di ......
一次奇怪的数据库启动和关闭经历。
SQL> conn / as sysdba
Connected to an idle instance.
SQL> shutdown immediate
ORA-24324: service handle not initialized
ORA-24323: value not allowed
ORA-01089: immediate shutdown in progress - no operations are permitted
SQL> conn / as sysdba
Co ......