본문 바로가기
IT/MYSQL

MYSQL - 테이블 생성하기 CREATE TABLE

by 꿀코 2023. 2. 19.
반응형

MYSQL에서 테이블을 생성하기 위해서는 우선 데이터베이스를 생성해야 합니다. 데이터베이스와 테이블은 모두 데이터 정의어(DDL : Data Definition Language) 중 CREATE 명령어를 사용하여 생성할 수 있습니다.

 

데이터베이스(DB) 생성

우선 데이터베이스를 생성하기 전에 SHOW 명령어로 기존에 중복되는 데이터베이스명이 없는지 확인해 주어야 합니다.

# 데이터베이스 목록 확인
SHOW DATABASES;

 

목록을 확인 후 중복되지 않는 데이터베이스명으로 데이터베이스를 생성해 줍니다. 그리고 데이터베이스를 생성하였다면, 해당 데이터베이스에서 작업을 진행하기 위하여 데이터베이스를 선택해 주어야 합니다.

# 데이터베이스 생성
CREATE DATABASE 데이터베이스명;

# 데이터베이스 선택
USE 테이터베이스명;

 

테이블(Table) 생성

설계된 테이블 명세를 기반으로 필드명, 필드 타입, 기본 키, 제약조건 등을 고려하여 테이블을 생성해야 합니다. 그럼, AUTO_INCREMENT(자동 증가) 등 자주 사용되는 문법을 사용하여 테이블 생성문을 작성해보겠습니다.

 ※ 기본 키, 제약조건, 인덱스 등은 테이블 생성 시와 생성 후 모두 가능함

# 학생 테이블 생성
CREATE TABLE STUDENT 
(
    ID INT(4) NOT NULL AUTO_INCREMENT, -- 학번(ID) 자동 증가
    NAME VARCHAR(25) NULL DEFAULT NULL,
    MAJOR VARCHAR(50) NULL DEFAULT NULL,
    GRADE INT(1) NULL DEFAULT NULL,
    REG_DATE DATETIME NULL DEFAULT NULL,
    PRIMARY KEY (ID) -- 기본 키 설정
)

 

ID를 자동 증가하는 기본 키로 설정한 학생 테이블을 생성한 결과입니다.

 

위의 학생 테이블에 데이터를 삽입할 때는 ID가 AUTO_INCREMENT 필드로 자동으로 증가하는 값이기 때문에 다음과 같이 INSERT 문을 작성해주시면 됩니다.

# AUTO_INCREMENT가 있는 테이블의 INSERT문
INSERT INTO STUDENT (NAME, MAJOR, GRADE, REG_DATE) VALUES ('BEE', 'BLOG', 1, NOW());
INSERT INTO STUDENT (NAME, MAJOR, GRADE, REG_DATE) VALUES ('LEE', 'MATH', 2, NOW());
INSERT INTO STUDENT (NAME, MAJOR, GRADE, REG_DATE) VALUES ('TEE', 'DATA', 2, NOW());

 

ID 필드는 입력하지 않고 INSERT 문을 수행하여도 아래 결과처럼 1부터 자동으로 순차 증가하는 값을 채워지는 것을 볼 수 있습니다. 다만, 스토리지 엔진의 유형에 따라 서버 재시작 시에 AUTO_INCREMENT 값이 초기화될 수 있다는 점을 주의해야 합니다.

 

테이블(Table) 수정과 삭제

지금까지 CREATE 명령어로 테이블을 생성해 보았습니다. 테이블에 필드를 추가 하거나 기본 키(PRIMARY KEY), 외래 키(FOREIGN KEY) 등의 제약 조건을 추가하기 위하여 ALTER TABLE 명령어를 사용하여 테이블을 수정하고 DROP TABLE 명령어로 데이터베이스에 해당 테이블을 삭제할 수 있습니다.

# 테이블 수정 : 컬럼 추가
ALTER TABLE 테이블명 ADD COLUMN 컬럼명 VARCHAR(30) NULL;
# 테이블 삭제
DROP TABLE 테이블명;
반응형

댓글