잘배워보자/(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