这是菜鸟学Python的第91篇原创文章
阅读本文大概需要4分钟
前面写了几篇关于数据分析的文章,用爬虫爬取了全网6500多只基金的作数据分析(全网爬取6500多只基金|看看哪家基金最强),算是数据分析篇开了个头。当时留下了几个问题,其中一个问题就是我们的数据存储用的是文件,其实正宗的做法就是用数据库存储.因为做数据分析特别是当你的数据量非常大时候或者后端开发的时候,肯定是要用数据库的,所以学好数据库非常有必要。好接下来几篇,我将给大家介绍一下Python在数据库里面的使用,小伙伴们,我们快开始吧~~
要点:
-
数据库的分类
-
Python如何操作数据库
-
数据库环境的搭建
-
数据库可视化的工具
-
实例写一个小的数据库
关系数据库和非关系数据库
1).什么是关系数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。象银行系统会大量的用关系数据库.比如大家经常用的MySQL就是典型的关系数据库.
优点:
-
容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解
-
使用方便:通用的SQL语言使得操作关系型数据库非常方便
-
易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
2).什么是非关系数据库
关系数据库虽然很好,但是随着互联网大规模的爆发,弱点也越来越明显,比如事务的一致性,多表联查,高并发等等瓶颈很明显。
于是NoSQL一词横空出世,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。比如MongoDb就是典型的NoSQL型数据库(键值对大家想到了什么,对json格式).
写到这里让我想起了当年的IP和ATM技术之争,其实没有那个技术能称王称霸数年,独领风骚只是一时而已,顺势而为才是王道.技术没有最好,只有最适合时代而已.
市面上现在主流的数据库有Oracle,MySQL,Mongodb,Redis,SQLite,SQL Server等等,有同学会问这么多数据库,我的代码怎么移植啊,放心Python有一个标准数据库接口为DB-API,Python DB-API为开发人员提供了数据库应用编程接口,也就是说使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程也非常简单:
a).引入 API 模块
b).获取与数据库的连接
c).执行相关的语句进行查询,搜索和存储过程
d).关闭数据库连接
写到这里,我突然想起来一个故事(把大象放进冰箱),三步搞定,哈哈
明白了上面的道理之后,小伙伴肯定会迫不及待的动手操练起来,马上就要开启数据库之旅,我们还是选择从简单的开始,先从SQLite开始学习使用,为啥要选SQLite呢,数据库的学习看似复杂,其实就是一层纸,越过这个障碍,再学其他的数据库都非常容易的.
SQLite是一个非常简单,免费,快速而强大的小型数据库(麻雀虽小五脏俱全),不需要复杂的安装和管理,轻轻松松使用,非常适合小白入门.而且在linux和Mac上都自带SQLite3,是不是很爽啊.
(win的同学肯定不乐意了,其实win下安装非常简便,大家可以百度一下,最多3分钟搞定)
我们来看一下SQLite3长啥样吧,打开Mac终端敲sqlite3:
有的时候需要用可视化的工具来查看我们的数据库,特别是数据表格很大的时候,能查看SQLite的数据库文件工具很多,我这里推荐使用DB Browser for SQLite,可以非常直观的去处理SQLite 文件.
大家可以去sqlitebrowser的官网下载,有win,linux,mac版本,mac版本大概13M,选择一下下载即可.
我们先来创建一个数据库,创建数据库的方法有很多种,我们可以用sqlite3命令行创建,也可以用Python代码去写一个新的数据库,也可以用DB Browser for SQlite图形可视化创建,对于零基础的小白,我们先用最简单的图形界面创建吧.
1).打开DB Browser
step1:点击新建数据库
step2:取一个名字,比如Students
step3:点击save
2).建表
一个数据库可以用很多表,我们新建一个叫demo的表,里面的列分别是
-
id:INTEGER(相当于int型)
-
name:TEXT(相当于string型)
-
sex:TEXT(相当于string型)
-
age:INTEGER(相当于int型)
关于SQLite里面的语法,下一篇会细细讲,这里大家有一个大体的认识就可以了.
3).编辑表的内容
step1:点击Brower data
step2:点击新建记录
step3:增加每一行的内容
然后保存退出,就会在上面第一步保存的地方(Desktop),出现了一个Students.db
刚才我们新建了一个Students.db文件,里面其实是一个3*4的二维表格,大家是不是想用sqlite方式看一下呢,好,我们下面打开一个终端,然后用sqlite3 Students.db打开看一下
-
敲.tables
会出现一个demo表格
-
敲select * from demo;
会出现demo表格里面的内容
注意:
sql语句一定以;结尾
是不是和我们用图形界面创建的表的内容,一模一样啊.有同学问,SQLite里面的数据格式是一个二维表,我们的NumPy,Pandas不是专门修理二维表的吗,比如CSV,Excel文件,哇这位同学你太有才了,是的,数据分析很重要的一个过程就是,把数据清洗成表结构,存入数据库,其实CSV文件是可以直接秒变SQL db文件的.
经过前面6个主题的铺垫,抛砖引玉了这么久,我们的Python主角也该上场了.我们最最重要的目的就是用Python来读写数据库,今天我们先来读一下.
1).Pip 安装SQLite3模块
有很多种方法可以安装,简单的用pip install sqlite3或者pycharm里面安装一下
2).读取数据库demo表格
a).sqlite3.connect打开数据库文件
b).获得游标cursor
c).执行一个SQL语句,这里是查询全表
d).打印每一行的数据
e).不要忘记关闭游标和数据库
结论:
好了,Python数据库入门篇就先讲到这里了,是不是很简单,今天很多内容没有展开讲,为的就是让小白用户能通俗的进入数据库的殿堂,后面会由浅入深的慢慢一层一层讲.
数据库其实没有想象的那么神秘,那么难的。大家动手搭建个环境就可以入手了,而且可视化工具虽然很方便,当然还是建议大家从命令行入手,这样对你系统的了解数据库的操作很有帮助.
数据分析之数据库篇我的项目主要用的是MySQL和Mongodb,这两者各有千秋,都是我的最爱,应用的场景稍微不一样,我们后面会讲到的.
欢迎大家关注 菜鸟学Python",更多好玩有趣的Python原创教程,趣味算法,经验技巧,行业动态,尽在菜鸟学Python,一起来学python吧
菜鸟学Python入门教程大盘点|7个多月的心血总结
同学,学Python真的不能这样学
全网爬取6500多只基金|看看哪家基金最强
用Python破解微软面试题|24点游戏
2道极好的Python算法题|带你透彻理解装饰器的妙用
一道Google的算法题 |Python巧妙破解
长按二维码,关注【菜鸟学python】
和12000+小伙伴一起学Python
来源 | 菜鸟学Python
作者 | xinxin
本文章为菜鸟学Python独家原创稿件,未经授权不得转载
本篇文章来源于: 菜鸟学Python
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ python支持多线程吗?12/15
- ♥ 如何使用python bottle框架?12/25
- ♥ python和shell的本质区别是什么11/29
- ♥ python smtplib模块的使用11/26
- ♥ 如何在python中选择32位或64位09/19
- ♥ 菜鸟也要懂点设计模式|用Python设计一个请假模式04/03
内容反馈