SQL 기초집LESSON 03
데이터베이스, 테이블, 자료형
난이도입문 → 초급
예상 시간30분
선수지식이전 강의
3강. 데이터베이스, 테이블, 자료형
1. 이번 강의에서 해결할 문제
자료형을 선언했는데도 SQLite가 예상 밖 값을 저장할 수 있습니다. SQLite의 동적 타입과 STRICT 테이블을 이해해 데이터 품질을 설계합니다.
2. 학습 목표
3. 핵심 개념
SQLite에서 타입은 값에 연결되고 열 선언은 선호 변환 규칙인 affinity를 제공합니다. 일반 테이블은 유연하며 STRICT 테이블은 허용 타입과 변환을 더 엄격히 검사합니다. PostgreSQL은 열마다 정적 타입을 강하게 적용합니다.
4. 단계별 SQL 예시
대상 테이블: 학습 전용 type_lab
파일 경로: C:\dev\game-ranking-db\sql\03-types.sql
sql/03-types.sql
CREATE TABLE IF NOT EXISTS type_lab (
id INTEGER PRIMARY KEY,
label TEXT NOT NULL,
score REAL NOT NULL,
active INTEGER NOT NULL CHECK (active IN (0, 1)),
payload BLOB
) STRICT;
INSERT INTO type_lab (label, score, active)
VALUES ('ranked', 98.5, 1);
SELECT
label,
typeof(label) AS label_type,
typeof(score) AS score_type,
typeof(active) AS active_type
FROM type_lab;
PowerShell · 실행 순서
sqlite3 .\data\game_ranking.db ".read .\sql\03-types.sql"
sqlite3 .\data\game_ranking.db ".schema type_lab"
5. 쿼리가 동작하는 이유
STRICT 테이블은 SQLite가 지원하는 제한된 타입 이름을 사용하고 손실 없는 변환만 허용합니다. 불리언 전용 저장 클래스가 없으므로 0과 1에 CHECK를 적용합니다. typeof()은 선언형이 아니라 실제 저장된 값의 클래스를 보여 줍니다.
6. 자주 하는 실수와 안전한 해결법
7. 직접 실습
8. 이해 점검 질문 3개
9. 핵심 요약
MINI QUIZ
0 / 2데이터베이스, 테이블, 자료형 미니 퀴즈
선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.
LESSON STATUS
3강. 데이터베이스, 테이블, 자료형 미완료 상태학습을 마쳤나요?
직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.