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

使用Python编写一个简单的数据库管理程序

发布时间:2023-12-04 12:03:01

以下是一个简单的数据库管理程序的Python示例代码:

import sqlite3

def create_database():
    conn = sqlite3.connect('mydatabase.db')  # 连接到数据库文件
    c = conn.cursor()  # 创建游标对象

    # 创建表
    c.execute('''CREATE TABLE IF NOT EXISTS employees
                (id INTEGER PRIMARY KEY AUTOINCREMENT,
                name TEXT NOT NULL,
                age INTEGER NOT NULL,
                salary REAL);''')

    # 插入示例数据
    employees = [('John Doe', 25, 5000),
                 ('Jane Smith', 30, 6000),
                 ('Adam Johnson', 35, 7000)]
    c.executemany('INSERT INTO employees (name, age, salary) VALUES (?, ?, ?)', employees)

    # 提交并关闭连接
    conn.commit()
    conn.close()

def add_employee(name, age, salary):
    conn = sqlite3.connect('mydatabase.db')
    c = conn.cursor()

    # 插入新雇员信息
    c.execute("INSERT INTO employees (name, age, salary) VALUES (?, ?, ?)",
              (name, age, salary))

    # 提交并关闭连接
    conn.commit()
    conn.close()

def delete_employee(employee_id):
    conn = sqlite3.connect('mydatabase.db')
    c = conn.cursor()

    # 删除指定雇员
    c.execute("DELETE FROM employees WHERE id=?", (employee_id,))

    # 提交并关闭连接
    conn.commit()
    conn.close()

def update_employee(employee_id, name, age, salary):
    conn = sqlite3.connect('mydatabase.db')
    c = conn.cursor()

    # 更新雇员信息
    c.execute("UPDATE employees SET name=?, age=?, salary=? WHERE id=?",
              (name, age, salary, employee_id))

    # 提交并关闭连接
    conn.commit()
    conn.close()

def get_employee(employee_id):
    conn = sqlite3.connect('mydatabase.db')
    c = conn.cursor()

    # 查询指定雇员信息
    c.execute("SELECT * FROM employees WHERE id=?", (employee_id,))
    employee = c.fetchone()

    # 提交并关闭连接
    conn.commit()
    conn.close()

    return employee

def get_all_employees():
    conn = sqlite3.connect('mydatabase.db')
    c = conn.cursor()

    # 查询所有雇员信息
    c.execute("SELECT * FROM employees")
    employees = c.fetchall()

    # 提交并关闭连接
    conn.commit()
    conn.close()

    return employees

# 创建数据库
create_database()

# 添加新雇员
add_employee('Tom Ford', 40, 8000)

# 更新雇员信息
update_employee(2, 'Jane Doe', 28, 6500)

# 删除雇员
delete_employee(1)

# 查询指定雇员
employee = get_employee(2)
print(f"Employee ID: {employee[0]}, Name: {employee[1]}, Age: {employee[2]}, Salary: {employee[3]}")

# 查询所有雇员
employees = get_all_employees()
for emp in employees:
    print(f"Employee ID: {emp[0]}, Name: {emp[1]}, Age: {emp[2]}, Salary: {emp[3]}")

以上示例代码展示了一个简单的数据库管理程序,它使用了SQLite数据库来存储雇员信息。这个程序可以创建一个名为mydatabase.db的数据库,并在其中创建了一个名为employees的表,用于存储雇员的姓名、年龄和薪水。该程序提供了添加雇员、删除雇员、更新雇员信息、查询指定雇员和查询所有雇员的功能。

使用这个程序的步骤如下:

1. 首先运行create_database()函数来创建一个新的数据库和表格。

2. 通过调用add_employee()函数来添加新的雇员信息,并传入雇员的姓名、年龄和薪水参数。

3. 使用update_employee()函数来更新指定雇员的信息,需要传入雇员的ID以及新的姓名、年龄和薪水。

4. 通过调用delete_employee()函数来删除指定ID的雇员。

5. 使用get_employee()函数来查询指定ID的雇员信息,并返回一个包含雇员信息的元组。

6. 使用get_all_employees()函数来查询所有雇员的信息,并返回一个包含所有雇员信息的列表。

在程序的最后部分,我们展示了在使用上述功能时的一些例子,并输出了相应的结果。

这个示例程序是一个非常简单的数据库管理程序,可以帮助你入门使用Python进行数据库操作。你可以根据自己的需求扩展它,添加更多的功能和复杂的查询操作。