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