python 디비 생성 및 다루기(3)
python 디비 생성 및 다루기(1) 로 라이블러 임포트 및 conn, c 선언하기
fetchone() : 현재 커서 위치의 값을 출력
fetchall() : 데이터를 배열형식으로 저장
# WHERE Retrieve1
param1=(1,)
c.execute('SELECT * FROM users WHERE id=?',param1)
print('param1',c.fetchone())
print('param1',c.fetchall()) # 데이터 없음
param1 (1, 'csb', 'csb@daum.net', '010-8989-0000', 'ccssbb.com', '2021-09-02 20:29:39')
param1 []
# WHERE Retrieve2
param2 = 4
c.execute('SELECT * FROM users WHERE id="%s"' % param2)
print('param2 ',c.fetchone())
print('param2 ',c.fetchall())
param2 (4, 'Cho', 'Cho@daum.net', '010-3333-3333', 'Cho.com', '2021-09-02 20:29:39')
param2 []
# WHERE Retrieve3 딕셔너리로
c.execute('SELECT * FROM users WHERE id=:Id',{"Id":5})
print('param3',c.fetchone())
print('param3 ',c.fetchall())
param3 (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')
param3 []
# WHERE Retrieve4 특정 데이터만 조회
param4 = (3,5)
c.execute("SELECT * FROM users WHERE id IN(?,?)",param4)
print('param4 ',c.fetchall())
param4 [(3, 'Lee', 'Lee@naver.com', '010-8989-9718', 'Lee.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]
# WHERE Retrieve4-2 다른방법
c.execute("SELECT * FROM users WHERE id IN('%d','%d')"% (3,5))
print('param4-2 ',c.fetchall())
param4-2 [(3, 'Lee', 'Lee@naver.com', '010-8989-9718', 'Lee.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]
# WHERE Retrieve6
c.execute("SELECT * FROM users WHERE id=:id1 OR id=:id2",{"id1":2,"id2":5})
print('param6',c.fetchall())
param6 [(2, 'Park', 'Park@daum.net', '010-3617-0000', 'Park.com', '2021-09-02 20:29:39'), (5, 'Yoo', 'Yoo@google.com', '010-4444-4444', 'Yoo.net', '2021-09-02 20:29:39')]
# Dump : db서버를 이전하거나 백업을 위해서는 Dump파일이 필요하다
# Dump 출력
with conn:
with open('D:/[패캠] 파이썬 웹 개발 올인원/python실습(1강)/dump.sql','w') as f:
for line in conn.iterdump():
f.write('%s\n'%line)
print('Dump Print Complete')
# f.close() | with 블록을 벗어나는 순간 자동으로 close되어 편리하다.