코딩 팁

파이썬 데이터베이스 Sqlite db 쿼리 사용, 생성 삽입 삭제 정렬

코딩 기록 vicddory 2019. 6. 17. 08:00

파이썬 데이터베이스로 SQLite 사용하여 db 생성, 삽입, 삭제, 조회, 정렬 방법을 알아보겠습니다.


전체 예제 소스는 아래에 있으며, 파이참에서 실행할 때 콘솔에서 제어할 수 있습니다.



Python While 반복문을 통해 콘솔에서 계속 제어 가능합니다. 메뉴는 아래와 같습니다.


  1. DB 테이블 생성 : CREATE TABLE infos
  2. 데이터 삽입 : INSERT INTO infos VALUES
  3. 데이터 출력 : SELECT * FROM infos
  4. 데이터 검색 : SELECT * FROM infos WHERE name="{}"
  5. 데이터 정렬 : SELECT * FROM infos ORDER BY name
  6. 데이터 삭제 : 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


위 파이썬 데이터베이스 소스를 실행하면 아래와 같습니다.

■ 결과


파이썬 Sqlite db 쿼리 사용 create insert where order byPython DB 데이터 사용법


■ create ( 0 )


파이썬 sqlite 쿼리 사용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 sqlite 예제Python DB 데이터 사용법



관련 글


sqlite 테이블 생성, 존재 여부 확인해 중복 방지


파이썬 SQLite3 자료형 정리 (Python DB)


[R프로그래밍 기초 강좌] MySQL 연동하기, RMYSQL


#파이썬SQLite #파이썬DB #파이썬데이터베이스



ⓒ written by vicddory

반응형
그리드형(광고전용)