📘 DATABASE/ORACLE

DDL(Data Definition Language)

개발진스 2023. 4. 18. 11:44
728x90

1. CREATE

 

1) CREATE TABLE 테이블 구조 정의

 

새로운 테이블을 생성하기 위한 명령어로 CREATE가 있다.

 

칼럼을 정의 할 때 지정할 수 있는 자료형

 

테이블명과 칼럼명을 부여하기 위한 규칙

  • 반드시 문자로 시작
  • 1~30자까지 가능
  • A~Z까지의 대소문자와 0~9까지의 숫자, 특수기호는 (_, $, #)만 가능
  • 오라클에서 사용되는 예약어나 다른 객체명과 중복 불가
  • 공백 허용 X

 

Q) 사원번호, 사원명, 급여 3개의 칼럼으로 구성된 EMP01 테이블

SQL> CREATE TABLE EMP01 (

           EMPNO NUMBER(4),

           ENAME VARCHAR2(20),

           SAL NUMBER(7, 2)

       );

 

테이블 구조 확인

SQL> DESC EMP01;

 

SQL> CREATE TABLE NUM_TEMP (
            N1 NUMBER, 
            N2 NUMBER(9), 
            N3 NUMBER(9,2), 
            N4 NUMBER(9,1), 
            N5 NUMBER(7), 
            N6 NUMBER(7,-2)
        );


SQL> INSERT INTO NUM_TEMP(N1,N2,N3,N4,N5,N6)

          VALUES(1234567.89, 1234567.89, 1234567.89, 1234567.89, 1234567.89, 1234567.89);

 

SQL> SELECT 8 FROM NUM_TEMP;

 

실행결과

 

N6컬럼은 왼쪽 두번째 자리에서 반올림 하게 되어 1234600이 출력되었다.

이렇게 테이블을 생성할 때 반올림과 소수점자리 출력을 미리 설정해 둘 수 있다.

 

 

 

2) 기존 테이블 복사

 

컬럼을 일일이 정의하는 대신 AS절을 추가하여 기존 테이블(EMP)과 동일한 내용과 구조를 갖는 테이블데로 테이블을 만드는 쿼리문

 

SQL> CREATE TABLE EMP02

           AS

           SELECT * FROM EMP;

 

 

2. ALTER TABLE로 테이블 구조 변경

 

ALTER TALBE 명령어는 테이블에서 칼럼의 추가, 삭제, 칼럼의 타입이나 길이를 변경할 때 사용한다.

 

  •  ADD DOLUMN 절을 사용하여 새로운 칼럼을 추가
  •  MODIFY COLUMN 절을 사용하여 기존 칼럼을 수정
  •  DROP COLUMN 절을 사용하여 기존 칼럼을 삭제

 

1) ADD로 새로운 칼럼 추가

 

ALTER TABLE ~ ADD : 기존 테이블에 새로운 컬럼을 추가하는 명령어이다.

 

  • 원하는 위치에 만들어 넣을 수 없고 새로운 컬럼은 테이블 맨 마지막에 추가된다.
  • 이미 이전에 추가해 놓은 로우가 존재한다면, 그 로우에도 컬럼이 추가되지만 컬럼 값은 NULL값으로 입력된다.

 

Q) EMP01테이블에 문자 타입의 직급(JOB) 칼럼을 추가

SQL> ALTER TABLE EMP01

          ADD(JOB VARCHAR2(9));

 

 

 

2) MODIFY 로 칼럼 수정

 

ALTER MODIFY : 테이블에 이미 존재하는 컬럼을 변경하는 명령어이다. 데이터 타입, 크기를 변경할 수 있다. 

 

Q) 직급을 최대 30자까지 변경할 수 있게 수정

SQL> ALTER TABLE EMP01

          MODIFY(JOB VARCHAR2(30));

 

3) DROP  로 칼럼 삭제

 

ALTER TABLE ~ DROP COLUMN : 테이블에 이미 존재하는 컬럼을 삭제하는 명령어이다.

 

Q) 직급(JOB)칼럼을 삭제

SQL> ALTER TABLE EMP01

          DROP COLUMN JOB;

 

 

 

3. DROP TABLE로 테이블 구조 삭제

 

기존 테이블의 존재를 제거한다. DROP은 한번 제거한 데이터들은 다시 복구하기 어렵기 때문에 유의해서 사용해야한다.

Q) DROP TABLE을 이용하여 EMP01 테이블을 삭제하는 쿼리문

SQL> DROP TABLE EMP01; 

 

 

테이블 삭제와 무결성 제약 조건

삭제하고자 하는 테이블의 기본 키나 고유 키를 다른 테이블에서 참조해서 사용하는 경우에는 해당 테이블을 제거할 수 없다.

이러한 경우에는 참조하는 테이블들을 먼저 제거한 후에 해당 테이블을 삭제해야 한다.

 

 

4. 테이블 명을 변경하는 RENAME문

 

RENAME old_name To new_name

 

Q) EMP02 테이블의 이름을 EMP03로 변경

SQL> RENAME EMP02 TO EMP03;

 

 

5. 테이블의 모든 로우를 제거하는 TRUNCATE TABLE 


기존에 사용하던 테이블의 모든 로우를 제거하기 위한 명령어이다.


DROP TABLE과의 차이점

 

DROP TABLE은 테이블의 존재 자체가 없어져 구조가 남지않는 반면 TRUNCATE TABLE은 테이블은 존재하면서 데이터의 내용만 제거하기 때문에 구조가 남아있다.


Q) TRUNCATE TABLE을 이용하여 EMP02 테이블의 로우를 삭제하는 쿼리문
SQL> TRUNCATE TABLE EMP02; 

 

 


 

참고자료 : 예제로 배우는 ORACLE 11g

728x90