1. DDL(Data Definition Language)

- 데이터베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성, 변경, 삭제 관련 기능을 수행한다.

- DML과 달리 명령어를 수행하자마자 COMMIT되어 데이터베이스에 수행한 내용이 바로 반영된다.

- ROLLBACK을 통한 실행 취소가 불가하기 때문에 사용할 떄 주의를 기울여야 한다.

 

2. CREATE

/* CREATE */
CREATE TABLE 소유계정이름.테이블이름(
	열1 이름, 열1 자료형
	열2 이름, 열2 자료형
	...
	열n 이름, 열n 자료형
);

- 소유계정이름을 생략하면, 현재 접속해 있는 계정 소유의 테이블이 만들어진다.

- 테이블 이름을 지정할 때는 대소문자를 구별하지 않는다. 큰따옴표(" ")를 사용하면 대소문자를 구별하여 테이블 이름을 지정할 수 있다.

- 이름 규칙

구분 설명
테이블 - 테이블 이름은 문자로 시작해야 한다.
- 테이블 이름은 30byte 이하여야 한다.
- 같은 소유 계정의 테이블 이름은 중복될 수 없다.
- 테이블 이름은 영문자, 한글, 숫자, 특수 문자($, #, _)를 사용할 수 있다.
- SQL 키워드는 테이블 이름으로 사용할 수 없다.
컬럼 - 열 이름은 문자로 시작해야 한다.
- 열 이름은 30byte 이하여야 한다.
- 한 테이블의 열 이름은 중복될 수 없다.
- 열 이름은, 영문자, 한글, 숫자, 특수 문자($, #, _)를 사용할 수 있다.
- SQL 키워드는 열 이름으로 사용할 수 없다.
/* CREATE 예시 */
CREATE TABLE EMP_DDL(
	EMPNO NUMBER(4),
	ENAME VARCHAR2(10),
	HIREDATE DATE,
	SAL NUMBER(7,2)
);

/*
NUMBER(n1, n2)
n1: 소숫점 이하를 포함한 자릿수
n2: 소숫점 자릿수
ex) NUMBER(7,2) : 12345.67
*/

 

3. ALTER

- 이미 생성된 데이터베이스 객체를 변경할 때 사용한다.

- 종류

키워드 설명
ADD 테이블에 새 열을 추가한다.
RENAME 테이블의 열 이름을 변경한다.
MODIFY - 테이블 특정 열의 자료형이나 길이를 변경한다.
- 열의 자료형이나 길이를 변경하는 것은 테이블에 저장된 데이터에 문제가 생기지 않는 범위 내에서만 허용된다.
DROP - 테이블의 특정 열을 삭제한다.
- 해당 열의 데이터도 함께 삭제된다.
/* ADD 예시 */
ALTER TABLE EMP_ALTER
ADD HP VARCHAR2(20);

/* 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;

 

4. RENAME

- 테이블 이름을 변경한다.

/* REANME 예시 */
RENAME EMP_ALTER TO EMP_RENAME;

 

5. TRUNCATE

- 특정 테이블의 모든 데이터를 삭제한다.

- 데이터만 삭제하므로 테이블 구조에는 영향을 주지 않는다.

- 데이터 정의어이기 때문에 ROLLBACK이 되지 않는다. 즉 DELETE문과 달리 삭제 이후 복구할 수 없다.

/* TRUNCATE 예시 */
TRUNCATE TABLE EMP_RENAME;

 

6. DROP

- 데이터베이스 객체를 삭제한다.

- 테이블의 경우, 저장된 데이터도 모두 삭제된다.

- 데이터 정의어 이기 때문에 ROLLBACK이 되지 않는다.

- 오라클 10g부터 FLASHBACK 기능을 사용하여 DROP 명령어로 삭제된 테이블을 복구할 수 있다.

/* DROP 예시 */
DROP TABLE EMP_RENAME;

 

참고

- 『오라클로 배우는 데이터베이스 입문』

'Database' 카테고리의 다른 글

Index  (0) 2021.10.26
Data Dictionary  (0) 2021.10.26
Transaction & Session  (0) 2021.10.22
Schema  (0) 2021.10.21
DML(Data Manipulation Language)  (0) 2021.10.21