본문 바로가기

Python Basics

[패스트캠퍼스 수강 후기] 파이썬 인강 자기계발 챌린지 14 회차 미션

패스트캠퍼스 파이썬 웹개발 올인원 패키지 후기(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) 어떻게 데이터를 다루는지에 대해서 배웠습니다.

현존하는 전세계 기업에서 데이터베이스는 정말 중요한 부분 인만큼, 더 많은 공부를 해야할 것 같습니다.

다음 시간에는 패스트캠퍼스 파이썬 기본 파이썬 인강 수업 마지막 시간이 될 것 같네요.

마지막까지 화이팅하겠습니다!

 

패스트캠퍼스 파이썬 인강 자세한 내용은 아래 링크를 참고해 주세요!

 

https://bit.ly/2WG0IXN