본문 바로가기
연습 문제

예제 따라가며 쉽게 배우는 오라클 연습 문제 p.308

by 알기 쉬운 코딩 사전 2023. 1. 4.
반응형

연습문제 sql은 모두 제가 직접 작성한 것이므로 오타, 오답이 존재할 수 있습니다.

궁금하신 점이 추가로 있을 시에는 문의하시면 최대한 답변드리겠습니다.

 

1. 테이블 EMP를 기본으로 SAL의 값을 변경하여 RESAL 테이블을 작성하는 PL/SQL 블록을 작성하여라.

 

1) 테이블 RESAL을 생성하여라.

 

칼럼명 no name salary resalary dept
DataType num v2 num num num
길이 4 10 7,2 8,2 2

 

[답]

resal 테이블 생성

create table resal
(no number(4),
name varchar2(10),
salary number(7, 2),
resalary number(8, 2),
dept number(2));
resal 테이블에 emp 테이블의 데이터를 복사합니다.

insert into resal(no, name, salary, resalary, dept)
select empno, ename, sal, sal, deptno
from emp;

 

2) 커서를 이용하여 다음과 같은 조건을 만족하는 프로그램 CONTROL을 작성하여라.

 

-EMP 테이블로부터 deptno = 10인 행들을 선택해서 resalary=sal*1.1의 상태로 입력

 

-EMP 테이블로부터 deptno = 20인 행들을 선택해서 resalary=sal*1.2의 상태로 입력

 

-EMP 테이블로부터 deptno = 30인 행들을 선택해서 resalary=sal*1.3의 상태로 입력

 

-EMP 테이블로부터 deptno = 40인 행들을 선택해서 resalary=sal*1.4의 상태로 데이터를 입력한다.

 

[답]

dms_output.put_line의 결과를 화면에 나타나게 하기 위한 환경변수입니다.
set serveroutput on

begin
    update resal
    set resalary = salary * 1.1
    where dept = 10;
    update resal
    set resalary = salary * 1.2
    where dept = 20;
    update resal
    set resalary = salary * 1.3
    where dept = 30;
    update resal
    set resalary = salary * 1.4
    where dept = 40;
    dbms_output.put_line(SQL%ROWCOUNT || '명 사원의 급여가 수정되었습니다.');
end;
/

 

3) 실행시킨 결과를 확인하여라.

 

[답]

select *
from resal;

 

 

2. 테이블 EMP로부터 커미션이 NULL이 아닌 사원의 사원번호, 이름, 급여를 이름 기준 오름차순으로 정렬한 결과를 화면에 출력하여라.

 

[답]

select empno, ename, sal
from emp
where not (comm IS NULL)
order by ename;

 

궁금한 점이 있을 시 덧글 주시면 최대한 답글 드리겠습니다.

반응형

댓글