데이터베이스(db)/SQLite

[Python] SQLite 테이블 if not 으로 검색 후 생성, 삭제(drop, delete)

끄적끄적아무거나 2022. 9. 22. 09:30
반응형

 

목차

     

     

     

     

     

    SQLite에 대한 기본적인 내용을 확인하고 싶으시면 블로그에 데이터베이스(Database)의 SQLite 카테고리에서 처음부터 확인하시면 됩니다.

     

     

    파이썬 SQLite 테이블 검색 후 생성하기

     

    SQLite 구문에서 if not exists 을 사용하면 해당 내용이 없을 경우 특정 명령을 실행하게 할 수 있습니다.

     

    명령어 if not exists 찾는내용

     

    아래 예제는 특정 테이블을 찾고 없을 경우 6개의 테이블을 새로 생성하는 예제 입니다.

     

    예제 코드>>

    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()
        for _ in range(5):
            cursor_db.execute('create table if not exists new_t'+str(_)+'(id integer, name text)')
        con.commit()
    
    con = connection()
    create_table(con)

    4~9번 라인: sqlite에 접속 합니다.

    13~14번 라인: new_t로 시작하는 테이블이 없을 경우 생성하기 시작 합니다.

     

    결과>>

    기존의 checkup 테이블에서 new_t0~new_t4의 새로운 테이블이 형성되었습니다.

     

     

     

     

     

    파이썬 SQLite 테이블 삭제하기

     

    테이블 삭제는 drop으로 실행합니다. 

    DROP table if exists 찾는내용

    해당 테이블이 있을 경우 테이블을 삭제 해줍니다.

     

     

    아래 예제는 앞서 생성한 new_t0 테이블을 삭제하는 예제 입니다.

     

    예제 코드>>

    import sqlite3
    from sqlite3 import Error
    
    def connection():
        try:
            con = sqlite3.connect('test0.db')
            return con
        except Error:
            print(Error)
    
    def delete_table(con):
        cursor_db = con.cursor()
        for _ in range(5):
            cursor_db.execute('DROP table if exists new_t0')
        con.commit()
    
    con = connection()
    delete_table(con)

    14번 라인: DROP을 사용해서 new_t0 테이블을 삭제 합니다.

     

     

    결과>>

    위 결과와 같이 테이블이 삭제되었음을 알 수 있습니다. 

     

     

     

    반응형