- A+
前面写了几篇关于数据分析的文章,用爬虫爬取了全网6500多只基金的作数据分析,算是数据分析篇开了个头。当时留下了几个问题,其中一个问题就是我们的数据存储用的是文件,其实正宗的做法就是用数据库存储.因为做数据分析特别是当你的数据量非常大时候或者后端开发的时候,肯定是要用数据库的,所以学好数据库非常有必要。好接下来几篇,我将给大家介绍一下Python在数据库里面的使用,小伙伴们,我们快开始吧~~
要点:
数据库的分类
Python如何操作数据库
数据库环境的搭建
数据库可视化的工具
实例写一个小的数据库
1.数据库的分类
1).什么是关系数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。象银行系统会大量的用关系数据库.比如大家经常用的MySQL就是典型的关系数据库.
优点:
容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解
使用方便:通用的SQL语言使得操作关系型数据库非常方便
易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
2).什么是非关系数据库
关系数据库虽然很好,但是随着互联网大规模的爆发,弱点也越来越明显,比如事务的一致性,多表联查,高并发等等瓶颈很明显。
于是NoSQL一词横空出世,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。比如MongoDb就是典型的NoSQL型数据库(键值对大家想到了什么,对json格式).
写到这里让我想起了当年的IP和ATM技术之争,其实没有那个技术能称王称霸数年,独领风骚只是一时而已,顺势而为才是王道.技术没有最好,只有最适合时代而已.
2.Python如何操作数据库
市面上现在主流的数据库有Oracle,MySQL,Mongodb,Redis,SQLite,SQL Server等等,有同学会问这么多数据库,我的代码怎么移植啊,放心Python有一个标准数据库接口为DB-API,Python DB-API为开发人员提供了数据库应用编程接口,也就是说使用它连接各数据库后,就可以用相同的方式操作各数据库。
Python DB-API使用流程也非常简单:
a).引入 API 模块
b).获取与数据库的连接
c).执行相关的语句进行查询,搜索和存储过程
d).关闭数据库连接
写到这里,我突然想起来一个故事(把大象放进冰箱),三步搞定,哈哈
3.数据库环境的搭建,SQLite起步
明白了上面的道理之后,小伙伴肯定会迫不及待的动手操练起来,马上就要开启数据库之旅,我们还是选择从简单的开始,先从SQLite开始学习使用,为啥要选SQLite呢,数据库的学习看似复杂,其实就是一层纸,越过这个障碍,再学其他的数据库都非常容易的.
SQLite是一个非常简单,免费,快速而强大的小型数据库(麻雀虽小五脏俱全),不需要复杂的安装和管理,轻轻松松使用,非常适合小白入门.而且在linux和Mac上都自带SQLite3,是不是很爽啊.
(win的同学肯定不乐意了,其实win下安装非常简便,大家可以百度一下,最多3分钟搞定)
我们来看一下SQLite3长啥样吧,打开Mac终端敲sqlite3:
4.数据库可视化工具
有的时候需要用可视化的工具来查看我们的数据库,特别是数据表格很大的时候,能查看SQLite的数据库文件工具很多,我这里推荐使用DB Browser for SQLite,可以非常直观的去处理SQLite 文件.
大家可以去sqlitebrowser的官网下载,有win,linux,mac版本,mac版本大概13M,选择一下下载即可.
5.创建一个数据库
我们先来创建一个数据库,创建数据库的方法有很多种,我们可以用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
6.命令行查询数据库内容
刚才我们新建了一个Students.db文件,里面其实是一个3*4的二维表格,大家是不是想用sqlite方式看一下呢,好,我们下面打开一个终端,然后用sqlite3 Students.db打开看一下
敲.tables
会出现一个demo表格
敲select * from demo;
会出现demo表格里面的内容
注意:
sql语句一定以;结尾
是不是和我们用图形界面创建的表的内容,一模一样啊.有同学问,SQLite里面的数据格式是一个二维表,我们的NumPy,Pandas不是专门修理二维表的吗,比如CSV,Excel文件,哇这位同学你太有才了,是的,数据分析很重要的一个过程就是,把数据清洗成表结构,存入数据库,其实CSV文件是可以直接秒变SQL db文件的.
7.SQLite-Python|主角登场
经过前面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初学者在后台给我留言请教问题,大多数都是新手方面的问题,关于学习方向和学习规划,后期我更新文章我都会随机抽取几个问题给大家解答下,有技术问题的可以私信我。
第一个:Pycharm里面出现了这个东西我如何把他们全部关掉,运行像像下面那张图片一样的,而且要永久关掉的?之前试过去掉勾选how command line afterwards这个没用,只能对一个指定的py有用,运行下一个有出来了。
解答:点击Python console就可以了。
第二个问题:Pycharm关闭pydev控制台,直接运行代码?
解答:把控制台调出来,你应该是不小心碰到terminal,才出来这个的,把它调回去就可以啦,点击进入python console。
每天抽取两个问题解答,有技术方面,方向方面的同学欢迎你们在文章底部留言或者给我私信。