양쪽 이전 판
이전 판
다음 판
|
이전 판
|
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2020/06/26 22:45] hylee |
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2023/01/13 18:44] (현재) |
==== 예제 코드 ==== | ==== 예제 코드 ==== |
<code python> | <code python> |
| # 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.') |
| |
| </code> |
==== 실행 콘솔 ==== | ==== 실행 콘솔 ==== |
<code console> | <code console> |
| |
| 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. |
</code> | </code> |
| |
| |
| |
{{tag>도봉산핵주먹 python }} | {{tag>도봉산핵주먹 python 테이블조회}} |