자바 웹 개발자가 될거야/DB

[Oracle] 테이블 생성하기/ CREAT문

whitz 2021. 12. 7. 16:38

 

< 테이블 생성하기 >

 

- CREATE TABLE ( 컬럼명1 제약조건 , 컬럼명2 제약조건, ...); 가 기본틀이다

 

- 아래의 2개 테이블 설계도 참고해서 테이블을 생성해보겠음

 

TITLE 테이블 설계도

 

CREATE TABLE title(
	title_id number(10) constraint t_tid_pk PRIMARY KEY,
	title varchar2(60) constraint t_tit_nn NOT NULL,
	description varchar2(400) constraint t_des_nn NOT NULL,
	rating varchar2(4) constraint t_rat_ck CHECK(rating in('G','PG','R','NC17','NR')),
	category varchar2(20) constraint t_cat_ck CHECK(category in('DRAMA','COMEDY','ACTION','CHILD','SCIFI','DOCUMENTARY')),
	release_date date
);

desc_TITLE

 

 

TITLE_COPY 설계도

 

 

CREATE TABLE title_copy(
	copy_id NUMBER(10),
	title_id NUMBER(10) CONSTRAINT title_id_fk REFERENCES title(title_id),
	status VARCHAR2(15) CONSTRAINT status_nn NOT NULL
	CONSTRAINT status_ck CHECK (status IN ('AVAILABLE','DESTROYED','RENTED','RESERVED')),
	CONSTRAINT copy_title_id_pk PRIMARY KEY (copy_id, title_id)
);

 

desc TITLE_COPY

 

 

 

① desc

 

- desc 테이블명;

- 테이블을 생성 후 테이블 구조를 볼 수 있다

 

 

② 서브쿼리 이용해서 테이블 생성

 

- 주로 테스트용으로 테이블 그대로 복사할 때 많이 사용

 

CREATE TABLE copy_emp
AS (SELECT * FROM employees WHERE 1=2);

INSERT INTO copy_emp
	SELECT * FROM employees;
    
==

CREATE TABLE copy_emp
AS (SELECT * FROM employees);

  · == 을 기준으로 같은 테이블 생성 결과를 보여주는 쿼리다

  · 맨 위의 CREATE문은 테이블의 구조만 들고와서 그 후에 INSERT문으로 데이터 넣어준것

  · 아래의 CREATE문은 구조와 데이터값 넣는 것을 합친 쿼리