패스트캠퍼스 파이썬 웹개발 올인원 패키지 후기(14)
파이썬 웹개발 올인원 패키지 14 일차 후기 겸 학습기록 입니다.
지난 시간에는 SQLite 와 파이썬을 연동해서 어떻게 사용하는지.. 기본에 대해서 배웠다면,
오늘은 좀 더 심화적으로 SQLite DB를 활용하는 방법을 공부하였습니다.
공부 내용은 아래와 같아요!
파이썬 데이터베이스 연동 테이블 조회, 조건 조회

import sqlite3
# DB 파일 조회(없으면 새로 생성)
conn = sqlite3.connect('c:/python_basic/resource/database.db') # 본인 DB 경로
# 커서 바인딩
c = conn.cursor()
# 데이터 조회(전체)
c.execute("SELECT * FROM users")
# 커서 위치가 변경
# 1개 로우 선택
# print('One -> \n', c.fetchone())
# 지정 로우 선택
# print("Three -> \n", c.fetchmany(size=3))
# 전체 로우 선택
# print("All -> \n", c.fetchall())
print()
# 순회 1
# rows = c.fetchall()
# for row in rows:
# print('retrieve1 >', row)
# 순회 2
# for row in c.fetchall():
# print('retrieve2 >', row)
# 순회 3 : 가독성이 떨어진다.
for row in c.execute("SELECT * FROM users ORDER BY id desc"):
print('retrieve3 >', row)
print()
print()
# WHERE Retrieve1
param1 = (3, )
c.execute("SELECT * FROM users WHERE id = ?", param1)
print('param1', c.fetchone())
print('param1', c.fetchall())
<Output>
retrieve3 > (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-07 12:23:44')
retrieve3 > (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-07 12:23:44')
retrieve3 > (3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-07 12:23:44')
retrieve3 > (2, 'Park', 'Park@naver.com', '010-1111-1111', 'Park.com', '2020-06-07 12:23:44')
retrieve3 > (1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-07 12:23:44')
param1 (3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-07 12:23:44')
param1 []

# WHERE Retrieve2
param2 = 4
c.execute("SELECT * FROM users WHERE id = '%s'" % param2) # %s, %f, %d
print('param2', c.fetchone())
print('param2', c.fetchall())
print()
# WHERE Retrieve3
c.execute("SELECT * FROM users WHERE id = :Id", {"Id": 5})
print('dict', c.fetchone())
print('dict', c.fetchall())
print()
# WHERE Retrieve4
param4 = (3, 5)
c.execute("SELECT * FROM users WHERE id IN(?, ?)", param4)
print('param4', c.fetchall())
print()
# WHERE Retrieve5
c.execute("SELECT * FROM users WHERE id IN('%d', '%d')" % (3, 4))
print('param5', c.fetchall())
print()
# WHERE Retrieve4
c.execute("SELECT * FROM users WHERE id = :id1 OR id = :id2", {"id1": 2, "id2": 5})
print('param6', c.fetchall())
print()
# Dump 출력
with conn:
with open('c:/python_basic/resource/dump.sq1', 'w') as f:
for line in conn.iterdump():
f.write('%s\n' % line)
print('Dump Print Complete')
# f.close(), conn.close() <- with 문 때문에
<Output>
param2 (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-07 12:23:44')
param2 []
dict (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-07 12:23:44')
dict []
param4 [(3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-07 12:23:44'), (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-07 12:23:44')]
param5 [(3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-07 12:23:44'), (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-07 12:23:44')]
param6 [(2, 'Park', 'Park@naver.com', '010-1111-1111', 'Park.com', '2020-06-07 12:23:44'), (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-07 12:23:44')]
Dump Print Complete
파이썬 데이터베이스 연동 테이블 수정, 삭제

import sqlite3
# DB생성(파일)
conn = sqlite3.connect('./resource/database.db')
# Cursor 연결
c = conn.cursor()
# 데이터 수정1
c.execute("UPDATE users SET username = ? WHERE id = ?", ('niceman', 2))
# 데이터 수정2
c.execute("UPDATE users SET username = :name WHERE id = :id", {"name": "good", "id": 5})
# 데이터 수정3
c.execute("UPDATE users SET username = '%s' WHERE id = '%d'" % ('badboy', 3))
conn.commit()
# 중간 데이터 확인1
for user in c.execute("SELECT * FROM users"):
print(user)
# Row Delete1
c.execute("DELETE FROM users WHERE id = ?", (2,))
# Row Delete2
c.execute("DELETE FROM users WHERE id = :id", {"id": 5})
# Row Delete3
c.execute("DELETE FROM users WHERE id = '%d'" % 4)
# 테이블 전체 데이터 삭제
print("users db deleted : ", conn.execute("DELETE FROM users").rowcount, " rows")
# 커밋
conn.commit()
# 접속 해제
conn.close()
<Output>
(1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-07 12:23:44')
(3, 'badboy', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-07 12:23:44')
users db deleted : 2 rows
오늘까지 파이썬으로 데이터베이스를 연동하여,(특히 SQLite) 어떻게 데이터를 다루는지에 대해서 배웠습니다.
현존하는 전세계 기업에서 데이터베이스는 정말 중요한 부분 인만큼, 더 많은 공부를 해야할 것 같습니다.
다음 시간에는 패스트캠퍼스 파이썬 기본 파이썬 인강 수업 마지막 시간이 될 것 같네요.
마지막까지 화이팅하겠습니다!
패스트캠퍼스 파이썬 인강 자세한 내용은 아래 링크를 참고해 주세요!
'Python Basics' 카테고리의 다른 글
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 15 회차 미션 (0) | 2020.06.08 |
|---|---|
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 13 회차 미션 (0) | 2020.06.06 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 12 회차 미션 (0) | 2020.06.05 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 11 회차 미션 (0) | 2020.06.04 |
| [패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 10 회차 미션 (0) | 2020.06.03 |