마케터의 SQL 맛보기#3

2019-12-29

CREATE

DDL에 속하는 CREATE에 대해서 먼저 알아보겠다. CREATE는 DATABASE나 TABLE를 생성할 때 사용하는 명령어이다.


기본문법

CREATE DATABASE 데이터베이스명

INPUT

CREATE DATABASE sktt1;

좋아하는 E-SPORTS 게임 중에 리그오브레전드(LOL)란 게임이 있다. LOL의 국내 프로팀 중 하나인 SKT T1이란 이름으로 데이터베이스를 만들어봤다. 성공적으로 쿼리가 적용되면 Query OK란 문구가 뜰 것이다.


CREATE 문으로 TABLE을 생성하기 전에 사용할 데이터베이스를 선택해 보자. 정해진 데이터베이스도 없는데 TABLE을 생성한다는 것은 말이 안 된다.

기본문법

USE 데이터베이스명

INPUT

USE sktt1;

Database changed란 메시지와 함께 SKTT1 데이터베이스를 사용하게 된다.

(참고로 MYSQL은 유닉스 환경에서는 대소문자를 구별하지만, 윈도우 환경의 MYSQL에서는 대소문자를 구분하지 않는다.)


이렇게 사용하는 데이터베이스는 하나 이상의 테이블로 구성되는데, 이러한 테이블에 데이터를 저장하여 관리하는 것이다. 이제 테이블을 생성해 보도록 하겠다.

기본문법

CREATE TABLE 테이블명
(
 필드명1 필드타입1,
 필드명2 필드타입2,
 ...
)

INPUT

CREATE TABLE sktplayer(
	name varchar(10),
	age int,
 position varchar(10)
);

역시나 SKT T1 팀에 관련된 TABLE을 생성했다. SKT T1의 선수들 정보를 담을 SKTPLAYER이란 이름의 테이블을 생성했다. 여기서 필드 타입은 데이터의 형태를 지정해 주는 것이다. 여기서 사용된 필드 타입만 우선적으로 알아보겠다. varchar(10)은 10바이트 크기의 문자열 데이터, int는 정수형 데이터를 지정한다는 것을 의미한다.


INPUT

SHOW TABLES;

OUTPUT

+-----------------+
| Tables_in_sktt1 |
+-----------------+
| sktplayer       |
+-----------------+

생성된 테이블들의 목록을 확인하고 싶을 때는 SHOW TABLES 명령어를 사용하면된다.


INPUT

DESC sktplayer;

OUTPUT

+----------+-------------+------+-----+---------+-------+
| Field    | Type        | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+-------+
| name     | varchar(10) | YES  |     | NULL    |       |
| age      | int(11)     | YES  |     | NULL    |       |
| position | varchar(10) | YES  |     | NULL    |       |
+----------+-------------+------+-----+---------+-------+

DESCRIBE 또는 DESC 명령어를 활용하여 테이블의 상세 정보를 확인하는 것도 가능하다.


마지막으로 간단히 제약 조건(constraint)에 대해서 알아보겠다. 제약 조건은 데이터의 무결성을 지키기 위해 데이터를 입력받을 때 실행되는 규칙을 의미한다. 보통 CREATE 문으로 테이블을 생성하거나, ALTER 문으로 필드를 추가할 때 설정한다. 간단히 CREATE를 활용하여 TABLE을 생성할 때 사용하는 제약 조건들에 대해서 알아보겠다.

NOT NULL

해당 필드에 NULL 값을 저장할 수 없게 하는 옵션이다.

UNIQUE

해당 필드는 반드시 서로 다른 값을 갖게 하는 옵션이다.

PRIMARY KEY

해당 필드가 NOT NULL과 UNIQUE 2가지 제약 조건의 특징을 모두 갖게 하는 옵션이다.

FOREIGN KEY

하나의 테이블이 다른 테이블에 의존하게 만드는 옵션이다.

DEFAULT

필드의 기본값을 설정하는 옵션이다.


CREATE TABLE 테이블명
(
 필드명 필드타입 NOT NULL,
 ...
)

제약 조건은 TABLE 생성 시 필드 타입 다음에 원하는 제약 조건을 입력하는 방식으로 사용이 가능하다. 제약 조건은 다음에 예문으로 더 알아보도록 하자. 이번 글은 여기서 마치고 다음 글에서 공부를 이어가 보자.