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

運行截圖:
在這裏插入圖片描述
在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章