표를 세로로 잘라 봅시다. 점수 열 하나를 통째로 들어 올린 것,
그것이 필드(field) 또는 열(column)입니다.
그런데 필드는 단순한 '칸'이 아닙니다. 필드는 약속을 가지고 있어요.
점수
→
INTEGER 정수만 들어올 수 있음
NOT NULL 비워 둘 수 없음
CHECK 0~100 0 미만이나 100 초과는 거부
이 약속을 제약 조건(constraint)이라고 부릅니다.
데이터베이스는 이 약속을 어기는 데이터를 단호하게 거부합니다.
SQLite의 타입 5종
SQLite는 세상에서 가장 단순한 타입 체계를 가지고 있습니다. 딱 다섯 개예요.
타입
담는 것
예시
INTEGER
정수
1001, 17, -5
REAL
실수(소수)
3.14, 88.5
TEXT
글자
'김민준', '2026-08-20'
BLOB
덩어리(사진·파일)
이미지 원본 바이트
NULL
값이 없음
아직 안 정해짐
🎮 규칙을 정하고, 어긋난 값을 넣어 보세요
타입과 제약조건을 골라 표를 만든 뒤 값을 넣어 봅니다.
규칙을 어기면 사람이 아니라 데이터베이스가 거절합니다. 진짜 오류 메시지를 확인해 보세요.
INTEGER 칸에 소수를 넣으면 어떻게 되는지도 꼭 실험해 보세요 — SQLite는 조금 너그럽습니다.
타입·제약조건 실험실 — DBMS가 실제로 막아 줍니다
불러오는 중…
표의 설계도 그리기
필드 이름과 타입, 제약 조건을 모아 적은 것이 곧 테이블 설계도이고,
SQL에서는 CREATE TABLE로 씁니다. 지금은 모양만 눈에 익혀 두세요.
직접 실행해 보는 건 13강부터입니다.
CREATE TABLE 학생 (
학번 INTEGER PRIMARY KEY, -- 이 학생을 유일하게 가리키는 번호
이름 TEXT NOT NULL, -- 반드시 있어야 함
학년 INTEGER NOT NULL,
점수 INTEGER CHECK (점수 BETWEEN 0 AND 100) -- 0~100만 허용
);
PRIMARY KEY(기본키)가 새로 나왔네요. 이건 "이 표에서 한 줄을 콕 집어내는
주민등록번호 같은 칸"입니다. 절대 중복될 수 없고 절대 비어 있을 수 없어요.
10강 관계형 데이터베이스에서 아주 중요한 역할을 합니다.