본문 바로가기
Python

Python에서 SQLite 사용 & 연동하기/파이썬 DB사용하기

by 고체물리학 2021. 9. 13.

1. 먼저 SQLite를 다운받고 테이블을 만든다

2021.04.26 - [SQL] - 데이터베이스 - SQLite 사용하기, DB Browser for SQLite 다운로드

2021.06.10 - [SQL] - SQLite- CREATE문 TABLE (테이블 생성하기)/테이블 추가

 

 

2. Python에서 sqlite3을 import 한다

import sqlite3

 

3. sqlite3 라이브러리의 connect를 이용해 db를 연결한다

 

con = sqlite3.connect("test.db")

 

프로젝트 파일안에 test이름의 db가 있으면 연결되고

없으면 test이름의 db를 생성하고 연결해준다

 

4. Cursor 객체를 생성한다

 

Cur = con.cursor()

 

 

 

test.db에 있는 test_table 요소에 값을 추가하려면

INSERT INTO test_table(string_test,int_test) VALUES("추가데이터1","추가데이터2") 또는

INSERT INTO test_table VALUES("추가데이터1","추가데이터2")

sql문을 실행해야 한다

 

5.  sql문 작성

sql = "INSERT INTO test_table VALUES(추가데이터,추가데이터)"
self.Cur.execute(sql)
self.con.commit()

보통 이렇게 작성하면 되는데 추가할 데이터를 받아서 쓰기 위해 상황에 맞는 함수로 코딩했다

 

[전체코드]

import sqlite3

class Test:
    # SQLite DB 연결
    con = sqlite3.connect("test.db")

    #Cursor 객체 생성
    Cur = con.cursor()

    def Insert_Data(self,data1,data2):
        try:
            sql = "INSERT INTO test_table VALUES(?,?)"
            data = (data1,data2)
            self.Cur.execute(sql,data)
        except Exception as e:
            print('error:',e)
        finally:
            self.con.commit() # sql문을 commit한다



if __name__ == '__main__':
    SQL = Test()
    SQL.Insert_Data("data1","1")

[결과]

 

별다른 에러 없이 테이블에 값이 추가되었다

 

 

 

int_test가 primary key라서 중복이 허용 안되는데

이때 함수를 또 실행하면 제약조건 때문에 에러가 떠서 프로그램이 실행 안될 것이다

이것 때문에 다른 코드에 영향을 주면 안 되니

try - catch문으로 적절하게 예외문을 만들어서 error코드가 나오게 짰다

error: UNIQUE constraint failed: test_table.int_test

unique 때문에 실패했다고 에러가 뜬다

int_test 값을 바꿔서 실행하면 정상적으로 추가된다

 

반응형

댓글