DDL(Data Definition Language)
✒️ 2025-06-02 16:31 내용 수정
수제비 2024 정보처리기사 필기 5판 1권의 내용 일부를 참고하여 정리
DDL(Data Definition Language)
데이터베이스의 구조를 정의하기 위한 명령어
- 객체 생성, 수정, 삭제 등에 관련된 QUERY문
- Oracle은 Table 다루기에 상세 예제들 참고.
- MySQL은 Table 다루기에 상세 예제를 참고하되, Oracle을 먼저 배우고 MySQL을 배웠기에 일부 내용이 빠져 있을 수 있다.
- PostgreSQL은 Table 다루기의 예제 참고.
- DDL의 대상은 스키마, 테이블, VIEW, INDEX이다.
DDL 명령어
1. CREATE
- 데이터베이스 객체(테이블, 뷰, 인덱스 등) 생성한다.
- ( ) 안에는 빈 줄을 넣지 않는다.
CREATE TABLE 테이블명 (
속성명1 데이터타입, -- 속성이 여러 개일 때 콤마 ","로 구분
속성명2 데이터타입 -- 마지막 속성에는 콤마 제외
); -- 세미콜론 ";" 필수
CREATE TABLE 테이블명 ( 속성명1 데이터타입, 속성명2 데이터타입 );
2. ALTER
- 객체의 구조나 속성을 추가, 삭제, 데이터 타입을 변경한다.
ALTER TABLE 테이블명 RENAME TO 새테이블명; -- 테이블 명 수정
ALTER TABLE 테이블명 ADD(컬럼명 데이터타입); -- 속성 추가
ALTER TABLE 테이블명 RENAME COLUMN 컬럼명 TO 새컬럼명; -- 속성명 변경
ALTER TABLE 테이블명 DROP COLUMN 컬럼명; -- 속성 삭제
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건종류; -- 이미 생성된 테이블에 제약 조건 추가
3. DROP
- 데이터베이스 객체를 제거한다.
- 삭제 시 해당 객체와 관련된 데이터도 삭제되므로 협업이나 민감한 정보를 다룰 때 매우 조심해야 한다.
DROP TABLE 테이블명;
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
4. TRUNCATE
- 테이블 안에 있는 모든 데이터를 삭제하지만 테이블의 구조는 유지한다.
- 롤백이 가능한 트랜잭션을 생성하지 않아 복구가 불가능하다.
TRUNCATE TABLE 테이블명;
5. COMMENT
- 데이터베이스 객체에 대한 주석을 추가한다.
COMMENT ON TABLE 테이블명 IS '이 테이블의 주석입니다.';
6. RENAME
- 객체의 이름을 변경한다.
RENAME 테이블명 TO 새테이블명;