데이터베이스

26일차// [Oracle] TABLE 예제

aesup 2021. 2. 17. 11:57
728x90
--문제1) EMPLOYEES 테이블에서 부서별로 인원수,평균 급여,급여의 합,최소 급여,
--최대 급여를 포함하는 EMP_DEPTNO 테이블을 생성하라.
CREATE TABLE EMP_DEPTNO
AS
SELECT department_id, count(*) as "인원수", trunc(AVG(salary)) as AVG, SUM(salary) as SUM, MIN(salary) as MIN ,
        MAX(salary)  as MAX
FROM employees
GROUP BY department_id;

DROP  table emp_deptno;
--문제2) EMP_DEPTNO 테이블에 ETC COLUMN을 추가하라.
--단 자료형은 VARCHAR2(50) 사용하라.

ALTER TABLE EMP_DEPTNO
ADD
ETC VARCHAR2(50);

SELECT
    *
FROM emp_deptno;

--문제3) EMP_DEPTNO 테이블에 ETC COLUMN을 수정하라.
--자료 형은 VARCHAR2(15)로 하라.
ALTER TABLE EMP_DEPTNO
MODIFY ETC VARCHAR2(15);


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

--문제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(200,'수빈','이','email','010-0000-0000','2021-02-16','student',NULL,NULL,NULL,NULL);

SELECT
    *
FROM emp;

--문제9) EMPLOYEES 테이블에서 EMPNO,ENAME,SAL,HIREDATE의 COLUMN만
--선택하여 EMP_10 테이블을 생성(데이터 미포함)한 후 10번 부서만 선택하여
--이에 대응하는 값을 EMP_10테이블에 입력하라.
CREATE TABLE EMP_10(EMPNO,ENAME,SAL,HIREDATE)
AS
SELECT employee_id, First_name, salary, hire_date
FROM employees
WHERE 1=2;

INSERT INTO EMP_10(EMPNO,ENAME,SAL,HIREDATE)
SELECT employee_id, First_name, salary, hire_date
FROM employees
WHERE department_id = 10;

--문제10) 다음은 무결성 제약 조건이 위배된 쿼리이다.
--무엇을 위배했는지 알아보도록 합시다.

INSERT INTO EMPLOYEES
VALUES (100, NULL, 'YOON', 'dbs', NULL, SYSDATE, 'ST_MAN', NULL, NULL,
NULL, NULL);
--중복
INSERT INTO EMPLOYEES
VALUES (98, NULL, 'YOON', 'dbs', NULL, SYSDATE, 'ST_MAN', NULL, NULL,
NULL, 100);
--중복
INSERT INTO EMPLOYEES
VALUES (98, NULL, 'YOON', 'dbs2', NULL, SYSDATE, 'ST_MAN', NULL, NULL,
NULL, 101);
--외래키
728x90