본문 바로가기
문제를 풀어보자

ORACLE) Do it! 오라클 10강 연습문제

by 휴일이 2022. 10. 23.

 

CREATE TABLE CHAP10HW_SALGRADE AS SELECT * FROM SALGRADE;

CREATE TABLE CHAP10HW_EMP AS SELECT * FROM EMP;

CREATE TABLE CHAP10HW_DEPT AS SELECT * FROM DEPT;

이 세 테이블을 만들고 시작하세요!!

 

1)

CHAP10HW_DEPT 테이블에

50,60,70,80 부서를 등록하는 SQL문을 작성하세요

 

 

--첫번째
INSERT INTO CHAP10HW_DEPT
(DEPTNO, DNAME, LOC)
VALUES (50,'ORACLE','BUSAN')
;

--두번째
INSERT INTO CHAP10HW_DEPT
VALUES (60,'SQL','ILSAN')
;

--세번째
INSERT INTO CHAP10HW_DEPT
VALUES (70,'SELECT','INCHEON')
;

--네번째
INSERT INTO CHAP10HW_DEPT
VALUES (80,'DML','BUNDANG')
;

 

 

결과

 

 

2)

다음과 같이 CHAP10HW_EMP 테이블에

다음 8명의 사원 정보를 등록하는 SQL문을 작성하세요

 

 

INSERT INTO CHAP10HW_EMP
(EMPNO,ENAME,JOB,MGR,HIREDATE,SAL,COMM,DEPTNO)
SELECT 7201,'TEST_USER1','MANAGER',7788,'2016-01-02',4500,NULL,50 FROM DUAL
UNION ALL
SELECT 7202,'TEST_USER2','CLERK',7201,'2016-02-21',1800,NULL,50 FROM DUAL
UNION ALL
SELECT 7203,'TEST_USER3','ANALYST',7201,'2016-04-11',3400,NULL,60 FROM DUAL
UNION ALL
SELECT 7204,'TEST_USER4','SALESMAN',7201,'2016-05-31',2700,300,60 FROM DUAL
UNION ALL
SELECT 7205,'TEST_USER5','CLERK',7201,'2016-07-20',2600,NULL,70 FROM DUAL
UNION ALL
SELECT 7206,'TEST_USER6','CLERK',7201,'2016-09-08',2600,NULL,70 FROM DUAL
UNION ALL
SELECT 7207,'TEST_USER7','LECTURER',7201,'2016-10-28',2300,NULL,80 FROM DUAL
UNION ALL
SELECT 7208,'TEST_USER8','STUDENT',7201,'2018-03-09',1200,NULL,80 FROM DUAL
;

 

 

결과

 

 

 

3)

CHAP10HW_EMP에 속한 사원 중

50번 부서에 근무하는 사원들의 평균급여보다

많은 급여를 받고 있는 사람들을 70번 부서로 옮기세요

 

UPDATE CHAP10HW_EMP
SET DEPTNO=70
WHERE DEPTNO=50 AND SAL>(
SELECT AVG(SAL)
FROM CHAP10HW_EMP
WHERE DEPTNO=50)
;

 

결과

 

 

 

 

 

4)

CHAP10HW_EMP에 속한 사원 중

60번 부서의 사원 중에 입사일이 가장 빠른 사람 보다

늦게 입사한 사원의 급여를 10% 인상하고, 80번 부서로 옮기세요

 

 

UPDATE CHAP10HW_EMP
SET DEPTNO=80, SAL=SAL+(SAL*0.1)
WHERE HIREDATE > (
SELECT HIREDATE
FROM CHAP10HW_EMP
WHERE DEPTNO=60)
;

 

 

결과

 

 

 

 

 

5)

CHAP10HW_EMP에 속한 사원 중,

급여 등급이 5인 사원을 삭제하는 SQL문을 작성하세요

 

 

DELETE FROM CHAP10HW_EMP
WHERE EMPNO IN
(SELECT EMPNO
FROM CHAP10HW_EMP, SALGRADE
WHERE SAL BETWEEN LOSAL AND HISAL
AND GRADE=5)
;

 

 

728x90