oracle常见查询练习

发布 2021-05-08 20:04:28 阅读 6605

以下作业要求将每一题的执行命令脚本按顺序保存起来,并且加上适当的注释说明。

均为使用pl/sql完成的作业!《

1、 编写带输入参数的过程,实现员工查询,根据雇员编号,查询雇员的姓名,职务和部门名称,如果没有找到,要提示雇员编号未找到!使用exec命令进行测试。

create or replace procedure select_byid(v_eno in out varchar2 )

ascursor my_cursor is select * from emp where empno=v_eno;

v_emp emp%rowtype;

beginopen my_cursor;

fetch my_cursor into v_emp ;

if(my_cursor%found) then

uresult:='success!';

end if;

close my_cursor;

end;declare

uresult varchar2(50):=雇员编号未找到!';

eno begin

select_byid(eno,uresult);

dbms_end;

2、 创建一个名称为my_swap的过程,有两个in out类型的数字型参数,实现数字交换。

定义两个数字变量作为实际参数,调用过程实现数字交换,并在输出交换后变量的值。

create or replace procedure swap(p1 in out number,p2 in out number)

as temp number;

begintemp:=p1;

p1:=p2;

p2:=temp;

end;declare

number1 number:=100;

number2 number:=200;

begindbms_

swap(number1 ,number2);

dbms_end;

3、 编写一个向dept表插入数据的过程。

create or replace procedure insert_dep(v_dno

asbegin

insert into dept(deptno,dname) values(v_dno,v_dname);

end;begin

insert_dep(2,'zhangsan');

end;4、 编写一个输出dept表中所有数据的过程。

create or replace procedure select_dept

ascursor my_cursor is select * from dept;

v_dept dept%rowtype;

beginopen my_cursor;

fetch my_cursor into v_dept ;

while my_cursor%found loop

dbms_fetch my_cursor into v_dept ;

end loop;

close my_cursor;

end;begin

select_dept;

end;5、 创建一个过程,显示指定雇员所在的部门名称和所在城市。

create or replace procedure select_dept2(v_dno

ascursor my_cursor is select * from dept where

v_dept dept%rowtype;

beginopen my_cursor;

fetch my_cursor into v_dept ;

dbms_'编号:'|v_'部门名称:'|v_'地址'||v_

close my_cursor;

end; declare

d_no number:=&dno;

beginselect_dept2(d_no);

end;6、 编写一个向emp表添加数据的过程,可传入三个参数雇员编号,雇员姓名,雇员部门。执行成功或失败要给出提示,处理执行过程中可能发生的异常。

create or replace procedure insert_emp(v_eno

ascan_not_insert exception;

cursor my_cursor is select empno from emp where empno=v_eno;

v_no number;

beginopen my_cursor;

fetch my_cursor into v_no;

if my_cursor%found then

raise can_not_insert;

end if;

insert into emp(empno,ename,deptno) values(v_eno,v_ename,v_dno);

exception

when can_not_insert then

dbms_'插入失败!')

close my_cursor;

end; begin

insert_emp(7934,'my_proce',10);

end;

Oracle基础查询关联查询练习题

有职员表 emp,表结构如表 1所示 表 1 职员表emp 信息。emp 表中的示例数据如图 1所示 图 1有部门表 dept,表结构如表 2所示 表 2 部门表 dept 信息。dept表中的示例数据如图 2所示 图 2需要完成如下查询 1 查询职员表中,在20和30号部门工作的员工姓名和部门号。...

3oracle查询语句练习

实验三 查询语句的练习。一 实验目的。1.掌握select语句的基本语法 2.掌握子查询的表示 3.掌握多表查询的表示 二 实验内容及步骤。以scott登录数据库,查看scott用户已经存在的 并使用scott用户已存在的 做以下查询。注 把查询语句粘贴到相应题目下面,并保存。1 查看dept表结构...

ORACLE高级查询

本章目标 多表查询。联接查询 inner join 内联接 left outer join 左外联接 right outer join 右外联接 full join 全联接 子查询。集合操作。union 联合 union all 联合所有 intersect 交集 minus 减集 一 连接类型。o...