잘배워보자/(DB)Oracle-SQL

[DB/ORACLE] CREATE TABLE: 테이블 생성

코코섬! 2023. 8. 12. 02:11
SMALL

안녕하세요. 오늘은 테이블을 생성하는 DDL을 포스팅하려고 합니다. 바로 시작하도록하겠습니다.

1. CREATE TABLE 문 활용

CREATE TABLE 테이블명 (
    컬럼명 데이터타입 [제약조건],
    컬럼명 데이터타입 [제약조건],
    ...
    컬럼명 데이터타입 [제약조건]
);

### 예시 ###

CREATE TABLE point(
    NUM      	NUMBER          PRIMARY KEY, -- 주요 식별자, index 자동 생성.
    NAME     	VARCHAR2(200)   NOT NULL, -- 빈값이 들어 올 수 없음.
    SEX      	VARCHAR(1),
    EMAIL    	VARCHAR2(100)   UNIQUE, -- 중복된 값을 저장할 수 없음.
    PHONENUM 	VARCHAR2(100)   UNIQUE,
    KOR      	NUMBER(3)       CHECK (kor<=100) , -- 100보다 작은 숫자만 입력 가능함.
    ENG      	NUMBER(3)       CHECK (eng between 0 and 100),
    MATH     	NUMBER(3),
    TOTAL    	NUMBER(3),
    AVG      	NUMBER(5,2)
  );

기본적인 테이블 생성 방법으로, 테이블명, 컬럼명, 데이터 타입 및 제약 조건을 명시하여 테이블을 생성할 수 있습니다.

데이터 타입과 제약조건은 데이터베이스에서 사용되는 데이터의 종류와 형식을 정의하는 약속입니다. 정확성과 일관성을 유지하는 데 중요한 역할을 합니다.

또한, 제약 조건을 통해 데이터의 무결성을 보장하고, 데이터베이스의 효율성과 일관성을 확보할 수 있습니다.

2. SELECT 문으로 테이블 생성

CREATE TABLE 새로운테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 기존테이블명
WHERE 조건;

기존 테이블의 일부 또는 전체 데이터를 새로운 테이블로 복사하는 방법입니다.

테이블 구조와 데이터가 복사하기 때문에 테이블 백업해야 할 때 사용되곤 합니다

2-1. SELECT 문으로 테이블 생성 with NO DATA

CREATE TABLE 새로운테이블명 AS
SELECT 컬럼1, 컬럼2, ...
FROM 기존테이블명
WHERE 1 = 0; -- 데이터를 복사하지 않음

조건절에 1=0은 거짓 조건을 의미합니다. 조건에 맞는 행이 없으니 기존 테이블의 구조만 복사되고, 실제 데이터는 전혀 복사되지 않습니다.

이 방법은 기존 테이블의 구조를 기반으로 새로운 테이블을 만들고자 할 때, 데이터를 복사하지 않고 빠르게 구조를 생성할 수 있습니다. 테스트 테이블 만들 때 활용하면 좋습니다.

SMALL