Python怎么使用sqlite3第三方库读写SQLite数据库

1 数据概览

学生课程成绩:studentID、name、english、chinese、math,存在一定缺失值

Python怎么使用sqlite3第三方库读写SQLite数据库

2 任务定义

基于学生课程成绩文件,使用pandas和sqlite3将学生信息输入SQLite数据库,请在完成对应数据库操作后分析学生课程成绩信息,计算各科目平均分并给出总分排名。

3 实现步骤

3.1 利用pandas读取学生信息

import pandas as pdimport sqlite3# 利用pandas读取数据student_df=pd.read_csv("./Dataset/student_grades.csv",encoding='utf-8-sig')

Python怎么使用sqlite3第三方库读写SQLite数据库

3.2 利用sqlite3创建数据库和学生表

# 创建学生成绩数据库conn=sqlite3.connect("./Database/Student_grade.db")## 创建游标cursor=conn.cursor()## 创建成绩表try:    # 判断表是否存在, 存在则先删除    dropif_sql='Drop TABLE IF EXISTS student_grades;'    create_sql='''        CREATE TABLE student_grades        (            studentID varchar(64),            studentName varchar(64),            scoreEnglish float(64),            scoreChinese float(64),            scoreMath float(64)        )    '''    cursor.execute(dropif_sql)    cursor.execute(create_sql)except:    print("Create table failed!")

3.3 利用sqlite3将学生信息存入数据库

# 将学生信息存入数据库for i in range(student_df.shape[0]):    print(student_df.loc[i,:].to_list())    # 插入语句    insert_sql='''        INSERT INTO student_grades(studentID, studentName, scoreEnglish, scoreChinese, scoreMath)        Values('%s','%s','%f','%f','%f')'''%(            str(student_df.loc[i,'StudentID']),            str(student_df.loc[i,'name']),            student_df.loc[i,'english'],            student_df.loc[i,'chinese'],            student_df.loc[i,'math'],        )    # 执行语句    cursor.execute(insert_sql)    # 事物提交    conn.commit()

Python怎么使用sqlite3第三方库读写SQLite数据库

3.4 将李四数学成绩70录入SQLite数据库

# 录入李四的数学成绩grade_LiSi=70# 更新语句update_sql='UPDATE student_grades SET scoreMath={} WHERE studentID=10002'.format(grade_LiSi)# 执行语句cursor.execute(update_sql)# 事物提交conn.commit()
# 查询录入李四成绩后的信息select_sql='SELECT * FROM student_grades;'# 执行语句results=cursor.execute(select_sql)# 遍历输出for info in results.fetchall():    print(info)

Python怎么使用sqlite3第三方库读写SQLite数据库

3.5 将数据库中的王五数学成绩改为85

# 更新王五的数学成绩grade_WangWu=85# 更新语句update_sql='UPDATE student_grades SET scoreMath={} WHERE studentID=10003'.format(grade_WangWu)# 执行语句cursor.execute(update_sql)# 事物提交conn.commit()
# 查询王五的成绩select_sql='SELECT * FROM student_grades WHERE studentID=10003;'# 执行语句results=cursor.execute(select_sql)# 遍历输出for info in results.fetchall():    print(info)

Python怎么使用sqlite3第三方库读写SQLite数据库

3.5 计算学生的各科平均分,并给出总分排名

# 查询数据select_sql='SELECT * FROM student_grades;'# 执行语句results=cursor.execute(select_sql)# 计算各科平均分以及总分排名english_lst=[]chinese_lst=[]math_lst=[]total_dct={}for info in results.fetchall():    english_lst.append(info[2])    chinese_lst.append(info[3])    math_lst.append(info[4])    total_dct[info[1]]=sum(info[2:])# 计算平均分的函数def average_score(lst):    return round(sum(lst)/len(lst),2)# 输出结果print("英语平均分为:", average_score(english_lst))print("语文平均分为:", average_score(chinese_lst))print("数学平均分为:", average_score(math_lst))print("总成绩排名为:", sorted(total_dct.items(), key=lambda x:x[1], reverse=True))

Python怎么使用sqlite3第三方库读写SQLite数据库

4 小小的总结

在Python中使用sqlite3:

连接数据库:conn=sqlite3.connect(filename),如果数据库不存在,会自动创建再连接。创建游标:cursor=conn.cursor(),SQL的游标是一种临时的数据库对象,即可以用来

存放在数据库表中的数据行副本,也可以指向存储在数据库中的数据行的指针。游标提供了在逐行的基础上操作表中数据的方法。

运用sqlite3运行SQL语句的框架:

① 定义sql语句,存储到字符串sql中

② 使用游标提交执行语句:cursor.execute(sql)

③ 使用连接提交事务:conn.commit()

到此,相信大家对“Python怎么使用sqlite3第三方库读写SQLite数据库”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

文章标题:Python怎么使用sqlite3第三方库读写SQLite数据库,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/27562

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
亿速云的头像亿速云认证作者
上一篇 2022年9月21日 上午12:00
下一篇 2022年9月21日 上午12:02

相关推荐

  • windows u盘写保护怎么格式化

    u盘写保护格式化的方法: 1、首先右键我们的u盘。 2、接着打开下拉菜单的“属性” 3、然后在“工具”里点击“检查” 4、随后选择“扫描并修复驱动器” 5、检查并修复后,右键u盘,就可以“格式化”了。 到此,关于“windows u盘写保护怎么格式化”的学习就结束了,希望能够解决大家的疑惑。理论与实…

    2022年8月30日
    59600
  • mysql如何修改字段值少数

    在mysql中,可以通过使用ALTER TABLE语句给字段添加少数约束(Unique Key)来让字段值少数,语法为“ALTER TABLE 数据表名 ADD CONSTRAINT 少数约束名 UNIQUE(字段名);”。ALTER TABLE语句用于修改原有表的结构;而少数约束可以确保字段的少数…

    2022年9月20日
    1.1K00
  • windows deepl如何上传文件

    deepl上传文件的方法 1、点击进入网页端。 2、点击翻译.docx & .pptx文件 3、上传你要翻译的文档。 4、选择你的目标翻译语言。 5、翻译完成之后,点击下载就可以得到翻译好的文档啦。 到此,相信大家对“windows deepl如何上传文件”有了更深的了解,不妨来实际操作一番…

    2022年9月26日
    67300
  • mysql怎么增加少数索引

    三种增加方法:1、使用“CREATE INDEX”语句增加,语法“CREATE UNIQUE INDEX 索引名 ON 表名(列名列表);”;2、建表时增加,语法“CREATE TABLE 表名(… UNIQUE KEY(列名列表) );”;3、修改表时增加,语法“ALTER TABLE…

    2022年9月22日
    3.3K00
  • mysql中有没有关键字

    mysql中有关键字。mysql中提供了多种关键字:1、BETWEEN,用在WHERE语句之后的时间或者数字的范围查询;2、CALL,用于调用存储过程;3、CURRENT_DATE,获取当天日期;4、CURRENT_TIME,获取当前时间;5、CURRENT_USER,返回MYSQL的用户名;6、C…

    2022年9月22日
    44000
  • 禁止SpringBoot在项目中使用Tomcat容器的原理是什么

    SpringBoot中的Tomcat容器 SpringBoot可以说是目前热门的Java Web框架了。它将开发者从繁重的xml解救了出来,让开发者在几分钟内就可以创建一个完整的Web服务,极大的提高了开发者的工作效率。Web容器技术是Web项目必不可少的组成部分,因为任Web项目都要借助容器技术来…

    2022年9月19日
    72100
  • cad字体不显示数字怎么解决

    解决方法 1、首先我们打开软件,找到菜单栏上的格式,再找到下拉菜单上的标注样式管理器。 2、然后在跳转出来的对话框中,点击当前使用的标注样式,然后再点击右侧的修改。 3、然后在跳转的新页面里,我们点击文字的选项,在文字高度这一块把高度数值改大一些。 以上就是“cad字体不显示数字怎么解决”这篇文章的…

    2022年9月16日
    71900
  • Redis的内存淘汰策略和过期删除策略的区别是什么

    前言 Redis 是可以对 key 设置过期时间的,因此需要有相应的机制将已过期的键值对删除,而做这个工作的就是过期键值删除策略。 Redis 的「内存淘汰策略」和「过期删除策略」,很多小伙伴容易混淆,这两个机制虽然都是做删除的操作,但是触发的条件和使用的策略都是不同的。 过期删除策略 Redis …

    2022年9月6日
    56200
  • 怎么用SVG给favicon添加标识

    一、favicon 的获取方式 想知道获取方式,可以先了解设置方式。 一般有两种方式可以设置网站的 favicon。 名列前茅种,通过 link 标签设置(需要rel=”icon”属性) <link rel=”icon” href=”xxx.png”> 第二种,直接在网站根目录放一张fa…

    2022年9月8日
    73400
  • redis分片集群如何搭建与使用

    前言 redis可以说在实际项目开发中使用的非常频繁,在redis常用集群中,我们聊到了redis常用的几种集群方案,不同的集群对应着不同的场景,并且详细说明了各种集群的优劣,本篇将以redis 分片集群为切入点,从redis 分片集群的搭建开始,详细说说redis 分片集群相关的技术点; 单点故障…

    2022年9月13日
    1.2K00
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部