在学习之前先要了解sqlite游标的使用方法python使用sqlite3时游标的使用方法
继上篇博客Python实现学生信息管理系统后,我就觉得写的太复杂了,然后又是一通优化、优化、优化;
本次优化主要修改了:
1.使用游标的方法连接、增、删、改、查数据库;
2.一般二级菜单是不能直接退出程序的,所以去掉了二级菜单退出程序的功能;
3.增加了连表查询;
4.但是还有一点很不满意,就是每次退出后都退出到主菜单而不是当前菜单,这点还没改好,希望小伙伴能一起学习交流!
#-*- coding:utf-8 -*-
import sqlite3
#打开本地数据库用于存储用户信息
cx = sqlite3.connect('student.db')
#在该数据库下创建学生信息表
cx.execute ('''CREATE TABLE StudentTable(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
StuId INTEGER NOT NULL,
NAME TEXT NOT NULL,
CLASS INT NOT NULL);''')
print "Table created successfully";
#在该数据库下创建课程信息表
cx.execute ('''CREATE TABLE CourseTable(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
CourseId INT NOT NULL,
Name TEXT NOT NULL,
Teacher TEXT NOT NULL,
Classroom TEXT NOT NULL,
StartTime CHAR(11) NOT NULL,
EndTime CHAR(11) NOT NULL);''')
print "Table created successfully";
#在该数据库下创建选课情况信息表
cx.execute ('''CREATE TABLE XuankeTable(
ID INTEGER PRIMARY KEY AUTOINCREMENT,
StuId INT NOT NULL,
CourseId INT NOT NULL);''')
print "Table created successfully";
#以上三个表创建完后,再次运行程序时,需要把三个建表代码注释掉,否则会提示:该表已存在。即建表只需建一次。
def insert_stu():#录入学生信息
cu = cx.cursor()
stu_id = input("请输入学生学号:")
cu.execute("SELECT StuId from StudentTable where StuId = '%s';"%stu_id)
row = cu.fetchone()
if row:
print "sorry,该学号已存在,请重新输入"
else: