콘텐츠로 건너뛰기

SQL (3) 테이블 생성

기본적인 테이블 생성 방법에 대해 알아보자.

■ CREATE TABLE 문

CREATE TABLE은 기본적으로 열의 이름, 데이터 타입, 조건을 입력하면 만들 수 있다.

CREATE TALBE 테이블-이름
 (
 첫번째열-이름 데이터타입 조건,
 두번째열-이름 데이터타입 조건
 );

데이터 타입에는 아래와 같은 것들이 들어갈 수 있다. 어떤 DBMS를 쓰는지에 따라 지원하는 것이 조금씩 다르니 본인의 DBMS로 다시 확인하길 권장한다. 예를 들어 mySQL을 사용할 경우 다음 링크를 확인하면 된다.

데이터 타입 종류
INT (또는 INTEGER)숫자(정수)
DECIMAL소수점
CHAR문자열
VARCHAR가변 문자열
DATE날짜

조건은 NOT NULL, NULL, PRIMARY KEY, FOREIGN KEY 등이 사용된다. 모든 열은 NULL 또는 NOT NULL이어야 한다. 만약 NOT NULL인 열에 값이 들어오지 않으면 에러를 출력하게 된다.

여기서 주의할 점은 NULL이 빈 문자열이 아니란 점이다. NULL은 말그대로 아무것도 존재하지 않는 상태여야 한다. PRIMARY KEY는 NULL이 될 수 없다. 즉, 항상 어떤 값을 받아야만 한다.

조건들 역시 DBMS에 따라 약간의 차이가 있다. 키값에 대한 개념적인 설명은 이전 글을 참조하면 된다. 이를 통합한 예시 SQL문을 작성해보자.

-- SHIRTS 테이블 만들기
CREATE TABLE SHIRTS
 (
 ProductID char(10) PRIMARY KEY,
 Name CHAR(10) NOT NULL,
 Size CHAR(10) NOT NULL,
 Color CHAR(250) NOT NULL,
 Price DECIMAL(5,1) NOT NULL, 
 Summary VARCHAR(750) NULL
 );

위의 예시에서 DECIMAL(5,1)은 소수점 1자리를 포함하여 숫자의 필드는 5자리라는 뜻이다. 즉, -9999.9 부터 9999.9까지의 실수를 저장할 수 있다.

■ INSERT INTO문: 테이블에 행 데이터 추가하기

테이블에 행 데이터를 추가하려면 INSERT INTO문을 사용하면 된다.

-- 행 데이터 추가하기
INSERT INTO 추가하고-싶은-테이블이름
VALUES ('첫번째열값',
        '두번째열값'
       );

그렇지만 열이 많을 경우에 순서를 헷갈리거나할 수 있으므로 다음과 같이 추가할 것을 권장한다.

-- 행 데이터 추가하기 (권장 방법)
INSERT INTO 추가하고-싶은-테이블이름
       (첫번째열-이름,
        두번째열-이름
       )
VALUES ('첫번째열값',
        '두번째열값'
       );

앞서 작성했던 SHIRTS 테이블을 이용한다면 다음과 같다.

-- 행 데이터 추가하기 (권장 방법)
INSERT INTO SHIRTS
       (Name,
        Size,
        Color,
        Price,
        Summary
       )
VALUES ('0001',
        'Beach',
        'M',
        'Blue',
        '40.5',
        NULL
       );

■ CREATE TEMPORARY TABLE문: 임시 테이블(TEMPORARY TABLE) 만들기

임시 테이블이란 현재 세션이 종료되면 없이지는 테이블을 말한다. 일반 테이블을 만들 때보다 더 빠르고, 복잡한 쿼리문을 작성할 때 유용하다. 예를 들어 다음과 같다.

-- TEMPORARY TABLE 만들기
CREATE TEMPORARY TABLE Blues AS
 (
 SELECT *
 FROM SHIRTS
 WHERE Color = 'Blue'
 )

답글 남기기

이메일 주소는 공개되지 않습니다.