admin 管理员组文章数量: 1184232
2024年3月10日发(作者:sqlserver2008配置管理器在哪里)
SQL、PL/SQL学习笔记
1.SQL并行查询
alter session enable parallel dml
execute immediate 'alter session enable parallel dml'; --修改会话并行
DML
select /*+parallel(a,4)*/ * from table_name a
select /*+parallel(a,8)*/ * from table_name a
select /*+parallel(a,4) parallel(b,4) parallel(c,4)*/ a.*,b.*,c.*
from table_name1 a,table_name2 b,table_name c
insert /*+parallel(t,4)*/ into table_name t
insert /*+parallel(t,8)*/ into table_name t
/*+parallel(t,8)*/ 并行处理,一般为CPU的倍数如:4,8等,在执行类型
SQL必须先运行:alter session enable parallel dml
2.删除表分区数据
alter table _mk_sc_user_mon truncate
mk_user_mon_'||trim(iv_month) 删除指定表分区数据
partition
3.minus(差集)与intersect(交集)
minus 指令是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所
产生的结果,然后看这些结果有没有在第二个 SQL 语句的结果中,如果
有的话,那这一笔资料就被去除,而不会在最后的结果中出现; 如果
第二个 SQL 语句所产生的结果并没有存在于第一个 SQL 语句所产生的
结果内,那这笔资料就被抛弃。
intersect 指令是运用在两个SQL语句上,如果两个SQL语句的记录完全
相同则显示相应记录,否则将不在结果中出现
4.Order by 中的 nulls last
order by area_code,bill_month nulls last --nulls last 将排序字段为null记录
放在最后面
5.nvl的几个不同函数
nvl(a,1) 如果 a 为 null 返回 1,否则返回 a
nvl2(a,1,0) 如果 a 为 null 返回 0,否则返回 1
nullif(a,b) 如果 a = b 返回 null ,否则返回 a
6.怎样确保最终用户在数据库中只有N个会话(如果N 为1则
只有1个会话)
create profile one_session limit sessions_per_user N; --创建参数文件(N为
任意整数)
alter user <用户> profile one_session; --设置用户的参数文件
alter system set resource_limit=true; --设置资源限定
7.表的字段参照另外表的字段
create table resources ( resource_name varchar2(10) primary key,,,,);
create table schedules (resource_name references resources,….);
8.绑定变量的使用
1) sql中的绑定变量
定义绑定变量:variable emplno varchar2(10);
给绑定变量赋值:execute :emplno := ‘1234567890’;
sql/plus中使用绑定变量:select * from emp where empno = :emplno;
pl/sql中使用绑定变量:execute immediate ‘insert into t values(:x)’
using x;
游标中使用绑定变量:open c1 for ‘select * from emp where
empno=:empno’ using empno;
2) DDL语句中不允许使用绑定变量,如:execute immediate ‘create table
a as selct * from b where x=:x’ using x;
3) pl/sql中的批量绑定变量(forall)
a) forall i in 1..
dml;--只能有一条语句(update,insert,delete)
sql%bulk_rowcount(i):用于取得在执行批量绑定操作时的第
i个元素作用的行数
b) bulk collect 子句:用于取得批量数据,它只适用于select
into、fetch into和DML返回子句
语法:…BULK COLLECT INTO collection_name…
i. select 中使用bulk collect
declare
type emp_table_type is table emp%rowtype index by
binary_integer;
版权声明:本文标题:Oracle_SQL学习笔记 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710011196a553541.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论