python SQLite數據庫操作

SQLite

SQLite是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite是一個增長最快的數據庫引擎,這是在普及方面的增長,與它的尺寸大小無關。SQLite 源代碼不受版權限制。
它是一個零配置的數據庫,這意味着與其他數據庫一樣,您不需要在系統中配置。

SQLite數據庫優點

  1. 不需要一個單獨的服務器進程或操作的系統(無服務器的)
  2. SQLite 不需要配置,這意味着不需要安裝或管理
  3. 一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件
  4. SQLite 是非常小的,是輕量級的
  5. SQLite 是自給自足的,這意味着不需要任何外部的依賴
  6. SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行

代碼實現SQLite創建、插入、查詢、刪除操作

import sqlite3
class Mysqlite(object):
    def __init__(self,dbpath):
        # 如果不存在則創建
        self.con = sqlite3.connect(dbpath)
        self.cur = self.con.cursor()

    def __del__(self):
        self.close()
    
    def execute_sqlite3(self,sql):
        # 命令處理
        sql = sql.lower()
        if 'insert' in sql or 'delete' in sql or  'update' in sql or  'create' in sql:
            self.cur.execute(sql)
            self.con.commit()
            print('done..')
            return 
        elif 'select' in sql :
            self.cur.execute(sql)
            data = self.cur.fetchall()
            print(data)
            return data

    def create_table(self,table_name,title):
        # 自定義創建表
        sql = "CREATE TABLE {}({})".format(table_name,title)
        self.execute_sqlite3(sql)

    def insert_value(self,table_name,value):
        # 插入自定義數據
        sql = "INSERT INTO {} values({})".format(table_name,value)
        self.execute_sqlite3(sql)

    def select_data(self,table_name):
        # 查詢數據
        sql = "SELECT * FROM {}".format(table_name)
        self.execute_sqlite3(sql)

    def update_data(self,table_name,field,value,id):
        # 修改數據
        sql = "UPDATE {} set {} = '{}' where id = {}".format(table_name,field,value,id)
        self.execute_sqlite3(sql)
    
    def delete_data(self,table_name,id):
        # 刪除數據
        sql = "DELETE FROM {} where id = {}".format(table_name,id)
        self.execute_sqlite3(sql)

    def close(self):
        # 關閉資源
        self.cur.close()
        self.con.close()

if __name__ == "__main__":
    sqlite = Mysqlite('test.db')
    table_name = 'foo'
    try:
        sqlite.create_table(table_name,'id integer primary key autoincrement, name varchar(128), info varchar(128)')
    except:
        print("{} created..")
    sqlite.insert_value(table_name,'NULL,\"apple\",\"broccoli\"')
    sqlite.select_data(table_name)
    sqlite.update_data(table_name,'name',"orange",1)
    sqlite.select_data(table_name)
    sqlite.delete_data(table_name,2)
    sqlite.select_data(table_name)

運行結果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章