1. SQLite3简介
SQLite3是一个轻量级的、嵌入式的关系型数据库管理系统,在保存测序数据或结果等时可使用,简单高效,并且有无需服务器、单文件存储数据、支持标准SQL、支持跨平台等优势。
本文以Sqlite3数据库为基础,创建代码示例,初始化时接受数据库路径,提供连接和关闭数据库的方法,并包含执行SQL语句、查询、插入、更新和删除数据的方法。
2. Sqlite3数据库操作方法
import sqlite3
“”“
方法说明:
connect(): 连接数据库
close(): 关闭数据库连接
execute(): 执行SQL语句
fetch_all(): 执行查询并返回所有结果
insert(): 插入数据
update(): 更新数据
delete(): 删除数据
select(): 查询数据
”“”
class SQLiteDatabase:
"""SQLite数据库类"""
def __init__(self, database_path: str):
self.database_path = database_path
self.conn = None
self.cursor = None
def connect(self):
# 获取数据库
self.conn = sqlite3.connect(self.database_path)
# 获取游标
self.cursor = self.conn.cursor()
def close(self):
"""关闭数据库连接"""
if self.cursor:
self.cursor.close()
if self.conn:
self.conn.close()
def execute(self, query, params=None):
"""执行SQL语句"""
if params:
self.cursor.execute(query, params)
else:
self.cursor.execute(query)
self.conn.commit()
def fetch_all(self, query, params=None):
"""执行SQL查询语句并返回所有结果"""
if params:
self.cursor.execute(query, params)
else:
self.cursor.execute(query)
return self.cursor.fetchall()
def insert(self, table, data):
"""插入数据"""
placeholders = ', '.join(['?' for _ in data])
columns = ', '.join(data.keys())
query = f"INSERT INTO {table} ({columns}) VALUES ({placeholders})"
self.execute(query, tuple(data.values()))
def update(self, table, data, condition):
"""更新数据"""
set_clause = ', '.join([f"{key} = ?" for key in data.keys()])
query = f"UPDATE {table} SET {set_clause} WHERE {condition}"
self.execute(query, tuple(data.values()))
def delete(self, table, condition):
"""删除数据"""
query = f"DELETE FROM {table} WHERE {condition}"
self.execute(query)
def select(self, table, columns="*", condition=None):
"""查询数据"""
query = f"SELECT {columns} FROM {table}"
if condition:
query += f" WHERE {condition}"
return self.fetch_all(query)
3. Sqlite3数据库的创建+连接+增+删+改+查+关闭操作
# 创建数据库实例
db = SQLiteDatabase("test.db")
# 连接数据库
db.connect()
# 创建表
db.execute("""
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
age INTEGER
)
""")
# 插入数据
print("***** 插入数据 *****")
db.insert("users", {"name": "张三", "age": 30})
db.insert("users", {"name": "李四", "age": 25})
# 查询数据
print("***** 查询数据 *****")
results = db.select("users")
# 打印查询结果
for row in results:
print(row)
print("***** 更新数据 *****")
db.update("users", {"age": 31}, "name = '张三'")
print("***** 删除数据 *****")
db.delete("users", "name = '李四'")
print("***** 再次查询数据 *****")
results = db.select("users")
for row in results:
print(row)
# 关闭数据库连接
db.close()
其他Python相关文章
生信数据分析高效Python代码
生信开发中的多进程和多线程编程
轻量级TinyDB数据库文件写入和增删改查操作
Python处理生信分析流程配置文件4种方法
生信分析Python编程高级技巧