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;


本文标签: 绑定 结果 变量 语句