티스토리 뷰

목차

    반응형

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

    반응형