타입

카테고리 타입 설명 및 사용 예시
정수 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 활성 여부 저장용. BOOLEANTINYINT(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 포함 가능)

/