사용자 도구

사이트 도구


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

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2020/06/26 22:45]
hylee
wiki:ai:python:데이터베이스_연동_sqlite_-_테이블_조회 [2023/01/13 18:44] (현재)
줄 12: 줄 12:
 ==== 예제 코드 ====  ==== 예제 코드 ==== 
 <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>
  
줄 22: 줄 126:
  
  
-{{tag>도봉산핵주먹 python }}+{{tag>도봉산핵주먹 python 테이블조회}}
/volume1/web/dokuwiki/data/attic/wiki/ai/python/데이터베이스_연동_sqlite_-_테이블_조회.1593179101.txt.gz · 마지막으로 수정됨: 2022/03/10 19:52 (바깥 편집)