SQL - 데이터 정의어(DDL)

AIR·2024년 1월 17일

CREATE

-- 데이터 정의어(DDL)
-- DML과 달리 명령어를 수행하자마자 데이터베이스에 반영된다.

-- 자료형을 정의하여 테이블 생성
CREATE TABLE EMP_DDL
(
    EMPNO    NUMBER(4),
    ENAME    VARCHAR2(10),
    JOB      VARCHAR2(9),
    MGR      NUMBER(4),
    HIREDATE DATE,
    SAL      NUMBER(7, 2),
    COMM     NUMBER(7, 2),
    DEPTNO   NUMBER(2)
);

-- 다른 테이블 복사
CREATE TABLE DEPT_DDL AS SELECT * FROM DEPT;
SELECT * FROM DEPT_DDL;

-- 다른 테이블 일부 복사(30번 부서의 사원만 저장)
CREATE TABLE EMP_DDL_30 AS
SELECT *
FROM EMP
WHERE DEPTNO = 30;
SELECT * FROM EMP_DDL_30;

-- 기존 테이블의 열 구조만 복사
CREATE TABLE EMPDEPT_DDL AS
SELECT E.EMPNO,
       E.ENAME,
       E.JOB,
       E.MGR,
       E.HIREDATE,
       E.SAL,
       E.COMM,
       D.DEPTNO,
       D.DNAME,
       D.LOC
FROM EMP E,
     DEPT D
WHERE 1 <> 1;
SELECT * FROM EMPDEPT_DDL;

ALTER, TRUNCATE, DROP

-- ALTER
CREATE TABLE EMP_ALTER AS SELECT * FROM EMP;

-- ADD: 테이블에 열 추가
ALTER TABLE EMP_ALTER
    ADD HP VARCHAR2(20);
SELECT * FROM EMP_ALTER;

-- RENAME: 열 이름 변경
ALTER TABLE EMP_ALTER RENAME COLUMN HP TO TEL;

-- MODIFY: 열의 자료형 변경
ALTER TABLE EMP_ALTER
    MODIFY EMPNO NUMBER(5);

-- DROP: 특정 열 삭제
ALTER TABLE EMP_ALTER DROP COLUMN TEL;

-- RENAME: 테이블 이름 변경
ALTER TABLE EMP_ALTER RENAME TO EMP_RENAME;

-- TRUNCATE: 테이블의 데이터 삭제, DDL이기 때문에 복구 불가
TRUNCATE TABLE EMP_RENAME;
SELECT * FROM EMP_RENAME;

-- DROP: 테이블 삭제
DROP TABLE EMP_RENAME;
profile
백엔드

0개의 댓글