大家可以回去看一下 2.3 创建table 的讲解,在2.3中,我们创建了两个属性,分别是 “姓名” 和 “班级”。因为我们有两个属性,所以要有两个问号。
2.5查找数据
先放代码
def find_tb(): cur.execute("select * from 你的table名") # 提取查询到的数据 return cur.fetchall()
这个就很简单了,我写这个函数使用时可以把你那个table里的所有数据都取出来。
第一行是查找table的 sql 语句,格式是:
select * from 你的table名
下一行再用 fetchall() 函数把数据提取出来,直接 return 即可。
快乐的coding时间!
好了,前面的东西大家应该也都看完了,来点 demo ?
顺便说一下,我这个 demo 的灵感来源是最近在网上刷到很多高考查分的视频,恰好最近在做这个数据库,所以说我这个 demo 受考试的启发,就做了一个学生分数系统,其实这个特别爽,可以把自己的分数改成全部满分!虽然实际没啥用,但是还是很爽的
代码里没有我没讲过的部分,大家可以对照上面的讲解看代码,VScode无报错运行。
对了,如果有看不懂的可以私信我,不出意外的话一天之内就能回复。
代码:
import sqlite3 import os def check(db_name,table_name): conn = sqlite3.connect(db_name) cursor = conn.cursor() sql = '''SELECT tbl_name FROM sqlite_master WHERE type = 'table' ''' cursor.execute(sql) values = cursor.fetchall() tables = [] for v in values: tables.append(v[0]) if table_name not in tables: return False # 可以建表 else: return True # 不能建表 def find_tb(): cur.execute("select * from scores") # 提取查询到的数据 return cur.fetchall() def zcd(): os.system('cls') print("学生分数管理系统") print("1.增加学生分数信息") print("2.查看全部学生分数") print("3.查询分数段内学生分数") print("4.退出") if __name__ == '__main__': # 创建与数据库的连接 conn = sqlite3.connect('stuents_scores.db') #创建一个游标 cursor cur = conn.cursor() # 如果没有表则执行建表的sql语句 if (check("stuents_scores.db","scores") == False): sql_text_1 = '''CREATE TABLE scores (姓名 TEXT, 班级 TEXT, 性别 TEXT, 语文 NUMBER, 数学 NUMBER, 英语 NUMBER, 总分 NUMBER);''' # 执行sql语句 cur.execute(sql_text_1) zcd() while True: op = int(input("请输入:")) if op == 1: S_name = input("请输入要添加的学生的姓名(如:张三):") S_class = input("请输入要添加的学生的班级(如:一班):") S_xb = input("请输入该学生性别:") S_Chinese = int(input("请输入该学生语文成绩(只输入一个数字,如:82):")) S_Maths = int(input("请输入该学生数学成绩(只输入一个数字,如:95):")) S_English = int(input("请输入该学生英语成绩(只输入一个数字,如:98):")) S_gj = S_Maths+S_Chinese+S_English # 总分 data = [(S_name, S_class, S_xb, S_Chinese, S_Maths, S_English,S_gj)] cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?,?)', data) conn.commit() # cur.close() # conn.close() print("成功!") os.system('pause') os.system('cls') zcd() elif op == 2: info_list = find_tb() print("全部学生信息(排名不分前后):") for i in range(len(info_list)): print("第"+str(i+1)+"个:") print("学生姓名:"+str(info_list[i][0])) print("学生班级:"+str(info_list[i][1])) print("学生性别:"+str(info_list[i][2])) print("学生语文成绩:"+str(info_list[i][3])) print("学生数学成绩:"+str(info_list[i][4])) print("学生英语成绩:"+str(info_list[i][5])) print("学生总成绩:"+str(info_list[i][6])) os.system('pause') os.system('cls') zcd() elif op == 3: info_list = find_tb() fen = int(input("你要要查询总成绩高于n分的学生, 请输入n:")) for i in range(len(info_list)): if info_list[i][6] >= fen: print("查询结果:") print("第"+str(i+1)+"个:") print("学生总成绩:"+str(info_list[i][6])) os.system('pause') os.system('cls') zcd() elif op == 4: os.system('cls') break
最后
到此这篇关于Python数据库sqlite3详解的文章就介绍到这了,更多相关Python数据库sqlite3内容请搜索
标签:SQLite
相关阅读 >>
android之采用execsql与rawquery方法完成数据的添删改查操作详解
android实现搜索功能并将搜索结果保存到Sqlite中(实例代码)
Sqlite developer怎么安装激活 Sqlite developer激活安装图文教程
android开发笔记之android中数据的存储方式(一)
更多相关阅读请进入《Sqlite》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。