SQL CREATE TABLE 정리 | 데이터베이스와 테이블 생성 기본 문법

CREATE TABLE은 데이터가 저장될 테이블의 구조를 정의하는 SQL 명령어다. 테이블을 만들 때는 컬럼명, 자료형, 필수 여부, 기본키를 함께 정한다. MySQL에서는 보통 CREATE DATABASE로 데이터베이스를 만들고, USE로 사용할 데이터베이스를 선택한 뒤 CREATE TABLE을 실행한다.


데이터베이스 생성과 선택

create database if not exists shopdb2;
use shopdb2;

create database if not exists는 같은 이름의 데이터베이스가 없을 때만 새로 생성한다.

use는 이후 실행할 SQL이 어느 데이터베이스를 대상으로 할지 지정하는 명령어다.


CREATE TABLE 기본 구조

create table 테이블명 (
    컬럼명 자료형 제약조건,
    컬럼명 자료형 제약조건,
    ...
);

테이블 생성에서 봐야 할 요소는 네 가지다.

요소 의미

테이블명 데이터를 저장할 표 이름
컬럼명 저장할 데이터 항목
자료형 문자, 숫자, 날짜 등 데이터 형태
제약조건 필수 입력, 기본키 등 저장 규칙

회원 테이블 생성 예시

create table membertbl (
    memberID char(8) not null primary key,
    memberName varchar(5) not null,
    memberAddress varchar(20)
);

이 테이블은 회원 ID, 회원 이름, 회원 주소를 저장하는 구조다.

컬럼명 자료형 의미

memberID char(8) 회원 ID
memberName varchar(5) 회원 이름
memberAddress varchar(20) 회원 주소

memberID는 primary key이므로 각 회원을 구분하는 기준이 된다.


상품 테이블 생성 예시

create table producttbl (
    productName char(4) not null primary key,
    cost int not null,
    makeDate date,
    company char(5),
    amount int not null
);

상품 테이블은 상품명, 가격, 제조일, 제조사, 수량을 저장한다.

컬럼명 자료형 의미

productName char(4) 상품명
cost int 가격
makeDate date 제조일
company char(5) 제조사
amount int 수량

주요 자료형 정리

자료형 용도

char(n) 고정 길이 문자열
varchar(n) 가변 길이 문자열
int 정수
date 날짜

char(8)은 길이를 고정해서 저장하고, varchar(20)은 최대 20글자까지 저장하되 실제 입력된 길이에 맞게 사용한다. ID처럼 길이가 고정된 값은 char, 주소처럼 길이가 달라지는 값은 varchar가 더 자연스럽다.


NOT NULL과 PRIMARY KEY

not null은 해당 컬럼에 빈 값을 허용하지 않겠다는 의미다.

memberName varchar(5) not null

primary key는 테이블에서 각 행을 구분하는 대표 컬럼이다.

memberID char(8) not null primary key

기본키는 보통 중복될 수 없고, 비어 있을 수도 없다. 회원 테이블에서는 memberID, 상품 테이블에서는 productName이 각 데이터를 구분하는 기준으로 사용된다.


테이블명은 소문자로 통일하는 것이 좋다

MySQL은 운영체제나 설정에 따라 테이블명 대소문자 처리 방식이 달라질 수 있다. 그래서 테이블명은 소문자로 통일하는 편이 관리에 유리하다.

membertbl
producttbl

대소문자를 섞어 쓰기보다 하나의 규칙으로 맞추는 것이 좋다.


CREATE TABLE은 컬럼명, 자료형, 제약조건을 정의해 데이터가 저장될 테이블 구조를 만드는 명령어다.