实现一张数据库表的数据记录添加和查询操作。数据库表名scetc_teacher,字段记录如下表所示。数据库可以使用SQLite或者Mysql,如果使用SQLite则把数据库文件和源码文件放在同一目录,如果使用Mysql则提交SQL脚本。 要求: (1)封装一个方法实现教师数据的添加功能,接收从控制台输入的信息写入数据库,验证工号重复不允许添加并提示。 (2)封装一个方法查询教师数据,并在控制台打印显示。 注意:文件中对主要方法进行注释,让阅卷老师清楚知道你的方法是做什么的,否则影响成绩自行负责。 字段 类型 意义 备注 teacher_id varchar(32) 工号 主键 teacher_name varchar(16) 姓名 teacher_profession varchar(64) 从事专业 teacher_tech varchar(64) 职称 teacher_post varchar(32) 职位
时间: 2023-12-03 13:43:28 浏览: 94
实现一张数据表数据的添加,按照主键删除、修改与查询的功能
以下是使用SQLite实现的代码示例:
```python
import sqlite3
class TeacherDatabase:
def __init__(self):
# 连接数据库
self.conn = sqlite3.connect('teacher.db')
# 获取游标
self.cursor = self.conn.cursor()
# 创建表
self.cursor.execute('''
CREATE TABLE IF NOT EXISTS scetc_teacher (
teacher_id VARCHAR(32) PRIMARY KEY,
teacher_name VARCHAR(16),
teacher_profession VARCHAR(64),
teacher_tech VARCHAR(64),
teacher_post VARCHAR(32)
);
''')
self.conn.commit()
def add_teacher(self):
# 从控制台输入教师信息
teacher_id = input('请输入工号:')
teacher_name = input('请输入姓名:')
teacher_profession = input('请输入从事专业:')
teacher_tech = input('请输入职称:')
teacher_post = input('请输入职位:')
# 判断工号是否已存在
self.cursor.execute('SELECT * FROM scetc_teacher WHERE teacher_id=?', (teacher_id,))
if self.cursor.fetchone():
print('该工号已存在,请重新输入!')
return
# 将教师信息写入数据库
self.cursor.execute('INSERT INTO scetc_teacher VALUES (?, ?, ?, ?, ?)',
(teacher_id, teacher_name, teacher_profession, teacher_tech, teacher_post))
self.conn.commit()
print('教师信息添加成功!')
def query_teacher(self):
# 查询所有教师信息并在控制台打印显示
self.cursor.execute('SELECT * FROM scetc_teacher')
teachers = self.cursor.fetchall()
if not teachers:
print('暂无教师信息!')
else:
for teacher in teachers:
print('工号:%s,姓名:%s,从事专业:%s,职称:%s,职位:%s' % teacher)
def __del__(self):
# 关闭连接
self.cursor.close()
self.conn.close()
if __name__ == '__main__':
db = TeacherDatabase()
db.add_teacher()
db.query_teacher()
```
使用方法如下:
1. 运行代码,会自动创建数据库文件`teacher.db`和表`scetc_teacher`。
2. 输入教师信息,程序会将其写入数据库。如果工号已存在,则会提示重新输入。
3. 查询教师信息,程序会将所有教师信息打印在控制台上。如果没有教师信息,则会提示暂无教师信息。
阅读全文