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)