개발 지식/[DBMS] Oracle

[Oracle] DDL(2) - 테이블 생성(CREATE TABLE)

devGSP 2022. 6. 15. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

CREATE TABLE

 

설명

 

테이블을 생성하는 명령어

 

 

사용 형태

 

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

 

 

※ 테이블 이름 규칙

1. 테이블 첫 글자는 문자여야 한다. 숫자로 시작할 수 없다.

예시) TB_GSP (O), 테이블_GSP (O), 7777_GSP (X)

 

2. 다른 테이블과 이름이 중복될 수 없다. 단, 다른 사용자 소유의 테이블은 가능.

예시) GSP 계정에 테이블 TB_GSP가 존재하고, COFFEE 계정에 테이블 TB_GSP가 존재 (O)

예시2) GSP 계정에 테이블 TB_GSP가 2개 존재 (X)

 

3. 테이블 이름은 30바이트 이하여야 함. 영문 30자, 한글 15자까지.

 

4. SQL 명령어에 해당하는 키워드는 테이블 이름으로 사용 불가

예시)

CREATE TABLE FROM (
  COL_NUM NUMBER(10),
  COL_VARCHAR2 VARCHAR2(30)
);

ddl2_q1

 

열(COLUMN) 이름 규칙

1. 테이블 이름 규칙과 마찬가지로 열의 첫 글자는 문자여야 하며 숫자로 시작할 수 없다. 또한 SQL 명령어에 해당하는 키워드도 불가능하다.

예시) COL_DATE (O), 콜 (O), 234234 (X), FROM (X)

 

2. 한 테이블 내에서 똑같은 열 이름이 중복될 수 없다.

 

3. 열 이름은 30바이트 이하여야 함. 영문 30자, 한글 15자까지.

 

 

사용 예시

 

1. 테이블 생성 기본 문법

CREATE TABLE TB_GSP (
  COL_NUM NUMBER(10),
  COL_VARCHAR2 VARCHAR2(30),
  COL_DATE DATE
);

DESC TB_GSP;

ddl2_q2

 

 

2. 기존 테이블을 복사하는 테이블 생성 문법

CREATE TABLE TB_EMP_COPY
    AS SELECT *
         FROM EMP;
         
SELECT * FROM TB_EMP_COPY;

ddl2_q3

 

-- 위 문법을 응용하여 조건식으로 일부 데이터만 복사하여 테이블 생성
CREATE TABLE TB_EMP_CLERK
    AS SELECT *
         FROM EMP
        WHERE JOB = 'CLERK';
        
SELECT * FROM TB_EMP_CLERK;

ddl2_q4

 

 

3. 기존 테이블의 열 구조만 복사하는 테이블 생성 문법

CREATE TABLE TB_EMP_COPY2
    AS SELECT *
         FROM EMP
        WHERE 1 <> 1;
      
SELECT * FROM TB_EMP_COPY2;

ddl2_q5

 

반응형