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 |