欢迎访问宙启技术站
智能推送

使用Python编写的简单数据库管理工具

发布时间:2023-12-04 10:33:57

以下是一个使用Python编写的简单数据库管理工具的示例代码:

import sqlite3

class DatabaseManager:
    def __init__(self, database_name):
        self.conn = sqlite3.connect(database_name)
        self.cursor = self.conn.cursor()

    def create_table(self, table_name, columns):
        columns_str = ', '.join(columns)
        query = f"CREATE TABLE IF NOT EXISTS {table_name} ({columns_str})"
        self.cursor.execute(query)
        self.conn.commit()

    def insert_row(self, table_name, values):
        values_placeholder = ', '.join(['?' for _ in values])
        query = f"INSERT INTO {table_name} VALUES ({values_placeholder})"
        self.cursor.execute(query, values)
        self.conn.commit()

    def retrieve_rows(self, table_name, condition=None):
        query = f"SELECT * FROM {table_name}"
        if condition:
            query += f" WHERE {condition}"
        self.cursor.execute(query)
        return self.cursor.fetchall()

    def update_row(self, table_name, values, condition):
        set_values = ', '.join([f"{col} = ?" for col in values])
        query = f"UPDATE {table_name} SET {set_values} WHERE {condition}"
        self.cursor.execute(query, values)
        self.conn.commit()

    def delete_row(self, table_name, condition):
        query = f"DELETE FROM {table_name} WHERE {condition}"
        self.cursor.execute(query)
        self.conn.commit()

    def close(self):
        self.conn.close()
        
# 使用示例:
db_manager = DatabaseManager("example.db") # 创建数据库管理器
db_manager.create_table("students", ["id INT", "name TEXT", "age INT"]) # 创建表格

db_manager.insert_row("students", [1, "Alice", 20]) # 插入数据
db_manager.insert_row("students", [2, "Bob", 22])
db_manager.insert_row("students", [3, "Charlie", 21])

rows = db_manager.retrieve_rows("students") # 检索所有数据
for row in rows:
    print(row)

db_manager.update_row("students", ["name", "age"], "id = 1", ["Alice Smith", 21]) # 更新数据
rows = db_manager.retrieve_rows("students")
for row in rows:
    print(row)

db_manager.delete_row("students", "age = 22") # 删除数据
rows = db_manager.retrieve_rows("students")
for row in rows:
    print(row)

db_manager.close() # 关闭数据库连接

在这个示例中,我们创建了一个DatabaseManager类,它封装了对SQLite数据库的常见操作。这个类包含以下方法:

- __init__:初始化方法,连接到指定的数据库。

- create_table:创建一个表格,接受表格名称和列作为参数。

- insert_row:向表格中插入一行数据,接受表格名称和值作为参数。

- retrieve_rows:检索表格中的数据,接受表格名称和可选的条件作为参数。

- update_row:更新表格中的数据,接受表格名称、要更新的列和条件作为参数。

- delete_row:从表格中删除数据,接受表格名称和条件作为参数。

- close:关闭数据库连接。

使用示例中的代码,我们创建了一个students表,其中有idnameage三列。然后我们插入了一些数据,并进行了数据的检索、更新和删除操作。

这只是一个简单的数据库管理工具的示例,你可以根据自己的需求进行扩展和修改。