Topcit

SQL DDL 요약

Life Log 2024. 10. 27. 16:20
728x90
반응형

DDL(Data Definition Language)은 데이터베이스의 구조(테이블, 인덱스, 뷰 등)를 정의하고 관리하는 SQL 언어의 한 부분입니다. DDL은 데이터의 스키마와 관계를 설정하는 데 사용되며, 주로 데이터베이스 객체(테이블, 인덱스, 뷰 등)의 생성, 수정, 삭제와 관련된 명령어들로 구성됩니다.

DDL의 특징

  • 자동 커밋: 대부분의 DDL 명령어는 실행 시 자동으로 트랜잭션이 커밋되므로, 롤백(Undo) 할 수 없습니다.
  • 구조적 변경: DDL은 데이터 자체가 아닌, 데이터베이스의 구조를 변경하는 데 중점을 둡니다.
  • 스키마 관리: 데이터베이스의 스키마를 설정하고 관리할 때 사용됩니다.

1. CREATE TABLE - 테이블 생성

CREATE TABLE emp (
    empno      NUMBER(4)       PRIMARY KEY,              -- 사원 번호 (기본 키)
    ename      VARCHAR2(10)    NOT NULL,                 -- 사원 이름 (NULL 불가)
    job        VARCHAR2(9)     DEFAULT 'STAFF',          -- 직급 (기본값 설정)
    mgr        NUMBER(4)       CONSTRAINT fk_mgr         -- 매니저 사원 번호 (외래 키)
                          REFERENCES emp(empno),
    hiredate   DATE           DEFAULT SYSDATE,           -- 입사일 (기본값 현재 날짜)
    sal        NUMBER(7, 2)    CHECK (sal >= 0),         -- 급여 (음수 불가)
    comm       NUMBER(7, 2)    DEFAULT 0,                -- 커미션 (기본값 0)
    deptno     NUMBER(2)       NOT NULL,                 -- 부서 번호 (NULL 불가)
    CONSTRAINT fk_dept FOREIGN KEY (deptno)              -- 부서 외래 키 제약
                          REFERENCES dept(deptno)
);

2. ALTER TABLE - 테이블 수정

2-1. 컬럼 추가

ALTER TABLE emp
ADD email VARCHAR2(50);  -- 이메일 컬럼 추가

2-2. 컬럼 수정

ALTER TABLE emp
MODIFY sal NUMBER(10, 2);  -- 급여 컬럼의 데이터 타입 크기 수정

2-3. 컬럼 삭제

ALTER TABLE emp
DROP COLUMN comm;  -- 커미션 컬럼 삭제

2-4. 제약 조건 추가

ALTER TABLE emp
ADD CONSTRAINT chk_sal CHECK (sal > 0);  -- 급여가 양수인지 확인하는 제약 조건 추가

2-5. 제약 조건 삭제

ALTER TABLE emp
DROP CONSTRAINT chk_sal;  -- 급여 제약 조건 삭제

3. DROP TABLE - 테이블 삭제

DROP TABLE emp CASCADE CONSTRAINTS;  -- emp 테이블 및 모든 제약 조건 삭제

4. TRUNCATE TABLE - 테이블 데이터 삭제

TRUNCATE TABLE emp;  -- emp 테이블의 모든 데이터 삭제 (구조는 유지)

5. RENAME - 테이블 이름 변경

RENAME emp TO employee;  -- emp 테이블 이름을 employee로 변경

6. CREATE INDEX - 인덱스 생성

CREATE INDEX idx_emp_job ON emp(job);  -- emp 테이블의 job 컬럼에 인덱스 생성

7. DROP INDEX - 인덱스 삭제

DROP INDEX idx_emp_job;  -- 인덱스 삭제

8. CREATE VIEW - 뷰 생성

CREATE VIEW emp_view AS
SELECT empno, ename, job, sal
FROM emp
WHERE sal > 3000;  -- 급여가 3000 이상인 사원만 포함하는 뷰 생성

9. DROP VIEW - 뷰 삭제

DROP VIEW emp_view;  -- emp_view 뷰 삭제

728x90
반응형

'Topcit' 카테고리의 다른 글

Java PreparedStatement  (0) 2024.10.28
Java 객체지향 프로그래밍 특징  (0) 2024.10.28
SQL DCL 요약  (0) 2024.10.28
SQL DML 요약  (1) 2024.10.27
SQL DQL 요약  (0) 2024.10.27