|
다음 판
|
이전 판
|
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2020/06/26 22:44] hylee 만듦 |
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2023/01/13 18:44] (현재) |
| * author : 도봉산핵주먹 | * author : 도봉산핵주먹 |
| * email : hylee@repia.com | * email : hylee@repia.com |
| * lastupdate : 2020-06-25 | * lastupdate : 2020-06-26 |
| </WRAP> | </WRAP> |
| <WRAP clear/> | <WRAP clear/> |
| ==== 예제 코드 ==== | ==== 예제 코드 ==== |
| <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 테이블조회}} |