python数据库 学生成绩管理系统 插入 查询 sqlite3 MySQL

用python自带的sqlite3轻量级数据库(MySQL也是一样,要安装MySQL connection),完成学生信息的存储和基本数据库操作
用try捕获异常。
要点:
1、每次打开要关闭。
2、delete和update也是一样的,写sql语句,然后执行。
3、sqlite3是单线程。如果不关闭,另一个无法打开,是locked状态。

import sqlite3

def create_table():
    conn = sqlite3.connect("python平时成绩记录")
    try:
        create_tb_cmd='''
        CREATE TABLE IF NOT EXISTS SUTDENT
        (
        ID text,
        NAME text,
        MARKS int);
        '''
        #print("创建表")
        #主要就是上面的语句
        conn.execute(create_tb_cmd)
    except:
        print ("创建失败!")
        return False
    #sql='''
    #INSERT INTO SUTDENT (ID,NAME,MARKS) VALUES (1,"wxy",98);'''
    #conn.execute(sql)
    conn.commit()
    conn.close()

def show():
	conn=sqlite3.connect("python平时成绩记录")
	mycursor = conn.cursor()
	mycursor.execute("SELECT * FROM SUTDENT ") 
	myresult = mycursor.fetchall()
	for x in myresult:
  		print(x)

def insert():
	conn=sqlite3.connect("python平时成绩记录")
	#mycursor = conn.cursor()
	try:
		num=int(input("加入信息人数:"))
	except ValueError:
	  	print("人数输入数字,请重新输入!")
	now=1
	while now<=num:
		print("请输入第{}个学生信息:".format(now))
		try:
			id=int(input("学号:"))
		except ValueError:
	  		print("学号需要输入数字,请重新输入!")
		name=input("姓名:")
		try:
			marks=int(input("分数:"))
		except ValueError:
	  		print("分数需要输入数字,请重新输入!")
		sql='INSERT INTO SUTDENT(ID,NAME,MARKS)'
		sql+='VALUES ("%s","%s",%d);' %(id,name,marks)
		conn.execute(sql)
		now=now+1
	conn.commit()
	conn.close()
def select():
	conn=sqlite3.connect("python平时成绩记录")
	mycursor = conn.cursor()
	while(1):
		print("请选择操作:\n1、通过学号查找学生信息\n2、通过姓名查询学生信息\n3、通过分数段查找信息\n4、退出查询")
		result=input("你的选择:")
		print("-----------------------")
		if result=='1':
			theId=input("学生学号:")
			sql='select * from SUTDENT where ID="%s"'%theId
		elif result=='2':
			theName=input("学生姓名:")
			sql='select * from SUTDENT where NAME="%s"'%theName

		elif result=='3':
			try:
				minMarks=int(input("分数段最低分:"))
				maxMarks=int(input("分数段最高分:"))
				sql='select * from SUTDENT where MARKS>=%d and MARKS<=%d'%(minMarks,maxMarks)
			except ValueError:
	  			print("分数需要输入数字,请重新输入!")
		elif result=='4':
			break;	
		mycursor.execute(sql)
		rs=mycursor.fetchall()
		for x in rs:
			print(x)
		print("-----------------------")
	conn.commit()
	conn.close()
#show()
#insert()
#show()


def main():
	create_table()
	while(1):
		print("请选择操作:\n1、插入学生信息\n2、查询学生信息\n3、所有信息")
		result=input("你的选择:")
		print("-----------------------")
		if result=='1':
			insert()
			print("插入信息成功!")
		if result=='2':
			select()
		if result=='3':
			print("所有学生信息如下:")
			show()
		if result=='4':
			break;
		print("-----------------------")

main()

运行截图:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qnsEmma/article/details/104917371