본문 바로가기

공부/데이터베이스

[오라클로 배우는 데이터베이스 입문] 12. 데이터 정의어

1. 객체를 생성, 변경, 삭제하는 데이터 정의어(DDL:DataDefinitionLanguage)

- 데이터 정의어를 사용할 때 유의점

데이터 조작어(DML)과 달리 명령어 수행하자마자 자동으로 COMMIT되기 때문에 ROLLBACK을 통한 실행취소가 불가능하므로 주의를 기울여 사용해야 함

2. 테이블을 생성하는 CREATE

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

※ 소유 계정이름은 생략가능(생략할 경우 현재 접속한 계정 소유의 테이블로 생성됨)
○ 테이블 이름 생성 규칙
1. 테이블 이름은 문자로 시작해야 한다.(한글도 가능하며 숫자로 시작할 수 없음)
EX) EMP99(O), 90EMP(X)
2.  테이블 이름은 30Byte 이하여야 한다.(영어는 30자, 한글은 15자까지 사용가능)
3. 같은 사용자 소유의 테이블 이름은 중복될 수 없다(SCOTT 계정에 두 EMP 테이블은 존재할 수 없음)
4. 테이블 이름은 영문자(한글 가능), 숫자(0-9)와 특수 문자 $,#,_를 사용할 수 있다.
EX) EMP$90_OB
5. SQL키워드는 테이블 이름으로 사용할 수 없다(SELECT, FROM 등은 테이블 이름 사용 불가)
○ 열 이름 생성 규칙
1. 열 이름은 문자로 시작해야 한다.
2. 열 이름은 30Byte이하여야 한다.
3. 한 테이블의 열 이름은 중복될 수 없다(EMP테이블에 EMPNO열이 두 개 존재할 수 없음)
4. 열 이름은 영문자(한글 가능), 숫자(0-9)와 특수 문자 $,#,_를 사용할 수 있다.
5. SQL 키워드는 열 이름으로 사용할 수 없다.

- 자료형을 각각 정의하여 새 테이블 생성하기

테이블 생성 및 확인(DESC)

- 기존 테이블 열 구조와 데이터를 복사하여 새 테이블 생성하기

기존 테이블의 열 구조, 데이터 복사

- 기존 테이블 열 구조와 일부 데이터만 복사하여 새 테이블 생성하기

EMP테이블에서 30번 부서인 사원 데이터만 저장한 테이블 생성하기

- 기존 테이블의 열 구조만 복사해서 새 테이블 생성하기

: WHERE절 조건식의 결과 값이 언제나 false가 나오게 해야 함

EMP테이블과 DEPT테이블 조인한 결과로 테이블을 생성

3. 테이블을 변경하는 ALTER - 테이블 구조 변경 시(테이블에 새 열을 추가, 삭제하거나 열의 자료형 또는 길이를 변경)

실습용 테이블 생성

- 테이블에 열을 추가하는 ADD

HP열 추가하기

- 열 이름을 변경하는 RENAME

- 열의 자료형을 변경하는 MODIFY

- 특정 열을 삭제할 때 사용하는 DROP

4. 테이블 이름을 변경하는 RENAME

5. 테이블의 데이터를 삭제하는 TRUNCATE-특정 테이블의 모든 데이터 삭제

※ TRUNCATE 명령어 사용 시 유의점

 WHERE절을 명시하지 않은 DELETE절은 데이터 조작어기 때문에 ROLLBACK가능하지만 TRUNCATE는 데이터 정의어이기 때문에 ROLLBACK되지 않으므로 복구할 수 없음

 

6. 테이블을 삭제하는 DROP