跳到主要内容

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() # 关闭数据库连接