SQLite3库增删改查实现数据管理

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编程高级技巧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信与基因组学

每一份鼓励是我坚持下去动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值