程序代码如下:
create table departments
(dep_id number primary key, dep_name varchar2(20));
INSERT INTO departments VALUES ('1','人事部'); INSERT INTO departments VALUES ('2','办公室'); INSERT INTO departments VALUES ('3','财务部'); INSERT INTO departments VALUES ('4','技术部'); INSERT INTO departments VALUES ('5','服务部'); commit; 执行结果如下:
6) 在本用户方案中创建表employees, 并为该表输入若干数据。 程序代码如下:
create table employees
(emp_id number primary key, emp_name varchar2(20), sex varchar2(2), title varchar2(10), wage number,
idcard varchar2(12), dep_id number,
foreign key(dep_id) references departments(dep_id));
INSERT INTO employees VALUES ('1','张三','男','部门经理',6000, '1101123aadx1','1');
INSERT INTO employees VALUES ('2','李四','男','职员',3000, '1101123dddx2','1'); INSERT INTO employees VALUES ('3','王五','女','职员',3500, '1101123aadx3','1'); INSERT INTO employees VALUES ('4','赵六','男','部门经理',6500, '1101123dddx4','2');
INSERT INTO employees VALUES ('5','高七','男','职员',2500, '1101123aadx5','2');
INSERT INTO employees VALUES ('6','马八','男','职员',3100, '1101123dddx6','2'); INSERT INTO employees VALUES ('7','钱九','女','部门经理',5000, '1101123aadx7','3');
INSERT INTO employees VALUES ('8','孙十','男','职员',2800, '1101123dddx8','3'); commit;
执行结果如下:
7)
编写PL/SQL程序,使用LOOP?EXIT?END语句计算1—100之间所有偶数之和。 程序代码如下:
SET ServerOutput ON; DECLARE
v_Num INTEGER := 2; v_Sum INTEGER := 0; BEGIN LOOP
v_Sum := v_Sum + v_Num; dbms_output.put_line(v_Num); EXIT WHEN v_Num = 100; dbms_output.put_line(' + '); v_Num := v_Num + 2; END LOOP;
dbms_output.put_line(' = '); dbms_output.put_line(v_Sum); END; 执行结果如下:
8)
编写PL/SQL程序,查询5号员工工资,如果工资小于3000,则加200工资,并提示信息“5号员工工资已更新。”,如果工资大于3000,则提示信息“5号员工工资为XXX,已达到规定标准。” 程序代码如下: DECLARE
ty employees.wage%type; BEGIN
Select wage into ty From employees
Where employees.emp_id =5; If ty<3000 then Update employees
Set employees.wage= employees.wage+200 Where employees.emp_id=5; Commit;
DBMS_OUTPUT.PUT_LINE('5号工资已更新'); Else
DBMS_OUTPUT.PUT_LINE('5号工资为'||ty||'已达到规定标准'); END if; Exception
When no_data_found then
DBMS_OUTPUT.PUT_LINE('不存在该员工'); When others then
DBMS_OUTPUT.PUT_LINE('其他异常'); End; /
执行结果如下:
9) 编写PL/SQL程序,查询1号员工的工资,使用CASE语句输出其工资等
级。工资小于等于3000,等级为―低‖;工资大于3000,小于5000,等级为‖中‖;工资大于等于5000,等级为高; 程序代码如下:
declare
v_id number := 1; v_wage number ; result varchar2(20); begin
select wage into v_wage from employees where emp_id=v_id ; result := case
when v_wage < 3000 then '低'
when v_wage > 3000 and v_wage < 5000 then '中' else '高' end;
dbms_output.put_line(result); end; /
执行结果如下:
10) 编写PL/SQL程序,查询的departments表中是否有部门号为“6”的记录,
如果没有,插入新记录部门号为6,部门名称为“后勤部”。如果有,显示查询结果。 程序代码如下: declare
v_depname departments.dep_name%type; v_grade varchar2(2); begin
select departments.dep_name into v_depname from departments
where departments.dep_id=6;
dbms_output.put_line('已存在部门号为6的记录,其部门名称是'||v_depname); exception
when no_data_found then
insert into departments values('6','后勤部'); dbms_output.put_line('插入了一条新记录!'); commit; end;
执行结果如下:
小结:
通过这次上机实验,我有以下收获:
但是还上机操作过程中还存在以下几个方面的不足:
指导老师评议:
成绩: 指导老师签名:
年 月
日
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库oracle实验指导书之全本(7)在线全文阅读。
相关推荐: