知行编程网知行编程网  2022-03-06 08:00 知行编程网 隐藏边栏 |   抢沙发  1 
文章评分 0 次,平均分 0.0

这是菜鸟学Python的第96篇原创文章

阅读本文大概需要3分钟



    前面讲SQL数据库我已经写了3篇,我是用关系数据库家族里面最简单的sqlite3作为起航,来慢慢的讲SQL数据库的使用,一层一层的由浅入深的讲解,但是似乎还缺什么,对的就是数据库里面有多对多的关系,也就是多表查询和还有动态变量的插入。好今天就集合Pandas库,一起把这2招教给你。



要点:

  • 动态变量插入

  • 多表联合查询


假如我们有3张表格:学生,成绩单和关系表,3张表格的详细数据如下:

你离学会操作SQL数据库|还剩最后2招


学生表格:

  • 学号id 

  • 名字

  • 邮箱


课程表格:

  • 选修课id

  • 选修课名字


关系图:

  • 学号id

  • 选修课id

  • 成绩


1.创建数据库

既然我们有3个表格,那么先创建一个数据库名字叫'mul_table.db',然后新建3个table(具体每个表的数据变量类型这里就不细讲,参考前面的学会最简单的数据库|看完这7招就够了)


你离学会操作SQL数据库|还剩最后2招



2.用Pandas存储表数据

上面3个表的数据,我们就用Pandas来存储一下.Pandas的知识小伙伴还记得嘛,前面讲了很多篇哦,若不记得了,自己去历史文章里面回顾一下。


我们把学生,成绩单和关系数据,用Pandas DataFrame存一下:


你离学会操作SQL数据库|还剩最后2招


3.把Pandas数据动态插入数据库

前面几篇数据库的文章,里面的变量都是静态的,若动态的如果插入数据库呢,


假如我们上面的动态的数据是从文件里面读出来,或者从网上爬来的,或者CVS里面读的,如何写入数据库呢


很简单,在execute里面我们用VALUES的时候用?来代替动态变量,然后后面用一个元组参数去替换这个? .(是不是有点类似字符串格式化)

 conn.execute("INSERT INTO Students (name,email) VALUES (?,?)",

                     ('xx','xx@sohu.com'));


你离学会操作SQL数据库|还剩最后2招


你离学会操作SQL数据库|还剩最后2招


你离学会操作SQL数据库|还剩最后2招


4.多表查询

先看一下3个表格之间的一对多的关系

学生表-------关系表

课程表-------关系表


你离学会操作SQL数据库|还剩最后2招


再看一下多对多的关系

你离学会操作SQL数据库|还剩最后2招

  • 一个学生可以选修多个课程,而一个课程也可以多个学生选择

  • 对于这样的多表查询,SQL里面有一个关键字叫JOIN ,SQLite 的 Joins 子句用于结合两个或多个数据库中表的记录.

  • JOIN 是一种通过共同值来结合两个表中字段的手段

  • 找到共同值:

    学生表---关系表:student_id

    课程表---关系表:course_id


那我们就来联合几个表查一下:学生的名字,选修的课程和成绩,并且按照成绩分数从高到低排序:


你离学会操作SQL数据库|还剩最后2招

>>

(u'lily', u'Python', 95)

(u'Jack', u'Python', 90)

(u'James', u'Python', 80)

(u'James', u'Go', 72)

(u'Jack', u'Java', 70)

(u'James', u'Java', 60)

(u'lily', u'Go', 50)


结论:


好,SQL数据库的多表查询和动态插入,就讲到这里了.大家若有什么问题,欢迎留言讨论.后台有同学非常急迫的想学MySQL,其实MySQL和sqlite3大同小异,语法上非常接近,只是功能,性能上强大一些而已。不用太着急,两大数据库MySQL和Mongodb我都会讲的,只是我写文章喜欢循序渐进的写,敬请期待吧




欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧


                    

数据库系列历史文章

        Python数据库起航篇|零基础起步

学会最简单的数据库|看完这7招就够了

3分钟带你了解SQL高级操作



历史人气文章

菜鸟学Python入门教程大盘点|7个多月的心血总结

同学,学Python真的不能这样学

全网爬取6500多只基金|看看哪家基金最强

用Python破解微软面试题|24点游戏

2道极好的Python算法题|带你透彻理解装饰器的妙用

一道Google的算法题 |Python巧妙破解


 长按二维码,关注【菜鸟学python】


你离学会操作SQL数据库|还剩最后2招



来源 | 菜鸟学Python

作者 | xinxin

本文章为菜鸟学Python独家原创稿件,未经授权不得转载





本篇文章来源于: 菜鸟学Python

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享