데이터베이스(db)/SQLite

[Python] SQLite DB불러오기 (Select, Fetch)

끄적끄적아무거나 2022. 9. 8. 09:03
반응형

 

목차

     

     

     

     

     

    파이썬 SQLite DB불러오기

     

    앞 포스트에서 테이블을 만들고 데이터를 저장하는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/597). 이번 포스트는 저장된 DB를 읽는 방법에 대해 알아보겠습니다.

     

    우선 SQLite에서 모든 데이터를 부를 때 아래와 같은 명령어를 사용합니다.

     

    SELECT * FROM 테이블명

     

    테이블에 있는 모든 데이터(별표)를 선택하겠다는 의미 입니다. 그리고 fetchall 함수로 데이터를 불러 옵니다. 아래 파이썬 예제로 쉽게 이해해 보겠습니다.

     

    현재 SQLite 데이터 베이스에는 아래와 같은 정보가 포함되어 있습니다.

     

     

    예제 코드>>

    import sqlite3
    from sqlite3 import Error
    
    def connection():
        try:
            con = sqlite3.connect('test0.db')
            return con
        except Error:
            print(Error)
    
    def read_all(con):
        cursor_db = con.cursor()
        cursor_db.execute('SELECT * FROM checkup')
        raw_datas = cursor_db.fetchall()
        for _ in raw_datas:
            print(_)
    
    con = connection()
    read_all(con)

    4~9번 라인: DB 파일에 연결 함수

    13번 라인: SQLite 읽기 명령 실행

    14번 라인: fetchall로 불러오기

    15~16번 라인: 출력

     

     

    결과>>

    (1, 'Miller', '170cm', '70kg', '2022/09/07')
    (2, 'James', '150cm', '60kg', '2022/09/08')
    (3, 'John', '180cm', '90kg', '2022/09/08')

     

     

     

     

     

    파이썬 SQLite 테이블 검색하기(Search)

     

    특정 조건을 검색할 때 SQLite는 where 명령을 사용합니다. 그리고 추가 조건을 넣고 싶을 경우 AND를 넣어서 실행합니다. 이번에는 테이블을 검색할 때 아래와 같이 사용하시면 됩니다.

     

    SELECT name from sqlite_master where type="table" AND 조건문

     

    아래 예제를 통해 쉽게 이해해 보겠습니다.

     

    예제코드>>

    import sqlite3
    from sqlite3 import Error
    
    def connection():
        try:
            con = sqlite3.connect('test0.db')
            return con
        except Error:
            print(Error)
    
    def check_table(con):
        cursor_db = con.cursor()
        cursor_db.execute('SELECT name from sqlite_master where type= "table" AND name="checkup"')
        print(cursor_db.fetchall())
    
    con = connection()
    check_table(con)

    13번 라인: table 종류에서 테이블의 이름이 checkup이 있는지 확인하고 있으면 이름을 선택합니다.

    14번 라인: 선택한 이름을 불러 옵니다.

     

     

    결과>>

    [('checkup',)]

    테이블이 없다면 빈 값이 출력 됩니다. 

     

     

     

    반응형