Chapter 15. SQL 기초
SQL BASICS
Chapter 15. SQL 기초
SQL(Structured Query Language)은 데이터베이스를 관리하기 위한 표준 언어입니다.

SQL을 이용하면 데이터를
- 저장(INSERT)
- 조회(SELECT)
- 수정(UPDATE)
- 삭제(DELETE)
SQLite뿐만 아니라 MySQL, MariaDB, Oracle, PostgreSQL 등 대부분의 관계형 데이터베이스에서 SQL을 사용합니다.
SQL의 종류
| 명령어 | 설명 |
|---|---|
| CREATE | 데이터베이스나 테이블 생성 |
| INSERT | 데이터 추가 |
| SELECT | 데이터 조회 |
| UPDATE | 데이터 수정 |
| DELETE | 데이터 삭제 |
실습용 테이블 생성
이번 장에서는 다음 회원 테이블을 사용합니다.
CREATE TABLE
CREATE TABLE member(
member_id INTEGER PRIMARY KEY,
name TEXT,
age INTEGER
);
15.2 CREATE
CREATE는 데이터베이스 객체를 생성하는 명령어입니다. 이번 장에서는 테이블 생성만 학습합니다.
execute(): 한 행executemany(): 같은 SQL을 리스트의 행마다 반복
Create.py
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
cursor.execute("""create table member(id integer primary key, name text, age integer)""")
cursor.execute("insert into member (id, name, age) values (1, '홍길동', 20)")
cursor.execute("insert into member (id, name, age) values (2, '이순신', 30)")
cursor.execute("insert into member (id, name, age) values (3, '강감찬', 40)")
#cursor.executemany(
# "insert into member (id, name, age) values (?, ?, ?)",
# [
# (1, "홍길동", 20),
# (2, "이순신", 30),
# (3, "강감찬", 40),
# ],
# )
conn.commit()
conn.close()
print("데이터베이스 연결 종료")
15.3 INSERT
INSERT는 데이터를 저장하는 명령어입니다.
Insert.py
# 멤버 추가 - id, 이름과 나이를 입력받아 추가
import sqlite3
conn = sqlite3.connect("sample.db")
id = int(input("id: "))
name = input("name: ")
age = int(input("age: "))
cursor = conn.cursor()
cursor.execute("insert into member (id, name, age) values (?, ?, ?)", (id, name, age))
conn.commit()
conn.close()
print("데이터베이스 연결 종료")
15.4 SELECT
SELECT는 데이터를 조회하는 명령어로, 가장 많이 사용하는 SQL입니다.
Select1.py
# 모든 멤버 조회 - 이름순으로 정렬
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
cursor.execute("select * from member order by name")
rows = cursor.fetchall()
for row in rows:
print(row[0], row[1], row[2])
conn.close()
print("데이터베이스 연결 종료")
Select2.py
# 멤버조회 - 이름의 단어를 입력하면 해당되는 사람조회
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
word = input("word: ")
cursor.execute("select * from member where name like ?", (f"%{word}%",))
rows = cursor.fetchall()
for row in rows:
print(row[0], row[1], row[2])
conn.close()
print("데이터베이스 연결 종료")
15.5 UPDATE
UPDATE는 데이터를 수정하는 명령어입니다.
Update.py
# 멤버 수정 - id 입력받아서 나이 수정
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
id = int(input("id: "))
age = int(input("age: "))
cursor.execute("update member set age = ? where id = ?", (age, id))
conn.commit()
cursor.execute("select * from member order by name")
rows = cursor.fetchall()
for row in rows:
print(row[0], row[1], row[2])
conn.close()
print("데이터베이스 연결 종료")
15.6 DELETE
DELETE는 데이터를 삭제하는 명령어입니다.
Delete.py
# 멤버 삭제 - id 입력받아서 삭제
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
id = int(input("id: "))
cursor.execute("delete from member where id = ?", (id,))
conn.commit()
cursor.execute("select * from member order by name")
rows = cursor.fetchall()
for row in rows:
print(row[0], row[1], row[2])
conn.close()
print("데이터베이스 연결 종료")
15.7 다중테이블
member 테이블과 board 테이블 2개를 생성합니다.
Create Multi Tables
import sqlite3
conn = sqlite3.connect("sample.db")
cursor = conn.cursor()
cursor.execute("PRAGMA foreign_keys = ON")
cursor.execute("""create table if not exists member(id integer primary key autoincrement,
name text,
age integer)""")
cursor.execute("""create table if not exists board(id integer primary key autoincrement,
title text,
content text,
member_id integer,
foreign key (member_id) references member (id))""")
cursor.execute("insert into member (name, age) values ('홍길동', 20)")
cursor.execute("insert into member (name, age) values ('이순신', 30)")
cursor.execute("insert into board (title, content, member_id) values ('제목1', '내용1', 1)")
cursor.execute("insert into board (title, content, member_id) values ('제목2', '내용2', 2)")
conn.commit()
conn.close()
print("데이터베이스 연결 종료")
📌 Chapter 15 핵심 정리
- SQL은 데이터베이스를 관리하기 위한 표준 언어이다.
- 주요 SQL 명령어에는 CREATE, INSERT, SELECT, UPDATE, DELETE가 있다.
- SQLite와 같은 관계형 데이터베이스에서 SQL을 사용한다.
- CREATE 명령어로 데이터베이스 객체를 생성할 수 있다.
- INSERT 명령어로 데이터를 추가하고, SELECT로 조회할 수 있다.
- UPDATE로 데이터를 수정하고, DELETE로 삭제할 수 있다.