Programing/Oracle

Oracle - DDL(DATA DEFINITION LANGUAGE)

woony5231 2008. 7. 29. 16:55

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; 안됨)