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은 컬럼명, 자료형, 제약조건을 정의해 데이터가 저장될 테이블 구조를 만드는 명령어다.
'Data Analytics > SQL' 카테고리의 다른 글
| SQL WHERE 조건절 정리 | AND, BETWEEN, IN, LIKE, IS NULL 한 번에 이해하기 (0) | 2026.05.18 |
|---|---|
| SQL INSERT와 SELECT 기본 정리 | 데이터 입력과 조회 흐름 이해하기 (0) | 2026.05.18 |
| DROP, DELETE, TRUNCATE 차이 정리 | 데이터 삭제 명령어 구분하기 (0) | 2026.05.15 |
| SQL DDL과 DML 차이 정리 | CREATE, SELECT, INSERT는 뭐가 다를까 (0) | 2026.05.15 |
| RDBMS란 무엇인가 | Table과 관계로 데이터를 관리하는 방식 (1) | 2026.05.14 |
