본문 바로가기

Oracle Database /SQL-문제풀이

[ORACLE] DB의 테이블 생성 문제 풀이

--1번) 테이블에서 부서별로 

--      인원수,평균,급여

--      급여의 합,최소급여, 최대 급여를 포함하는 EMP_DEPTNO테이블을 생성하라


CREATE TABLE EMP_DEPTNO( DEPNO, E_COUNT, E_AVG, E_SUM, E_MIN, E_MAX )

AS (

    SELECT DEPARTMENT_ID DEPTNO, COUNT(DEPARTMENT_ID), AVG(SALARY), SUM(SALARY), MIN(SALARY), MAX(SALARY)

    FROM EMPLOYEES

    GROUP BY DEPARTMENT_ID);

 

 --문제2)EMP_DEPTNO 테이블에 ETC COLUMN을추가하여라. 

 --단 자료형은 VARCHAR2(50)사용하라


ALTER TABLE EMP_DEPTNO 

ADD ETC VARCHAR2(50);

DESC EMP_DEPTNO;


 --문제3)EMP_DEPTNO 테이블에 ETC COLUMN을 수정하여라. 

 --단 자료형은 VARCHAR2(15)사용하라


ALTER TABLE EMP_DEPTNO

MODIFY ETC VARCHAR2(15);

DESC EMP_DEPTNO;


--문제4)EMP_DEPTNO 테이블에 있는 ETC 을 삭제하고 확인하라.

ALTER TABLE EMP_DEPTNO

DROP

COLUMN ETC;

DESC EMP_DEPTNO;


--문제5)이전에 생성한 EMP_DEPTNO 테이블의 이름을 EMP_DEPT로 변경하라.

ALTER TABLE EMP_DEPTNO

RENAME TO EMP_DEPT;


--문제6)EMP_DEPT 테이블을 삭제하라.

DROP TABLE EMP_DEPT;


--문제7)EMPLOYEES 테이블을 EMP 테이블을 생성하고 복제하도록 하라.

CREATE TABLE EMP

AS

SELECT

*

FROM EMPLOYEES ;


--문제8)EMP 테이블에 row를 추가해 봅니다.

--(다만, 반드시 데이터를 기입을 안해도 되면, NULL로 설정하도록 한다.)

INSERT INTO EMP

VALUES('ROW','NULL');

SELECT * FROM EMP;


--문제9)EMPLOYEES 테이블에서 

-- EMPNO,ENAME,SAL,HIREDATE의 COLUMN만 선택하여

-- EMP_10 테이블을 생성(데이터 미포함)한 후, 

-- 10번 부서만 선택하여 이에 대응하는 값을 EMP_10테이블에 입력하라.


DROP TABLE EMP_10;

CREATE TABLE EMP_10 AS (

    SELECT EMPLOYEE_ID, LAST_NAME, SALARY, HIRE_DATE

    FROM EMPLOYEES

    WHERE DEPARTMENT_ID = 10

);


SELECT

    *

FROM EMP_10;


--문제10) EMPLOYEES 테이블에서 사원 번호가 107인 사원의 부서를 10번으로 변경하여라.

UPDATE EMPLOYEES

SET DEPARTMENT_ID=10 

WHERE EMPLOYEE_ID=107;


--문제11) EMPLOYEES 테이블에서 사원 번호가 180인 사원의 부서를 20,

--급여를 3500으로 변경하여라.

UPDATE EMPLOYEES

SET DEPARTMENT_ID=20, SALARY = 3500

WHERE EMPLOYEE_ID=180;


SELECT

    *

FROM EMPLOYEES;


--문제12)EMPLOYEES 테이블에서 Smith의 업무와 급여가 Hall의 업무와 급여와 일치하도록 수정하라.

UPDATE EMPLOYEES

SET (JOB_ID, SALARY) = (SELECT JOB_ID, SALARY FROM EMPLOYEES WHERE LAST_NAME='Hall')

WHERE LAST_NAME='Smith';


SELECT

    *

FROM EMPLOYEES;