공부합시다!/python

13. DB: DB data 다루기 - 1

간서치 2023. 2. 7. 00:12
728x90

오늘은 생성한 DB에서 Table을 조회하는 방법에 대해서 살펴보겠습니다.

기존의 DB구문과 차이가 없으니 가볍게 보면서 실습해 보시기 바랍니다.

 

'''
다양한 테이블 조회
 1. SQLite 기본 사용법
 2. select
 3. where
 4. Tuple, Dictionary Mapping
'''

import sqlite3

conn = sqlite3.connect('./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('All -> \n', c.fetchall())     # 다음행에는 파일이 없음

# 순회1
#rows = c.fetchall()
#for row in rows:
#  print('retrievel > ', 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('-------------------------------------------')

# Where Retrievel
param1 = (3,)
c.execute("select * from users where id=?", param1)

print('param1', c.fetchone())
print('param1', c.fetchall()) # 데이터 없음

# where Retireve2
param2 = 4
c.execute("select * from users where id='%s'" %param2)

print('param2', c.fetchone())
print('param2', c.fetchall()) # 데이터 없음

# Where Retireve3
c.execute("select * from users where id=:ID", {"ID": 5})

print('param3', c.fetchone())
print('param3', c.fetchall()) # 데이터 없음

# where Retrieve4
param4 = (3,5)
c.execute("select * from users where id in(?,?)", param4)

print('param4', c.fetchone())
print('param4', c.fetchall()) # 데이터 없음

# where Retrieve5
c.execute("select * from users where id in(%d, %d)" %(3, 4))

print('param5', c.fetchone())
print('param5', c.fetchall()) # 데이터 없음


# where Retrieve6
c.execute("select * from users where id=:ID1 or id=:ID2", {'ID1': 2, 'ID2': 3})

print('param6', c.fetchone())
print('param6', c.fetchall()) # 데이터 없음


# Dump (db 백업) 출력
with conn:
  with open('./resource/dump.sql', 'w') as f:
      for line in conn.iterdump():
        f.write('%s\n' %line)
      print('Dump Print Complete')

728x90