Oracle - DDL(DATA DEFINITION LANGUAGE)
DDL(DATA DEFINITION LANGUAGE) 언어
데이터베이스 내에 객체를 생성하고 병경하고 삭제하기 위해서는 DDL언어를 사용한다.
1. CREATE문 : 데이터베이스 내의 모든 객체를 생성할때 사용
2. ALTER문 : 이미 생성된 객체의 구조를 변경할때 사용
3. DROP문 : 생성되어있는 객체를 삭제할때 사용
4. RENAME문 : 테이블 명 변경
5. COMMENT문 : 주석 작성
6. TRUNCATE문 : 데이터의 모든 행을 삭제
DML언어의 DELETE문과 같은 효과지만 TRUNCATE문은 AUTO COMMIT
TRUNCATE문은 WHERE절 사용할수없고 모든행을 삭제한다.(속도는 빠름)
CREATE
CREATE TABLE EMPS
(EMPNO NUMBER(4) --- 정수형
ENAME VARCHAR(20)
SAL NUMBER(7,2) --- 12345.67(실수형)
HIREDATE DATE);
TABLE 이름 및 COLUMN
1) A~Z, a~z, 0~9, _, $, #
2) 첫글자는 영문
3) 1~30자까지 사용가능
4) 예약어 사용 금지
5) 의미있게 생성
테이블 복사
CREATE TABLE COPY_EMP
AS SELECT * FROM EMP WHERE 0=1; (컬럼만 복사 WHERE절 만족못하므로 ROW값 복사X)
DML-SUBQUERY사용가능
INSERT INTO COPY_EMP1
SELECT * FROM EMP; (ROW없는 테이블에 ROW복사)
ALTER
새로운 컬럼 추가
ALTER TABLE EMP
ADD ( HP VARCHAR2(20));
이름변경
ALTER TABLE EMP
RENAME COLUMN HP TO MP;
기존 컬럼 값 변경
ALTER TABLE EMP
MODIFY (MP VARCHAR2(11));
컬럼 삭제
ALTER TABLE EMP
DROP COLUMN MP;
COMMENT
COMMENT ON TABLE EMP IS '사원번호';
COMMENT ON COLUMN EMPNO IS '사원번호';
SQL> DESC USER_TAB_COMMENTS
SQL> SELECT TABLE_NAME , COMMENTS
2 FROM USER_TAB_COMMENTS;
SQL> --COL[UMN] HEADING명 FORMAT A 숫자
SQL> COL COMMNETS FORMAT A20
TRUNCATE
TRUNCATE TABLE EMP; (AUTO COMMIT 라 ROLLBACK; 안됨)