ORACLE 的游标、存储过程、触发器以及表的连接查询
来源:互联网 发布:ubuntu wily 编辑:程序博客网 时间:2024/06/07 19:14
1 表的连接查询
连接有相等连接、不等连接、自连接和外连接。但比较常说的是内连接和外连接。
相等连接示例:select a.name , b.number from a ,b where a.id=b.id
不等连接示例:select a.name ,b.number from a,b where a.id between b.losal and b.hisal
自连接示例:select t1.name ,t2.manager from emp t1,emp t2 where t1.managername=t2.name
外连接示例: select d.dname,e.ename from dept d,emp e where d.deptno=e.deptno(+) and e.deptno(+) =10
当使用“+”操作符执行外连接时,如果在where 子句中包含多个条件则必须在所有条件中都包含该操作符,它只能用于列而不能用在表达示上,且不能和OR和IN操作符一起使用。
为了简化连接查询,使得连接查询更加直观更容易写,SQL1999标准为连接查询提供了新语法,如:
select table.columnname,table2.columnname from table1
[cross join table2] |[Natural join table2]|
[join table using (columnname)]|
[join table2 on (table1.columnname=table2.columnname)]|
[left|right|full outer join table2]
2 游标的使用
游标分显式和隐含,后者用于处理单行SELECT into和DML语句,前者用于处理SELECT语句返回的多行数据。
游标的使用分为:
定义游标
打开游标
提取数据
关闭游标
example:
declare
cursor emp_cursor is
select ename,job,sal from emp where dep=&dno;---&dno is the input parameter
v_ename emp.ename%type;
v_job emp.job%type;
v_sal emp.sal%type;
begin
open emp_cursor;
loop
fetch emp_cursor int v_ename,v_job,v_sal;
exit when emp_cursor%notfound;
dbms_output.put_line('name'||v_ename||'job'||v_job||'salary'||v_sal);
end loop;
close emp_cursor;
end;
/
3存储过程
Create or replace procedure divide(num1 in out number,num2 in out number) is
v1 number;
v2 number;
begin
v1 :=TRUNC(num1/num2);
v2 :=MOD(num1,num2);
num1 := v1;
num2 := v2;
end;
/
调用存储过程:
delcare
num1 number;
num2 number;
num1 := 3;
num2 := 5;
exec divide(num1,num2)
4触发器
触发器包括语句触发器和行触发器两种类型。
语句触发器语法:
create or replace trigger trigger_name
before|after event1 [or event2 or event 3] on table_name
SQL block;
create or replace trigger tr_sec_emp
before insert or update or delete on emp
begin
....
end;
/
行触发器语法:
create or replace trigger trigger_name
before or after event1 or event2 or event3
on table_name
for each row [when condition]
sql block;
- ORACLE 的游标、存储过程、触发器以及表的连接查询
- oracle中存储过程,存储函数,触发器,游标,索引,事务以及锁的概念,作用
- oracle 存储过程,触发器遍历游标的三种方法
- Oracle数据库语句 简单的存储过程+触发器+游标
- sql触发器和存储过程,索引,事务,游标,视图以及子查询等不同的参数、前后触等
- Oracle与MySQL存储过程以及游标使用的区别
- MongoDb的分页查询,游标,存储过程
- MongoDb的分页查询,游标,存储过程
- mysql存储过程以及游标的使用
- Oracle中用sql查询获取数据库的所有触发器,所有存储过程,所有视图,所有表
- 在Oracle数据库中查询所有触发器、存储过程、视图、表的两种方法
- 在Oracle数据库中查询所有触发器、存储过程、视图、表的两种方法
- 游标,存储过程,触发器
- C# 连接 oracle 以及c# 存储过程的连接
- 游标,存储过程,触发器的入门级helloword
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- 索引、视图、游标、存储过程和触发器的理解
- MYSQL数据库的索引、视图、触发器、游标和存储过程
- APUE2作者提供的源码编译方法及单个源码编译的实现(转载)
- J2EE技术纵览
- 关于表单防重复提交一些东东
- MySpace拓展创收渠道反击Facebook
- 猎头
- ORACLE 的游标、存储过程、触发器以及表的连接查询
- C# windows 服务
- 裁员风暴中,哪些人最危险?
- 有没有面向目的的编程?
- hc95
- af
- 教你怎样用java编写垃圾文件清理软件!
- vmware下Linux的文件共享
- 回车和换行的区别