Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
Tags
- Python
- 고등학생 대상
- suricata
- Web
- Machine Learning
- LINUX MASTER
- Powershell
- Spring Boot
- 코딩도장
- VSCode
- Docker
- ICT멘토링
- KAKAO
- Resnet
- Spring
- Github
- colab
- OSS
- 국가과제
- C언어
- 인터넷의이해
- Rocky Linux
- Database
- GoogleDrive
- rnn
- ChatGPT
- git
- cloud
- API
- 크롤링 개발
Archives
- Today
- Total
코딩두의 포트폴리오
CRUD 실습 (feat. Python) 본문
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()
터미널 결과