1. EMP 테이블의 SAL에 UPDATE가 발생하면 로그를 저장하는 EMP_UP_SAL_LOG 테이블과 트리거를 작성하시오. SAL에 UPDATE가 발생하면 트리거에 의해 EMP_UP_SAL_LOG 테이블 에 UPDATE가 발생한 날짜, SAL가 변경 된 사원의 이름, 변경 전 SAL의 값, 변경 후SAL의 값, 증감율 ((변경 후 SAL-변경 전 SAL) / 변경 전 SAL) 값을 저장한다. 2개 이상의UPDATE 문을 수행하여 EMP_UP_SAL_LOG의 내용을 보이시오.
create table emp_up_sal_log (
updateat date,
ename varchar(10),
old_sal decimal(7,2),
new_sal decimal(7,2),
rate decimal(5,2)
);
delimiter $$
create trigger trg_emp_sal_update
after update on emp
for each row
begin
if new.sal <> old.sal then
insert into emp_up_sal_log (
updateat,
ename,
old_sal,
new_sal,
rate
) values (
sysdate(),
new.ename,
old.sal,
new.sal,
(new.sal - old.sal) / old.sal
);
end if;
end $$
delimiter ;
select *
from emp;
update emp set sal = sal + 500 where ename = 'SMITH';
update emp set sal = sal + 1000 where ename = 'ALLEN';
select *
from emp_up_sal_log;
2. 커서를 사용하여 EMP 테이블에서 늦게 입사한 순서대로 5명의 사원 이름(ENAME)을 출 력하는 emp_DateRank 프로시저를 작성하고 호출한 결과를 작성하시오.
select *
from emp;
delimiter $$
create procedure emp_daterank()
begin
declare done int default false;
declare emp_name varchar(10);
declare cur cursor for
select ename
from emp
order by hiredate desc
limit 5;
declare continue handler for not found set done = true;
open cur;
emp_loop: loop
fetch cur into emp_name;
if done then
leave emp_loop;
end if;
select emp_name;
end loop;
close cur;
end $$
delimiter ;
call emp_daterank();
'CS > 데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 기본 개념과 구조 (2) | 2024.09.17 |
---|---|
[데이터베이스] 데이터베이스설계 실습3 (0) | 2024.09.16 |
[데이터베이스] 데이터베이스설계 실습2 (0) | 2024.09.16 |
[데이터베이스] 데이터베이스설계 실습1 (1) | 2024.09.16 |
[데이터베이스] 관계 데이터 모델의 개념과 정의문 (1) | 2024.09.15 |