Chapter 15. SQL 기초

IT 지식 / Python·2026.08.26
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("데이터베이스 연결 종료")
laptop computer on glass-top table
📌 Chapter 15 핵심 정리
  • SQL은 데이터베이스를 관리하기 위한 표준 언어이다.
  • 주요 SQL 명령어에는 CREATE, INSERT, SELECT, UPDATE, DELETE가 있다.
  • SQLite와 같은 관계형 데이터베이스에서 SQL을 사용한다.
  • CREATE 명령어로 데이터베이스 객체를 생성할 수 있다.
  • INSERT 명령어로 데이터를 추가하고, SELECT로 조회할 수 있다.
  • UPDATE로 데이터를 수정하고, DELETE로 삭제할 수 있다.

프로그램·홈페이지·강의가 필요하신가요?

프로그램 판매, 무료 다운로드, 홈페이지 제작, IT 강의 상담을 도와드립니다.

상담 신청하기