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

用Python编写一个简单的数据库管理系统

发布时间:2023-12-04 09:19:34

数据库管理系统(DBMS)是用于管理和操作数据库的软体。它允许用户创建、修改、查询和删除数据库中的数据。本文将用Python编写一个简单的数据库管理系统,包括数据库的创建、表的创建和数据的增删改查,同时提供了使用示例。

首先,我们需要安装Python的数据库连接驱动程序。在Python中,有很多第三方库可以用来连接和操作数据库,如MySQLdbpymysqlsqlite3等。这里我们选择使用sqlite3库,因为它是Python的标准库,无需额外安装。

1. 创建数据库:

我们可以使用sqlite3.connect()方法创建一个数据库。下面的代码演示了创建名为mydatabase.db的数据库。

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

2. 创建表:

在数据库中,数据以表的形式组织。我们可以使用CREATE TABLE语句在数据库中创建表。下面的代码演示了创建名为students的表,并定义了idnameage三个列。

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

# 创建表
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY     NOT NULL,
             NAME           TEXT    NOT NULL,
             AGE            INT     NOT NULL);''')
print("Table created successfully")

3. 插入数据:

我们可以使用INSERT INTO语句向表中插入数据。下面的代码演示了向students表中插入一些学生的数据。

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

# 创建表
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY     NOT NULL,
             NAME           TEXT    NOT NULL,
             AGE            INT     NOT NULL);''')
print("Table created successfully")

# 插入数据
conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (1, 'John Doe', 20)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (2, 'Jane Smith', 21)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (3, 'Tom Brown', 19)")

conn.commit()
print("Records created successfully")

4. 查询数据:

使用SELECT语句可以从表中查询数据。下面的代码演示了如何查询students表中的所有数据,并将结果打印出来。

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

# 创建表
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY     NOT NULL,
             NAME           TEXT    NOT NULL,
             AGE            INT     NOT NULL);''')
print("Table created successfully")

# 插入数据
conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (1, 'John Doe', 20)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (2, 'Jane Smith', 21)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (3, 'Tom Brown', 19)")

# 查询数据
cursor = conn.execute("SELECT id, name, age FROM students")
for row in cursor:
    print("ID = ", row[0])
    print("NAME = ", row[1])
    print("AGE = ", row[2])

print("Operation done successfully")

5. 更新数据和删除数据:

我们可以使用UPDATE语句更新表中的数据,以及使用DELETE语句删除表中的数据。下面的代码演示了如何更新和删除students表中的数据。

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

# 创建表
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY     NOT NULL,
             NAME           TEXT    NOT NULL,
             AGE            INT     NOT NULL);''')
print("Table created successfully")

# 插入数据
conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (1, 'John Doe', 20)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (2, 'Jane Smith', 21)")

conn.execute("INSERT INTO students (ID, NAME, AGE) \
              VALUES (3, 'Tom Brown', 19)")

# 更新数据
conn.execute("UPDATE students set AGE = 22 where ID = 1")

# 删除数据
conn.execute("DELETE from students where ID = 2")

conn.commit()
print("Records updated and deleted successfully")

到此为止,我们已经编写了一个简单的数据库管理系统,包括数据库的创建、表的创建、数据的增删改查等功能。你可以根据需要对这个系统进行扩展,以满足更复杂的需求。

下面是一个使用这个数据库管理系统的例子:

import sqlite3

# 创建数据库
conn = sqlite3.connect('mydatabase.db')
print("Database created successfully")

# 创建表
conn.execute('''CREATE TABLE students
             (ID INT PRIMARY KEY     NOT NULL,
             NAME           TEXT    NOT NULL,
             AGE            INT     NOT NULL);''')
print("Table created successfully")

def insert_student(id, name, age):
    conn.execute("INSERT INTO students (ID, NAME, AGE) \
                  VALUES (?, ?, ?)", (id, name, age))
    conn.commit()
    print("Student added successfully")

def get_students():
    cursor = conn.execute("SELECT id, name, age FROM students")
    students = []
    for row in cursor:
        students.append({'id': row[0], 'name': row[1], 'age': row[2]})
    return students

def update_student(id, age):
    conn.execute("UPDATE students set AGE = ? where ID = ?", (age, id))
    conn.commit()
    print("Student updated successfully")

def delete_student(id):
    conn.execute("DELETE from students where ID = ?", (id,))
    conn.commit()
    print("Student deleted successfully")

# 添加学生
insert_student(1, 'John Doe', 20)
insert_student(2, 'Jane Smith', 21)
insert_student(3, 'Tom Brown', 19)

# 查询所有学生
students = get_students()
for student in students:
    print("ID = ", student['id'])
    print("NAME = ", student['name'])
    print("AGE = ", student['age'])

# 更新学生
update_student(1, 22)

# 删除学生
delete_student(2)

print("Operation done successfully")

这个例子中,我们首先创建了一个数据库,并在其中创建了一个名为students的表。然后,我们定义了几个用于实现数据增删改查的函数。最后,我们添加了几个学生,并查询所有学生的信息。接着,我们更新了id为1的学生的年龄,并删除了id为2的学生。最后,我们查询所有学生的信息,以验证操作是否成功。