본문 바로가기
C++ 200제/코딩 IT 정보

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

by vicddory 2019. 6. 17.

파이썬 데이터베이스로 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

댓글