利用sQLite库进行数据库操作。要求:程序应有数据库录入功能,按字段名查询功能,记录的修改与删除功能。数据库的中数据可以是: 高中时段的同学信息:姓名、性别、出生日期、班级、学校、地区等。
时间: 2024-03-23 18:43:03 浏览: 43
下面是一个基于SQLite库的简单示例程序,用于管理高中同学信息:
```python
import sqlite3
# 连接到数据库(如果不存在,则会创建一个新的数据库)
conn = sqlite3.connect('students.db')
# 创建一个游标对象
cursor = conn.cursor()
# 创建一个名为"students"的表
cursor.execute('''CREATE TABLE students
(id INTEGER PRIMARY KEY, name TEXT, gender TEXT, birthdate TEXT, class TEXT, school TEXT, region TEXT)''')
# 提供菜单选项
def print_menu():
print('1. 录入同学信息')
print('2. 按姓名查询同学信息')
print('3. 按班级查询同学信息')
print('4. 修改同学信息')
print('5. 删除同学信息')
print('6. 退出程序')
# 录入同学信息
def add_student():
name = input('请输入同学姓名:')
gender = input('请输入同学性别:')
birthdate = input('请输入同学出生日期:')
class_name = input('请输入同学班级:')
school = input('请输入同学学校:')
region = input('请输入同学所在地区:')
cursor.execute("INSERT INTO students (name, gender, birthdate, class, school, region) VALUES (?, ?, ?, ?, ?, ?)",
(name, gender, birthdate, class_name, school, region))
conn.commit()
print('同学信息已录入。')
# 按姓名查询同学信息
def search_by_name():
name = input('请输入要查询的同学姓名:')
cursor.execute("SELECT * FROM students WHERE name=?", (name,))
results = cursor.fetchall()
if len(results) == 0:
print('没有找到该同学的信息。')
else:
for row in results:
print('id:', row[0])
print('姓名:', row[1])
print('性别:', row[2])
print('出生日期:', row[3])
print('班级:', row[4])
print('学校:', row[5])
print('地区:', row[6])
# 按班级查询同学信息
def search_by_class():
class_name = input('请输入要查询的班级:')
cursor.execute("SELECT * FROM students WHERE class=?", (class_name,))
results = cursor.fetchall()
if len(results) == 0:
print('没有找到该班级的同学信息。')
else:
for row in results:
print('id:', row[0])
print('姓名:', row[1])
print('性别:', row[2])
print('出生日期:', row[3])
print('班级:', row[4])
print('学校:', row[5])
print('地区:', row[6])
# 修改同学信息
def modify_student():
id = input('请输入要修改的同学id:')
cursor.execute("SELECT * FROM students WHERE id=?", (id,))
results = cursor.fetchall()
if len(results) == 0:
print('没有找到该同学的信息。')
else:
row = results[0]
print('当前信息:')
print('姓名:', row[1])
print('性别:', row[2])
print('出生日期:', row[3])
print('班级:', row[4])
print('学校:', row[5])
print('地区:', row[6])
name = input('请输入同学姓名(回车表示不修改):')
gender = input('请输入同学性别(回车表示不修改):')
birthdate = input('请输入同学出生日期(回车表示不修改):')
class_name = input('请输入同学班级(回车表示不修改):')
school = input('请输入同学学校(回车表示不修改):')
region = input('请输入同学所在地区(回车表示不修改):')
if name:
cursor.execute("UPDATE students SET name=? WHERE id=?", (name, id))
if gender:
cursor.execute("UPDATE students SET gender=? WHERE id=?", (gender, id))
if birthdate:
cursor.execute("UPDATE students SET birthdate=? WHERE id=?", (birthdate, id))
if class_name:
cursor.execute("UPDATE students SET class=? WHERE id=?", (class_name, id))
if school:
cursor.execute("UPDATE students SET school=? WHERE id=?", (school, id))
if region:
cursor.execute("UPDATE students SET region=? WHERE id=?", (region, id))
conn.commit()
print('同学信息已修改。')
# 删除同学信息
def delete_student():
id = input('请输入要删除的同学id:')
cursor.execute("SELECT * FROM students WHERE id=?", (id,))
results = cursor.fetchall()
if len(results) == 0:
print('没有找到该同学的信息。')
else:
cursor.execute("DELETE FROM students WHERE id=?", (id,))
conn.commit()
print('同学信息已删除。')
# 循环处理用户的输入
while True:
print_menu()
choice = input('请输入选项:')
if choice == '1':
add_student()
elif choice == '2':
search_by_name()
elif choice == '3':
search_by_class()
elif choice == '4':
modify_student()
elif choice == '5':
delete_student()
elif choice == '6':
break
else:
print('输入有误,请重新输入。')
# 关闭连接
conn.close()
```
这个程序提供了录入同学信息、按姓名查询、按班级查询、修改同学信息、删除同学信息等功能。你可以根据自己的需要修改代码来适应你的数据模型。
阅读全文