用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()
運行截圖:
在這裏插入圖片描述