| 명령어 | 설명 | 주요 특징 |
|---|---|---|
| CREATE | 데이터베이스, 테이블, 뷰, 인덱스 등 새로운 데이터베이스 객체를 생성합니다. | 객체의 구조를 정의합니다. |
| ALTER | 기존에 존재하는 데이터베이스 객체의 구조를 변경합니다. | 컬럼 추가/삭제, 데이터 타입 변경 등이 가능합니다. |
| DROP | 데이터베이스 객체를 완전히 삭제합니다. | 데이터와 구조가 모두 삭제되며, 실행 후 복구가 어렵습니다. |
| TRUNCATE | 테이블의 모든 데이터를 삭제하고 할당된 저장 공간을 초기화합니다. | 테이블 구조는 유지되며, DELETE보다 처리 속도가 빠릅니다. |
| 분류 | 대표타입 | 저장데이터 |
|---|---|---|
| 문자형 | CHAR, VARCHAR2 (또는 VARCHAR) | 고정 및 가변 길이 문자열 |
| 숫자형 | NUMBER, INT, FLOAT | 정수 및 실수 형태의 숫자 데이터 |
| 날짜형 | DATE, TIMESTAMP | 연, 월, 일, 시, 분, 초 등의 날짜 및 시간 데이터 |
| 대용량형 | BLOB, CLOB | 이미지, 동영상, 대용량 텍스트 등의 바이너리 및 텍스트 데이터 |
1) CHAR(고정 길이)
2) VARCHAR2(가변길이)
| 구분 / 조건 | 의미 | 저장가능 |
|---|---|---|
안 쓸 때 (NUMBER) | 전체 자릿수와 소수점 자릿수의 제한이 없음 (최대 정밀도 38자리) | 대용량 정수 및 실수 데이터 (최대 38자리까지 자유롭게 저장 가능) |
P만 쓸 때 (NUMBER(P)) | 소수점 이하 자릿수가 0으로 지정됨 (NUMBER(P, 0)과 동일하며 정수만 허용) | 총 P자리 이하의 정수 (예: NUMBER(3)은 -999 ~ 999) |
4, 2일 때 (NUMBER(4, 2)) | 전체 4자리 중 소수점 이하 2자리 지정 (정수부 최대 2자리, 소수부 2자리) | -99.99 ~ 99.99 범위의 숫자 |
5, 2일 때 (NUMBER(5, 2)) | 전체 5자리 중 소수점 이하 2자리 지정 (정수부 최대 3자리, 소수부 2자리) | -999.99 ~ 999.99 범위의 숫자 |
1) DATE
2) TIMESTAMP
| 종류 | 영문 | 특징 |
|---|---|---|
| 기본키 | PRIMARY KEY | 테이블의 각 행을 고유하게 식별하며, 중복 값과 NULL을 허용하지 않습니다. (UNIQUE + NOT NULL) |
| 외래키 | FOREIGN KEY | 다른 테이블의 기본키를 참조하여 테이블 간의 관계를 정의하고 데이터의 참조 무결성을 유지합니다. |
| 고유키 | UNIQUE | 컬럼에 중복된 데이터가 입력되는 것을 방지합니다. (단, NULL 값은 허용됨) |
| 널 금지 | NOT NULL | 해당 컬럼에 빈 값(NULL)이 입력되는 것을 원천적으로 차단합니다. |
| 검사(점검) | CHECK | 설정된 특정 조건식을 만족하는 데이터만 입력되도록 제한합니다. |
| 기본값 | DEFAULT | 데이터를 입력할 때 값을 생략하면 미리 지정된 기본값이 자동으로 입력됩니다. |
| 옵션 | 동작 |
|---|---|
| NO ACTION | 부모 테이블의 데이터가 삭제될 때 자식 테이블에 참조하는 데이터가 존재하면 삭제를 거부합니다. (아무 작업도 수행하지 않으며, 대부분의 RDBMS 기본값입니다.) |
| CASCADE | 부모 테이블의 데이터가 삭제될 때, 해당 데이터를 참조하는 자식 테이블의 행(데이터)도 연쇄적으로 함께 삭제됩니다. |
| SET NULL | 부모 테이블의 데이터가 삭제될 때, 해당 데이터를 참조하는 자식 테이블의 컬럼 값을 NULL로 변경합니다. |
1) 컬럼추가(ADD)
2) 컬럼 자료형 변경(MODIFY)
3) 컬럼명 변경(RENAME COLUMN)
4) 컬럼 삭제(DROP COLUMN)
5) 제약조건 추가·삭제
① 제약 조건 추가
- ADD CONSTRAINT로 이름 있는 제약조건을 추가
- CONSTRAINT 이름은 삭제 시 사용되므로 의미 있게 부여
② 제약 조건 삭제
- DROP CONSTRAINT 뒤에 이름을 지정해 삭제
- DDL이므로 자동 커밋되며 ROLLBACK 불가
| 항목 | DELETE | TRUNCATE | RENAME |
|---|---|---|---|
| 명령 분류 | DML (데이터 조작어) | DDL (데이터 정의어) | DDL (데이터 정의어) |
| 처리 대상 | 테이블의 특정 행(Row) 단위 데이터 | 테이블의 전체 데이터 | 테이블(또는 객체)의 이름 |
| 테이블 구조 | 유지됨 | 유지됨 | 유지됨 (이름만 변경) |
| WHERE 절 | 사용 가능 (조건별 삭제 가능) | 사용 불가 | 사용 불가 |
| ROLLBACK | 가능 (트랜잭션 롤백 지원) | 불가능 (자동 Commit) | 불가능 (자동 Commit) |
| 처리속도 | 느림 (행 단위로 로그 기록 및 삭제) | 빠름 (데이터 저장 공간 할당 해제) | 빠름 (메타데이터 딕셔너리만 수정) |