차밍이

[Python] SQlite3 DB에 데이터 저장 및 조회 본문

파이썬/기본 문법 정리

[Python] SQlite3 DB에 데이터 저장 및 조회

2023. 1. 28. 05:00
반응형

목차

    파이썬으로 작업하다보면 SQL 데이터 작업을 해야할 때가 생깁니다.

    SQLite 데이터베이스를 파이썬에서 연결하는 방법에 대해서 알아보겠습니다.

    sqlite3 로고

    전체적인 Flow

    파이썬에서 DB 파일에 연결하고 작업하는 전체적인 과정입니다.

    import sqlite3
    
    con = sqlite3.connect('example.db')
    cur = con.cursor()
    
    # 테이블 만들기
    cur.execute('''CREATE TABLE stocks
                   (date text, trans text, symbol text, qty real, price real)''')
    
    # ROW 단위로 데이터 저장하기
    cur.execute("INSERT INTO stocks VALUES ('2006-01-05','BUY','RHAT',100,35.14)")
    
    # 데이터 저장하기
    con.commit()
    
    # connection 종료하기
    con.close()

    1. con은 Connect 객체로 데이터베이스와 연결하는 역할을 합니다.

    2. Connection을 얻었으면, Cursor 객체를 만들어 cur을 사용해서 SQL의 전반적인 작업을 수행합니다.

    3. execute 메소드를 사용해서 SQL 문법을 수행할 수 있습니다.

    4. 모든 작업이 끝났다면, Connection에서 commit을 수행하여 변경된 내용을 DB에 저장합니다.

    5. 이후 DB와연 연결을 종료해 마무리를 합니다.

     

    SQL 데이터 조회

    데이터 가져오기 : execute / fetchone / fetchall()

    # 방법 1 직접 작성
    cur.execute("SELECT * FROM stocks WHERE symbol='AAPL'")
    print(cur.fetchone())
    
    # 방법 2 변수 넣기
    t = ('AAPL',)
    cur.execute('SELECT * FROM stocks WHERE symbol=?', t)
    print(cur.fetchone())
    print(cur.fetchall())

    execute는 단순 실행만합니다.

    데이터를 꺼내려면, cur를 iterator로 사용하거나, fetchone method를 사용해서 단일행 데이터를 그져와야 합니다.

    다수의 행을 한 번에 조회하려면 fetchall() 메소드를 사용하면 됩니다.

     

    다수의 데이터 저장하기 : executemany

    purchases = [('2006-03-28', 'BUY', 'IBM', 1000, 45.00),
                 ('2006-04-05', 'BUY', 'MSFT', 1000, 72.00),
                 ('2006-04-06', 'SELL', 'IBM', 500, 53.00),
                ]
    cur.executemany('INSERT INTO stocks VALUES (?,?,?,?,?)', purchases)

    다수의 데이터를 저장할때에는 executemany 메소드를 사용합니다.

    반응형

    관련된 글 보기

    Comments