사용자 도구

사이트 도구


wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회

테이블 조회

  • 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

/var/services/web/dokuwiki/data/pages/wiki/ai/python/데이터베이스_연동_sqlite_-_테이블_조회.txt · 마지막으로 수정됨: 2023/01/13 18:44 (바깥 편집)