티스토리 뷰
목차
파이썬 데이터베이스로 SQLite 사용하여 db 생성, 삽입, 삭제, 조회, 정렬 방법을 알아보겠습니다.
전체 예제 소스는 아래에 있으며, 파이참에서 실행할 때 콘솔에서 제어할 수 있습니다.
Python While 반복문을 통해 콘솔에서 계속 제어 가능합니다. 메뉴는 아래와 같습니다.
- DB 테이블 생성 : CREATE TABLE infos
- 데이터 삽입 : INSERT INTO infos VALUES
- 데이터 출력 : SELECT * FROM infos
- 데이터 검색 : SELECT * FROM infos WHERE name="{}"
- 데이터 정렬 : SELECT * FROM infos ORDER BY name
- 데이터 삭제 : DELETE FROM infos WHERE name="{}"
◆ 파이썬 데이터베이스(Sqlite db) 쿼리 예제
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | import sqlite3 def createPhoneBook(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() cursor.execute('CREATE TABLE infos (name text, phone text)') conn.commit() conn.close() def insertRecord(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() name = input('name : ') phone = input('phone: ') cursor.execute('INSERT INTO infos VALUES ("{}", "{}")'.format(name, phone)) conn.commit() conn.close() def fetchPhoneBook(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() for row in cursor.execute('SELECT * FROM infos'): print(row[0], row[1]) conn.close() def orderPhoneBook(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() order = input('ASC or DESC : ') order = order.upper() if order != 'ASC' and order != 'DESC': order = 'ASC' for row in cursor.execute('SELECT * FROM infos ORDER BY name {}'.format(order)): print(row) conn.close() def searchName(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() name = input('name : ') for row in cursor.execute('SELECT * FROM infos WHERE name="{}"'.format(name)): print(row) conn.close() def deleteName(filename): conn = sqlite3.connect(filename) cursor = conn.cursor() name = input('name : ') cursor.execute('DELETE FROM infos WHERE name="{}"'.format(name)) conn.commit() conn.close() filename = 'phonebook.db' while True: try: menu = int(input('create(0) insert(1) fetch(2) order(3) search(4) delete(5) : ')) if menu == 0: createPhoneBook(filename) elif menu == 1: insertRecord(filename) elif menu == 2: fetchPhoneBook(filename) elif menu == 3: orderPhoneBook(filename) elif menu == 4: searchName(filename) elif menu == 5: deleteName(filename) else : break except ValueError: print('number only.') | cs |
위 파이썬 데이터베이스 소스를 실행하면 아래와 같습니다.
■ 결과
Python DB 데이터 사용법
■ create ( 0 )
Python DB 데이터 사용법
데이터베이스 예제 프로그램 실행하고 콘솔에서 0 번 입력하면 위 그림처럼 phonebook.db 라는 파일이 생성됩니다.
5번 delete를 입력하면 이 SQLite db 파일은 삭제됩니다.
■ insert ( 1 )
1번 입력하면 name, phone을 차례로 입력합니다.
■ fetch ( 2 )
2번 입력하면 1번 insert 과정에서 삽입된 데이터를 모두 출력합니다.
■ order ( 3 )
3번을 입력하면 오름차순, 또는 내림차순으로 데이터가 정렬됩니다.
■ search ( 4 )
4번 입력하고 검색할 이름을 넣습니다. 같은 이름의 데이터가 출력됩니다.
■ delete ( 5 )
SQLite DB를 포함해 모든 데이터를 삭제합니다.
여기까지 파이썬 데이터베이스(SQLite DB) 쿼리 사용 방법이었습니다. 어려운 부분은 없고 기초적인 부분입니다.
이런 예제로 감을 잡고 더 좋은 DB 쿼리 프로그램 만들어 보세요.
Python DB 데이터 사용법
관련 글
▷ sqlite 테이블 생성, 존재 여부 확인해 중복 방지
▷ 파이썬 SQLite3 자료형 정리 (Python DB)
▷ [R프로그래밍 기초 강좌] MySQL 연동하기, RMYSQL
#파이썬SQLite #파이썬DB #파이썬데이터베이스
ⓒ written by vicddory