본문 바로가기
공부/파이썬 (Python)

[SQLite] 파이썬 데이터베이스 연동(2), 테이블 조회, 수정, 삭제

by Lagooni 2021. 11. 5.

테이블 조회하기

현재 테이블 데이터

#파이썬 데이터베이스 연동(SQLite)
import sqlite3
from sqlite3.dbapi2 import connect

conn = sqlite3.connect('/mnt/c/Users/mch12/Documents/python_basic/resource/database.db')

#커서 바인딩
c = conn.cursor()

#데이터 조회
c.execute("SELECT * FROM users")

#커서 위치가 변경
#1개 로우 선택
# print('One -> \n', c.fetchone())

#지정 로우 선택
# print('Three -> \n', c.fetchmany(size=3))

rows = c.fetchall()
for row in rows:
    print('retrieve1 >', row)

결과


튜플로 조회하기

#Where Retrieve1
param1 = (3,)
c.execute('SELECT * FROM users WHERE id=?',param1)
print('param1', c.fetchone())
#하나만 가져왔다면 fetchall()에는 아무것도 나오지 않는다.
print('param1', c.fetchall())

결과

값으로 조회하기

#Where Retrieve2
param2 = 4
c.execute('SELECT * FROM users WHERE id="%s"' % param2)
print('param2', c.fetchone())
print('param2', c.fetchall())

결과

dictionary로 조회하기

#Where Retrieve3
c.execute('SELECT * FROM users WHERE id=:Id', {"Id": 5})
print('param2', c.fetchone())
print('param2', c.fetchall())

결과

 

Dump 만들기

덤프? 덤프는 백업이나 복구를 위해 데이터테이블의 구조와 입력된 레코드를 저장하는 방법이다.

with conn:
    with open('/mnt/c/Users/mch12/Documents/python_basic/resource/dump.sql', 'w') as f:
        for line in conn.iterdump():
            f.write('%s\n' % line)
        print('Dump Print Complete!')

만들어진 dump파일


데이터 수정 (튜플)

id가 2번인 데이터의 username을 niceman으로 바꿔보자.

import sqlite3

conn = sqlite3.connect('/mnt/c/Users/mch12/Documents/python_basic/resource/database.db')

c = conn.cursor()

#데이터 수정
c.execute("UPDATE users SET username = ? WHERE id = ?", ('niceman', 2))

conn.commit()

데이터 수정 (dictionary)

#데이터 수정
c.execute("UPDATE users SET username = :name WHERE id = :id", {'name': 'Koo', 'id' : 5})
conn.commit()

데이터 삭제

# 데이터 삭제
c.execute("DELETE FROM users WHERE id = ?", (2,))

id: 2번이 지워진 결과

 

댓글