python(三)數據庫

1、mysql數據庫

仿手機通訊錄源碼github上

2、sqlite的使用

1)封裝sqlite實現增刪改查
2)在python中,使用sqlite3創建數據庫的連接,當我們指定的數據庫文件不存在的時候連接對象會自動創建數據庫文件; 如果數據庫文件已經存在,則連接對象不會再創建數據庫文件,而是直接打開該數據庫文件。
3)
~ 對數據庫對象操作:
commit() --事務提交
rollback() --事務回滾
close() --關閉一個數據庫鏈接
cursor() --創建一個遊標

~ 對遊標操作:
execute() --執行一條sql語句
executemany() --執行多條sql語句
close() --遊標關閉
fetchone() --從結果中取出一條記錄
fetchmany() --從結果中取出多條記錄
fetchall() --從結果中取出所有記錄
scroll() --遊標滾動
update() --更新數據
delete() --刪除數據

import sqlite3

class mySqlite:
    def __init__(self, database):
        self.database = database

    def getCon(self):
        try:
            con = sqlite3.connect(self.database)
            return con
        except:
            print("connect err")

    def createCursor(self,con):
        if con is not None:
            return con.cursor()
        else:
            return self.getCon().cursor()

    def createTable(self,name):
        try:
            self.tname = name
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("create table if not exists '%s'(id int primary key not null,username varchar(10) not null,age int not null)"%(self.tname))
            con.commit()
        except:
            print("create_table err")

    def delete_(self,name):
        try:
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("delete from '%s' where username = '%s'"%(self.tname,name))
            con.commit()
        except:
            print("del err")

    def insert(self,id,name,age):
        try:
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("insert into '%s'(id,username,age) values('%d','%s','%d')"%(self.tname,id,name,age))
            con.commit()
        except:
            print("insert err")

    def update(self,name,age):
        try:
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("update '%s' set age = '%d' where username = '%s'"%(self.tname,age,name))
            con.commit()
        except:
            print("update err")

    def select(self,one):
        try:
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("select * from "+self.tname)
            if one == "one":
                return cursor.fetchone()
            else:
                return cursor.fetchall()
        except:
            print("select err")

    def getResult(self,fun,data,one):
        if fun == "update":
            self.update(data[0],data[1])
        elif fun == "insert":
            self.insert(data[0],data[1],data[2])
        elif fun == "delete":
            self.delete_(data[0])
        results = self.select(one)
        for rows in results:
            print(rows)


    def drop(self):
        try:
            con = self.getCon()
            cursor = self.createCursor(con)
            cursor.execute("drop table "+self.tname)
            con.commit()
            print("drop_table ok")
        except:
            print("drop_table err")

def main():
    data = []
    sql1ite = mySqlite("mysqlite.db")
    sql1ite.createTable("user")

    # sql1ite.insert(1,"lucy",17)
    # sql1ite.insert(2, "lily", 15)
    # print("查詢結果")
    # sql1ite.getResult("select",data, None)
    #
    # sql1ite.update("lucy",20)
    # data = ["lucy",20]
    # print("更新數據lucy age: 20後結果")
    # sql1ite.getResult("update",data, None)
    #
    # data = [3,"lolo", 28]
    # print("插入數據lolo後結果")
    # sql1ite.getResult("insert", data, None)
    #
    # data = ["lucy"]
    # print("刪除lucy數據和結果")
    # sql1ite.getResult("delete", data, None)
    #
    # data = []
    # print("查詢一條結果")
    # sql1ite.getResult("select", data, "one")

    print("刪除表之後")
    sql1ite.drop()

if __name__ == "__main__":
    main()
發佈了31 篇原創文章 · 獲贊 1 · 訪問量 5872
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章