跳到主要内容

Python 与 SQLite 数据库的连接与交互

题目​

使用 Python 编写一个录入学生信息的程序,要求连接 SQLite 数据库,能够读取并输出数据表内容,让用户输入学生信息并在数据表中插入。

资源下载​

students.db 数据表文件下载

程序设计思路​

数据表内容输出​

  1. 使用 sqlite3 软件包自带的 connect() 方法创建数据库连接。
  2. 使用 cursor() 方法在连接变量的基础上创建游标变量。
  3. 使用游标的 execute() 方法,执行 SELECT 语句,读取数据表中内容。
  4. 使用 for 循环语句逐行输出读取到的内容。

在数据表中添加记录​

  1. 使用 input() 方法让用户输入要录入的学生信息。
  2. 使用游标的 execute() 方法,执行 INSERT 语句,在数据表中插入一条新的记录。
  3. 使用 commit() 方法提交插入操作。
备注

针对数据表执行插入、修改、删除的操作必须要使用 commit() 方法,否则无法执行。

参考答案​

sql.py
import sqlite3

# 读取并输出数据表原有内容
conn = sqlite3.connect('students.db') # 连接数据库
cursor = conn.cursor() # 创建游标
cursor.execute('SELECT * FROM students') # 读取数据表内容
rows = cursor.fetchall()
print("\n原数据表内容:")
for row in rows: # 逐行输出读取的内容
print(*row)

# 要求用户输入一名学生的信息
stuID = input("请输入学号: ")
name = input("请输入姓名: ")
gender = input("请输入性别: ")
age = input("请输入年龄: ")
className = input("请输入班级: ")
cursor.execute(f"INSERT INTO students (学号, 姓名, 性别, 年龄, 班级) VALUES (?, ?, ?, ?, ?)",
(stuID, name, gender, age, className)) # 使用INSERT语句在数据表中插入一行记录
conn.commit()

# 录入后再次读取输出数据表内容
cursor.execute('SELECT * FROM students')
rows = cursor.fetchall()
print("\n添加学生后数据表内容:")
for row in rows:
print(*row)
conn.close() # 关闭数据库连接