📑
EPISODE 02
CREATE · INSERT · SELECT · UPDATE · DELETE
SQL 기초
SQLite의 데이터 타입, CREATE TABLE로 테이블 만들기, INSERT/SELECT/UPDATE/DELETE의 기본 문법, WHERE/ORDER BY/LIMIT를 익힙니다.
SQLCREATESELECTWHERE
소요 시간
⏱ 45~60분
난이도
📊 중급
선수 조건
🎯 db-01
결과물
도서 관리 DB로 CRUD 쿼리 작성
이 강의에서 배우는 것
- 1CREATE TABLE과 주요 제약조건(PK, NOT NULL, UNIQUE, DEFAULT)을 안다
- 2INSERT의 3가지 형태를 사용한다
- 3SELECT + WHERE + ORDER BY + LIMIT로 데이터를 조회한다
- 4UPDATE / DELETE에서 WHERE를 빠뜨리지 않는다
1. SQLite 데이터 타입
| 타입 | 설명 | 예시 |
|---|---|---|
| TEXT | 문자열 | '김철수' |
| INTEGER | 정수 | 42, -10 |
| REAL | 실수 | 3.14, 9.99 |
| BLOB | 이진 데이터 | 이미지, 파일 |
| NULL | 값 없음 | NULL |
2. CREATE TABLE
sql
CREATE TABLE books (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
author TEXT NOT NULL,
price INTEGER DEFAULT 0,
isbn TEXT UNIQUE,
published TEXT
);| 제약조건 | 설명 |
|---|---|
| PRIMARY KEY | 기본키 (행 고유 식별) |
| AUTOINCREMENT | 자동 1씩 증가 |
| NOT NULL | NULL 금지 |
| UNIQUE | 중복 금지 |
| DEFAULT 값 | 기본값 |
3. INSERT
sql
-- 모든 컬럼에 값
INSERT INTO books VALUES (1, '클린 코드', '로버트 마틴', 30000, '978-…', '2008-08-01');
-- 컬럼 명시 (권장)
INSERT INTO books (title, author, price) VALUES ('리팩터링', '마틴 파울러', 35000);
-- 여러 행 동시
INSERT INTO books (title, author, price) VALUES
('자바스크립트 완벽 가이드', '데이비드 플래너건', 45000),
('파이썬 입문', '귀도 반 로썸', 28000);4. SELECT
기본
sql
SELECT * FROM books;
SELECT title, author, price FROM books;WHERE
sql
SELECT * FROM books WHERE price >= 30000;
SELECT * FROM books WHERE author = '마틴 파울러';
SELECT * FROM books WHERE price >= 20000 AND price <= 40000;
SELECT * FROM books WHERE title LIKE '%자바%';
SELECT * FROM books WHERE isbn IS NULL;ORDER BY
sql
SELECT * FROM books ORDER BY price ASC;
SELECT * FROM books ORDER BY price DESC;
SELECT * FROM books ORDER BY author ASC, price DESC;LIMIT (페이지네이션)
sql
SELECT * FROM books LIMIT 5;
SELECT * FROM books LIMIT 5 OFFSET 5; -- 6번째부터 5개5. UPDATE
sql
UPDATE books SET price = 32000 WHERE id = 1;
UPDATE books SET price = 32000, title = '클린 코드 2판' WHERE id = 1;⚠️
WHERE 절 없이 UPDATE하면 모든 행이 수정됩니다.
6. DELETE
sql
DELETE FROM books WHERE id = 3;
DELETE FROM books WHERE price < 10000;⚠️
WHERE 절 없이 DELETE하면 모든 데이터가 삭제됩니다.
7. 실습 흐름
bash
sqlite3 library.db
.read 예제/queries.sql
.tables
.schema books
.quit