====== 테이블 조회 ======
* description : 테이블 조회
* author : 도봉산핵주먹
* email : hylee@repia.com
* lastupdate : 2020-06-26
===== 테이블 조회 =====
==== 예제 코드 ====
# Section12-2
# 파이썬 데이터베이스 연동(SQLite)
# 테이블 조회
import sqlite3
# DB 파일 조회(없으면 새로 생성)
# conn = sqlite3.connect('본인이 원하는 경로/database.db/database.db')
conn = sqlite3.connect('D:/python_bnasic/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,2,3 실행하는 구문말곤 주석 처리 해야한다.
# 순회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()
# WHERE Retrieve1
param1 = (1,)
c.execute('SELECT * FROM users WHERE id=?', param1)
print('param1', c.fetchone())
print('param1', c.fetchall())
# WHERE Retrieve2
param2 = 1
c.execute("SELECT * FROM users WHERE id='%s'" % param2) # %s %d %f
print('param2', c.fetchone())
print('param2', c.fetchall())
# WHERE Retrieve3
c.execute("SELECT * FROM users WHERE id= :Id", {"Id": 1})
print('param3', c.fetchone())
print('param3', c.fetchall())
# WHERE Retrieve4
param4 = (1, 4)
c.execute('SELECT * FROM users WHERE id IN(?,?)', param4)
print('param4', c.fetchall())
# WHERE Retrieve5
c.execute("SELECT * FROM users WHERE id In('%d','%d')" % (1, 4))
print('param5', c.fetchall())
# WHERE Retrieve6
c.execute("SELECT * FROM users WHERE id= :id1 OR id= :id2", {"id1": 1, "id2": 4})
print('param6', c.fetchall())
with conn:
# Dump 출력(데이터베이스 백업 시 중요)
# with open('본인이 원하는 경로/dump.sql', 'w') as f:
with open('D:/python_bnasic/resource/dump.sql', 'w') as f:
for line in conn.iterdump():
f.write('%s\n' % line)
print('Dump Print Complete.')
==== 실행 콘솔 ====
One ->
(1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31')
Three ->
[(2, 'Park', 'Park@naver.com', '010-1111-1111', 'Park.com', '2020-06-26 22:47:31'), (3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-26 22:47:31'), (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-26 22:47:31')]
All ->
[(5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-26 22:47:31')]
retrieve3 > (5, 'Yoo', 'Yoo@naver.com', '010-4444-4444', 'Yoo.com', '2020-06-26 22:47:31')
retrieve3 > (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-26 22:47:31')
retrieve3 > (3, 'Lee', 'Lee@naver.com', '010-2222-2222', 'Lee.com', '2020-06-26 22:47:31')
retrieve3 > (2, 'Park', 'Park@naver.com', '010-1111-1111', 'Park.com', '2020-06-26 22:47:31')
retrieve3 > (1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31')
param1 (1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31')
param1 []
param2 (1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31')
param2 []
param3 (1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31')
param3 []
param4 [(1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31'), (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-26 22:47:31')]
param5 [(1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31'), (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-26 22:47:31')]
param6 [(1, 'Kim', 'Kim@naver.com', '010-0000-0000', 'Kim.com', '2020-06-26 22:47:31'), (4, 'Cho', 'Cho@naver.com', '010-3333-3333', 'Cho.com', '2020-06-26 22:47:31')]
Dump Print Complete.
===== Tip =====
{{tag>도봉산핵주먹 python 테이블조회}}