카테고리 | 타입 | 설명 및 사용 예시 |
---|---|---|
정수 | INT |
주로 기본 키, ID 등에 사용예: user_id INT AUTO_INCREMENT PRIMARY KEY |
TINYINT(1) |
주로 불리언 값 (TRUE/FALSE) 저장에 사용예: is_active TINYINT(1) DEFAULT 1 |
|
소수 | DECIMAL(10,2) |
금액 등 정확한 소수점 숫자에 사용예: price DECIMAL(10,2) |
문자열 | VARCHAR(n) |
이메일, 이름, 제목 등 가변 길이 문자열예: email VARCHAR(255) |
TEXT |
**긴 텍스트 내용 (게시글 본문 등)**예: content TEXT |
|
날짜/시간 | DATETIME |
생성일, 수정일 등 기록예: created_at DATETIME DEFAULT CURRENT_TIMESTAMP |
TIMESTAMP |
DATETIME 과 비슷하지만 자동 UTC 변환 지원예: updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
|
논리형 | BOOLEAN |
실제로는 TINYINT(1) 로 처리됨예: is_deleted BOOLEAN DEFAULT FALSE |
필드명 | 데이터 타입 | 제약 조건 / 필터링 예시 | 설명 |
---|---|---|---|
id |
INT 또는 BIGINT |
AUTO_INCREMENT , PRIMARY KEY , UNSIGNED |
기본 키, 유일한 값 생성 시 사용. 규모가 크면 BIGINT 사용 |
name |
VARCHAR(50~100) |
NOT NULL , CHECK (CHAR_LENGTH(name) >= 2) , (앱/서버단): 이름 유효성 필터링 |
보통 최소 2글자 이상, 특수문자 제외, 한글/영문 허용 등 서버에서 체크 |
email |
VARCHAR(255) |
NOT NULL , UNIQUE , 정규식 체크 (서버 또는 앱단)예: ^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$ |
이메일 포맷은 DB보다는 서버/앱단에서 정규식 필터링, DB에는 길이만 제한 |
username |
VARCHAR(30~50) |
NOT NULL , UNIQUE , CHECK (username REGEXP '^[a-zA-Z0-9_]{3,30}$') |
영문, 숫자, 언더스코어로 제한하는 경우가 많음 |
password |
VARCHAR(255) |
NOT NULL |
보통 해시값 저장이므로 길이는 넉넉하게 255 설정 |
phone |
VARCHAR(20) |
정규식: ^01[016789]-\\d{3,4}-\\d{4}$ (서버단), UNIQUE (선택) |
숫자만 저장하려면 CHAR(11) 도 가능 |
created_at |
DATETIME |
DEFAULT CURRENT_TIMESTAMP |
생성 시간 기록 |
updated_at |
TIMESTAMP |
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP |
갱신 시간 자동 기록 |
is_active |
TINYINT(1) 또는 BOOLEAN |
DEFAULT 1 또는 DEFAULT TRUE |
활성 여부 저장용. BOOLEAN 은 TINYINT(1) 로 처리됨 |
용도 | 정규식 패턴 | 설명 및 예시 |
---|---|---|
이메일 | ^[\\w\\.-]+@[\\w\\.-]+\\.\\w+$ |
이메일 주소 포맷 확인예: [email protected] |
휴대폰 번호 (한국) | ^01[016789]-\\d{3,4}-\\d{4}$ |
하이픈 포함한 한국 휴대폰 번호예: 010-1234-5678 |
휴대폰 번호 (숫자만) | ^01[016789]\\d{7,8}$ |
숫자만 입력하는 경우예: 01012345678 |
숫자만 | ^\\d+$ |
숫자로만 이루어진 값예: 123456 |
영문만 (대소문자) | ^[a-zA-Z]+$ |
알파벳만 허용예: Hello |
한글만 | ^[가-힣]+$ |
한글만 허용예: 홍길동 |
영문+숫자 | ^[a-zA-Z0-9]+$ |
영문과 숫자 조합예: user123 |
아이디 (3~20자, 영문+숫자+_) | ^[a-zA-Z0-9_]{3,20}$ |
흔한 사용자 ID 포맷 |
비밀번호 (영문+숫자+특수문자, 8자 이상) | ^(?=.*[A-Za-z])(?=.*\\d)(?=.*[!@#$%^&*()_+=\\-])[A-Za-z\\d!@#$%^&*()_+=\\-]{8,}$ |
보안 강도 높은 패스워드 체크 |
우편번호 (한국 5자리) | ^\\d{5}$ |
한국형 우편번호예: 12345 |
날짜 (YYYY-MM-DD) | ^\\d{4}-\\d{2}-\\d{2}$ |
기본 날짜 포맷예: 2025-05-15 |
시간 (HH:MM:SS) | ^([01]\\d2[0-3]):[0-5]\\d:[0-5]\\d$ |
|
URL | ^(https?:\\/\\/)?([\\w\\-]+\\.)+[\\w\\-]+(\\/[\\w\\-./?%&=]*)?$ |
웹 주소 (http/https 포함 가능) |
/