Cracking Code

SQL - CREATE TABLE 본문

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;

'Database' 카테고리의 다른 글

SQL - PRIMARY KEY (기본키)  (0) 2020.07.21
SQL - 제약 조건  (0) 2020.07.21
SQL - COMMIT, ROLLBACK  (0) 2020.07.20
TRANSACTION 개요  (0) 2020.07.20
SQL - MERGE  (0) 2020.07.20
Comments