fairworld's life

Introduction to Oracle 9i ; SQL & PL/SQL 과제 본문

Computer Life/Programming Life

Introduction to Oracle 9i ; SQL & PL/SQL 과제

fairworld 2007. 6. 25. 09:09

1. S_EMP 테이블을 이용하여 사원의 이름, 급여, 보너스를 출력하되

  보너스는 각 급여에 따라 다음과 같이 차등 적용하여 출력하시오. (SQL 의 함수이용)

     급여 3000 이상이면 보너스는 급여의 20%,

     급여 1500 이상이면 보너스는 급여의 30%,

     급여 1500 미만이면 보너스는 급여의 40%를 적용

 

SELECT name, salary,

CASE WHEN salary >= 3000 THEN salary*1.2

WHEN salary >= 1500 THEN salary*1.3

                        ELSE salary*1.4

      END BONUS

FROM S_EMP;

 

2. S_EMP 테이블에 부서명 칼럼을 하나 추가한 뒤, 이 칼럼에

S_DEPT 테이블을 기초로 부서명을 저장하시오.

 

ALTER TABLE S_EMP

ADD (dept_name VARCHAR2(25)

    (dept_name S_DEPT.name WHERE S_EMP.dept_id = S_DEPT.id));

 

3. 이름, 전화번호, 주소를 저장할 수 있는 Object 타입을 선언하되,

   단 주소는 si(/), gu(/), addr(세부주소) 3가지 Field

저장 할 수 있는 Object 타입으로 선언하여 이용하시오.

 

CREATE OR REPLACE TYPE addr_type AS OBJECT

(si VARCHAR2(10),

 gu VARCHAR2(10),

 addr VARCHAR2(10));

CREATE OR REPLACE TYPE cust_type AS OBJECT

(name VARCHAR2(10),

 phone VARCHAR2(10),

 addr_detail ADDR_TYPE);

4. 테이블의 권한을 부여하고, 권한을 박탈하는 것과 관련된 문장을아래의 지시에 따라 작성하세요.

 

1)        USERA USERB에게 S_EMP 테이블에 대하여 ID, NAME 컬럼을 검색하도록 권한을 부여해 보시오.

 

GRANT SELECT(id, name)

ON S_EMP

TO USERB;

 

2) USERA USERB에게 S_EMP 테이블에 대하여 ID, NAME

럼에 대하여 데이터를 입력하도록 권한을 부여해 보시오.      

 

GRANT INSERT(id, name)

ON S_EMP

TO USERB;

 

3) 위의 2)에서 부여한 권한을 박탈하시오

 

REVOKE INSERT

ON S_EMP

FROM USERB;

====================================================================================================

대충 풀었는데 어딘가 오답이 있을 지도 모르겠사옵니다...