본문 바로가기

교육/Pyhotn 180709-180713

4일차 sqlite

import sqlite3


def createTable(): # 없으면 만들고 connect, 있으면 connect

    try:

        sql = "create table if not exists student(name varchar(20), age int)"

        db = sqlite3.connect('my.db')

        db.execute(sql)

        db.commit() # sql 명령 확정

        # db.rollback() # sql 명령 취소

        db.close()

        print('create success')

    except Exception as err:

        print('에러: ', err)


def insertTable():

    try:

        db = sqlite3.connect('my.db')


        sql = "insert into student(name,age) values('홍길동', 20)" # sql 에서 문자열은 "" 로 묶기

        db.execute(sql)

        db.commit()


        # 한꺼번에 여러 데이터 동시에 입력 필요 시,

        sql2 = "insert into student(name,age) values(?,?)"

        data=[('김철수1', 40), ('김철수2', 30)]

        db.executemany(sql2, data)

        db.commit()


        db.close()

        print('insert success')

    except Exception as err:

        print('에러: ', err)


def deleteTable():

    try:

        sql = "delete from student where age=20" # 테이블 자체를 없애려면 "drop table student"

        db = sqlite3.connect('my.db')

        db.execute(sql)

        db.commit()

        db.close()

        print('delete success')

    except Exception as err:

        print('에러: ', err)


def updateTable():

    try:

        sql = "update student set name='김철수1',age='31' where name='김철수3'"

        db = sqlite3.connect('my.db')

        cur = db.cursor()

        cur.execute(sql)

        print('반영된 갯수:', cur.rowcount)

        db.commit()

        db.close()

        print('update success')

    except Exception as err:

        print('에러: ', err)


def selectTable():

    try:

        sql = "select * from student where age>30"

        db = sqlite3.connect('my.db')

        cur = db.cursor()

        cur.execute(sql)

        for c in cur: # 하나씩 가져오기. 한번에 다 (튜플 리스트로) 가져오려면 print(cur.fetchall())

            print(c) # 튜플로 출력됨

        db.close()

    except Exception as err:

        print('에러: ', err)


createTable()

insertTable()

updateTable()

selectTable()

deleteTable()



'교육 > Pyhotn 180709-180713' 카테고리의 다른 글

5일차 정규식  (0) 2018.07.13
4일차 python 확장 - C 언어  (0) 2018.07.12
3일차 library  (0) 2018.07.11
3일차 Class  (0) 2018.07.11
2일차 module  (0) 2018.07.10