SQLite
SQLite是一個軟件庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。SQLite是一個增長最快的數據庫引擎,這是在普及方面的增長,與它的尺寸大小無關。SQLite 源代碼不受版權限制。
它是一個零配置的數據庫,這意味着與其他數據庫一樣,您不需要在系統中配置。
SQLite數據庫優點
- 不需要一個單獨的服務器進程或操作的系統(無服務器的)
- SQLite 不需要配置,這意味着不需要安裝或管理
- 一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件
- SQLite 是非常小的,是輕量級的
- SQLite 是自給自足的,這意味着不需要任何外部的依賴
- 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)