Database
SQL - CREATE TABLE
CrackCo
2020. 7. 21. 11:36
데이터베이스의 기본적인 저장 단위인 테이블을 만들 수 있는 CREATE TABLE 명령어를 알아보겠습니다.
CREATE TABLE [schema.]table (
column datatype [DEFAULT expr][, ...]
);
table의 이름을 짓고 들어갈 column 들의 데이터 타입과 옵션을 지정해줍니다.
* schema란 특정 사용자가 데이터베이스에 접근하여 생성한 객체들의 대표 이름을 의미합니다. 보통 사용자가 들어갑니다.
datatype은 아래와 같습니다.
1. DEFAULT 옵션
해당 테이블에 행을 입력할 때 해당 컬럼에 값을 지정하지 않은 경우 자동으로 DEFAULT 값이 입력됩니다.
NULL 값이 저장되는 것을 방지할 수 있습니다.
NUM ( NUMBER(2) ), WRITEDAY ( DATE ) 컬럼을 가진 DEF_TABLE2 테이블을 만들어봅시다.
WRITEDAY는 기본값을 현재 일시로 설정해줍시다.
CREATE TABLE DEF_TABLE2(
NUM NUMBER(2),
WRITEDAY DATE DEFAULT SYSDATE
);
-- 값 입력
INSERT INTO DEF_TABLE2(NUM) VALUES(1);
-- DEF_TABLE2 내용 확인
SELECT * FROM DEF_TABLE2;
기본값으로 현재 날짜가 자동으로 들어가는 것을 볼 수 있습니다.
2. SUB QUERY 사용
CREATE TABLE table
[(column1, column2, ...)]
AS subquery;
CTAS라고도 하며 지정된 컬럼의 수와 서브 쿼리에서 리턴된 컬럼의 수가 일치할 때 사용할 수 있습니다.
컬럼을 지정할 때 컬럼명과 기본값만 지정 가능하고 지정된 컬럼을 연산할 때는 반드시 alias를 사용해야 합니다.
서브 쿼리를 이용하여 테이블을 만들 때 NOT NULL을 제외한 제약 조건은 적용되지 않습니다.
DEPT_A 테이블을 DEPT 테이블의 데이터들로 만들어봅시다.
CREATE TABLE DEPT_A
AS
SELECT * FROM DEPT;