데이터베이스(db)/SQLite

[Python] SQLite 데이터베이스에 값 입력하기, 변경하기(Insert, Update)

끄적끄적아무거나 2022. 9. 7. 18:58
반응형

 

목차

     

     

     

     

     

     

    파이썬 SQLite 데이터베이스에 값 입력(Insert)

    앞서 포스트에서 SQLite를 사용해서 DB를 생성하고 테이블을 만드는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/596). 이번 포스트는 앞서 생성한 테이블에 내용을 입력하는 방법에 대해 알아보겠습니다. 

     

    데이터 입력을 위해서 파이썬 함수  execute로 SQLite 명령을 실행하고 commit으로 변경 내용을 저장합니다. 

     

    SQLite에서 데이터 입력은 INSERT INTO 테이블명 으로 실행 합니다. 

     

    상세 내용은 아래 예제를 통해 이해해 보겠습니다. 

     

    예제 코드>>

    import sqlite3
    from sqlite3 import Error
    
    def connection():
        try:
            con = sqlite3.connect('test0.db')
            return con
        except Error:
            print(Error)
    
    def create_table(con):
        cursor_db = con.cursor()
        cursor_db.execute("CREATE TABLE checkup(id integer PRIMARY KEY, Name text, Height real, Weight real, Measured_date text)")
        con.commit()
    
    def insert_one(con, one_data):
        cursor_db = con.cursor()   
        cursor_db.execute('INSERT INTO checkup(id, Name, Height, Weight, Measured_date) VALUES(?, ?, ?, ?, ?)', one_data)   
        con.commit()
    
    con = connection()
    
    create_table(con)
    one_data = (1, 'James', '170cm', '70kg', '2022/09/07')
    insert_one(con, one_data)

    4~9번 라인: DB를 생성하거나 접속하는 함수 입니다.

    11~14번 라인: 테이블(Table)을 형성합니다.

    16~19번 라인: 데이터를 입력합니다.

    21번 라인: DB 연결하고 Instance를 생성합니다.

    23번 라인: 이미 테이블이 만들어져 있다면 삭제합니다.

    24번 라인: 입력값을 형식에 맞춰 넣습니다.

    25번 라인: DB에 값을 넣습니다.

     

     

    결과>>

    정상적으로 결과가 저장되었음을 알 수 있습니다. 

     

     

     

     

     

     

    파이썬 SQLite 데이터베이스에 값 업데이트(Update)

     

    이번에는 입력된 값에서 특정 값만 변경하는 Update에 대해 알아보겠습니다. 

     

    Update의 SQLite 명령어는 다음과 같습니다.

     

    Update 테이블명 SET 변수명 = 변경할값 where id=변경할 아이디

     

    아래 예제를 통해 쉽게 이해해보겠습니다. 해당 예제는 앞서 Insert로 입력한 값의 이름을 변경하는 작업을 해보겠습니다.

     

    예제 코드>>

    import sqlite3
    from sqlite3 import Error
    
    def connection():
        try:
            con = sqlite3.connect('test0.db')
            return con
        except Error:
            print(Error)
    
    def create_table(con):
        cursor_db = con.cursor()
        cursor_db.execute("CREATE TABLE checkup(id integer PRIMARY KEY, Name text, Height real, Weight real, Measured_date text)")
        con.commit()
    
    def insert_one(con, one_data):
        cursor_db = con.cursor()   
        cursor_db.execute('INSERT INTO checkup(id, Name, Height, Weight, Measured_date) VALUES(?, ?, ?, ?, ?)', one_data)   
        con.commit()
    
    def update_one(con):
        cursor_db = con.cursor()
        cursor_db.execute('UPDATE checkup SET Name = "Miller" where id = 1')
        con.commit()
    
    
    con = connection()
    update_one(con)

     

    1~19번 라인: 앞서 내용이고 connection 함수 외에는 사용하지 않습니다.

    21~24번 라인: Update를 사용해서 값을 변경합니다.

    23번 라인: id=1에 James로 입력되어 있던 값을 Miller로 변경합니다.

     

     

    결과>>

    값이 아래와 같이 정상적으로 변경되었습니다.

     

     

     

    반응형