编写一个程序,应有SQLite数据库录入功能,按字段名查询功能,记录和修改与删除功能。数据库的信息可以是宿舍同学的姓名,学号,性别,出生日期,班级,籍贯
时间: 2024-03-22 20:39:11 浏览: 28
好的,下面是一个使用Python编写的SQLite数据库操作程序,具有录入、查询、修改和删除功能,数据库中存储的是宿舍同学的姓名、学号、性别、出生日期、班级、籍贯等信息:
```python
import sqlite3
# 连接数据库,若不存在则新建一个名为dormitory.db的数据库
conn = sqlite3.connect('dormitory.db')
# 创建一个游标对象
c = conn.cursor()
# 创建一个名为students的表格,包含姓名、学号、性别、出生日期、班级、籍贯等字段
c.execute('''CREATE TABLE IF NOT EXISTS students (
name TEXT,
id TEXT,
gender TEXT,
birthdate TEXT,
class TEXT,
hometown TEXT
)''')
def insert_data():
# 向表格中插入一条数据
name = input("请输入姓名:")
id = input("请输入学号:")
gender = input("请输入性别:")
birthdate = input("请输入出生日期(格式为YYYY-MM-DD):")
class_name = input("请输入班级:")
hometown = input("请输入籍贯:")
c.execute("INSERT INTO students VALUES (?, ?, ?, ?, ?, ?)", (name, id, gender, birthdate, class_name, hometown))
conn.commit()
print("插入成功!")
def search_data():
# 按照字段名查询数据
field = input("请输入要查询的字段名:")
value = input("请输入要查询的值:")
c.execute("SELECT * FROM students WHERE {}='{}'".format(field, value))
data = c.fetchall()
if len(data) == 0:
print("没有找到符合条件的记录!")
else:
print(data)
def update_data():
# 修改数据
id = input("请输入要修改的学号:")
field = input("请输入要修改的字段名:")
value = input("请输入要修改的值:")
c.execute("UPDATE students SET {}='{}' WHERE id='{}'".format(field, value, id))
conn.commit()
print("修改成功!")
def delete_data():
# 删除数据
id = input("请输入要删除的学号:")
c.execute("DELETE FROM students WHERE id='{}'".format(id))
conn.commit()
print("删除成功!")
while True:
print("\n请选择要进行的操作:")
print("1. 插入数据")
print("2. 查询数据")
print("3. 修改数据")
print("4. 删除数据")
print("5. 退出")
choice = input("请输入您的选择:")
if choice == '1':
insert_data()
elif choice == '2':
search_data()
elif choice == '3':
update_data()
elif choice == '4':
delete_data()
elif choice == '5':
conn.close()
print("程序已退出!")
break
else:
print("无效的操作,请重新选择!")
```
注意,在使用SQLite数据库之前,需要先安装sqlite3模块。如果你使用的是Python 3.4或更高版本,则可以直接使用,因为SQLite3已经是Python标准库的一部分。如果你使用的是Python 2.x,则需要执行以下命令安装sqlite3模块:
```bash
pip install pysqlite
```
另外,为了方便起见,以上程序中使用了input函数获取用户输入,但如果你在编写实际应用程序时,建议使用更为安全的方法,如使用SQLAlchemy等ORM框架来操作数据库。