Python 与 SQLite 数据库的连接与交互
题目
使用 Python 编写一个录入学生信息的程序,要求连接 SQLite 数据库,能够读取并输出数据表内容,让用户输入学生信息并在数据表中插入。
资源下载
程序设计思路
数据表内容输出
- 使用 sqlite3 软件包自带的
connect()
方法创建数据库连接。 - 使用
cursor()
方法在连接变量的基础上创建游标变量。 - 使用游标的
execute()
方法,执行SELECT
语句,读取数据表中内容。 - 使用
for
循环语句逐行输出读取到的内容。
在数据表中添加记录
- 使用
input()
方法让用户输入要录入的学生信息。 - 使用游标的
execute()
方法,执行INSERT
语句,在数据表中插入一条新的记录。 - 使用
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() # 关闭数据库连接