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()

运行截图:
python数据库 学生成绩管理系统 插入 查询 sqlite3 MySQL_第1张图片
python数据库 学生成绩管理系统 插入 查询 sqlite3 MySQL_第2张图片python数据库 学生成绩管理系统 插入 查询 sqlite3 MySQL_第3张图片python数据库 学生成绩管理系统 插入 查询 sqlite3 MySQL_第4张图片在这里插入图片描述

你可能感兴趣的:(python)