코딩두의 포트폴리오

CRUD 실습 (feat. Python) 본문

인플랩

CRUD 실습 (feat. Python)

코딩두 2025. 8. 4. 17:49

SQLite로 로컬에서 간단한 실습해보기

 

1. DB 연결

conn = sqlite3.connect("mydata.db")
cursor = conn.cursor()

- mydata.db라는 SQLite 파일에 연결 -> 만약 없을 시 자동 생성

- cursor는 SQL을 실행하는 도구

 

2. 테이블 생성 (Create)

cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
	id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER
)
""")

- IF NOT EXISTS는 테이블 있을 시 건너뜀

- id는 자동으로 증가(AUTO_INCREMENT 역할)

 

3. 데이터 삽입 (Create)

cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)" ("영희", 25))

- ?는 SQL 인젝션 방지를 위한 placeholder

 

4. 데이터 조회 (Read)

cursor.execute("SELECT * FROM users")
users = cursor.fetchall()

- fetchall(): 모든 결과를 리스트로 받아옴

- print(user)에서 출력되는 것은 (id, name, age) 튜플

 

5. 데이터 수정 (Update)

cursor.execute("UPDATE users SET age = ? WHERE name = ?", (29, "철수"))

 

6. 데이터 삭제 (Delete)

cursor.execute("DELETE FROM users WHERE name = ?", ("영희",))

- 삭제 조건 명확히!

 

7. 커밋 & 종료

conn.commit()
conn.close()

 

전체 코드

import sqlite3

# 1. 데이터베이스 연결 (파일이 없다면 생성됨)
conn = sqlite3.connect("mydata.db")
cursor = conn.cursor()

# 2. 테이블 생성 (CREATE)
cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    age INTEGER
)
""")

# 3. 데이터 삽입 (INSERT - Create)
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("영희", 25))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("철수", 28))

# 4. 데이터 조회 (SELECT - Read)
cursor.execute("SELECT * FROM users")
users = cursor.fetchall()
print("📋 모든 사용자:")
for user in users:
    print(user)

# 5. 데이터 수정 (UPDATE)
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (29, "철수"))

# 6. 데이터 삭제 (DELETE)
cursor.execute("DELETE FROM users WHERE name = ?", ("영희",))

# 7. 최종 데이터 출력
cursor.execute("SELECT * FROM users")
users = cursor.fetchall()
print("\n🛠 수정/삭제 후 사용자 목록:")
for user in users:
    print(user)

# 8. 변경사항 저장 후 연결 종료
conn.commit()
conn.close()

 

터미널 결과

'인플랩' 카테고리의 다른 글

CRUD  (2) 2025.08.04