14. Python 与数据库那点事儿,滚雪球学 Python
今天是持续写作的第 <font color="red">14</font> / 100 天。
如果你有想要交流的想法、技术,欢迎在评论区留言。
本篇文章将给大家介绍 Python 如何操作 SQLite 数据库,本文将是滚雪球学 Python 第一阶段的倒数第二篇文章。
<center><font color=red>缓解一下视疲劳</font></center>
已完成的文章
1.这才是 Python 学习的正确起手姿势,滚雪球学 Python
2. 无门槛学会数据类型与输入、输出函数,滚雪球学 Python
3. 无转折不编程,滚雪球学 Python
4. 列表一学完,Python 会一半,滚雪球学 Python
5. Python 循环的本质就是一段代码懒得重复写
6. Python 元组,不可变的列表,滚雪球学 Python
7. ✎ 会查新华字典不?会。Python 字典已经掌握了
8. ㊙ Python 集合三板斧,滚雪球学 Python
9. Python 学习过程的第一个山坡,99%的人都倒在了山坡下
10. 比找女朋友还难的技术点,Python 面向对象
11. 用别人写好的代码,完成我的工作,剩下的时间去摸鱼
12. 数据放在本地,心里才更踏实,滚雪球学 Python
13. 如果自己写的 Python 程序出错了,怎么办?
**
本系列文章将在 2021 年春节前完成,欢迎关注,点赞,评论 --- 梦想橡皮擦
**
**想学 Python 爬虫,可以订阅橡皮擦专栏哦~
** 🈲🈲🈲 点击发现惊喜 🈲🈲🈲
十四、Python 操作 SQLite 数据库
14.1 认识 SQLite 数据库
SQLite 数据库在安装 Python 之后会自动安装到你的电脑上,通过它可以将数据持久的存储在本地电脑中,有人肯定说了,我们可以将数据存储到文件中啊,为啥要存储到数据库中呢?这个吧,肯定是用着舒服啊(说了跟没说一样)。说真的很多时候不用问为什么的,先上手,后面在补充这些概念类的东西,用数据库在某些场景下是比用文件好的,当然只是在某些场景。
在 Python 中通过 import sqlite3
导入模块。
14.1.1 SQLite 基本使用
数据库一般分为以下三步。
连接数据库
操作数据库
关闭数据库
使用如下命令可以连接数据库。
该方式如果数据库存在,自动建立连接,如果不存在,先创建数据库再建立连接关系。使用完毕记得及时关闭数据库。
上述代码中的 conn
就是一个普通的变量,一般叫做数据库连接对象,记住也是一个对象,它肯定有属性,也有方法。
请运行下述代码,在本地目录查看是否多出了一个文件。
14.1.2 建立 SQLite 数据库表
通过 connect 方法可以与数据库文件建立连接,返回的对象是 connect 对象,这个对象常用的方法如下。
close 关闭数据库连接;
commit 更新数据库内容;
cursor 建立 cursor 对象,该对象可以执行 execute 方法;
execute 执行 SQL 数据库命令,例如数据表建立,查询,删除,更新。
SQLite 数据类型
在正式学习 SQLite 数据库操作之前,需要先学习一下该数据库中包含的几种数据类型,因为 SQLite 比较简单,所以涉及的数据类型内容也不多。
NULL 空值;
INTEGER 整数;
REAL 浮点数;
TEXT 字符串;
BLOB 富文本数据,例如图片、歌曲。
有了上述内容之后就可以开始操作数据库了。在这之前还要补充一个概念,一个数据库可以包含多张表,翻译成通俗的话就是,一个 my_data.db
文件中可以包含多个表。
在 my_data.db
文件中建立第一张表。
相关注释已经添加到代码中,注意 conn 对象与 cursor 对象,使用之后都需要关闭,并且 cursor 对象在 conn 对象之前关闭。
该内容是一个建表 SQL 语句,其中 create table 表名称(字段列表)
,每个字段定义都是按照 字段名 字段类型
格式设计的。通过该 SQL 语句就可以在数据库中建立一个 students
表,表中包含 4 列内容,分别是 id
、name
、sex
、age
。这里你可以将表看成一个类似表格的东西。
|id |name |sex| age |
|--|--|--|--|
已经创建 students
表之后,就不可以在创建相同表名的表了。也就是在执行上述代码会报错,这时你就可以用到 try ... except 语句了。
14.1.3 表中增加数据
在数据库中建立表之后就可以增加数据了,表中的数据一般称为记录,接下来使用插入数据的命令向表中增加一条学生数据。
上述代码最核心的为 insert into students values(?,?,?,?)
,该内容也是 SQL 语句,执行该语句使用 execute
方法时,需要在该方法的第二个参数位置传入对应的数据,也就是说如果 SQL 语句中有三个问号,这里的第二个参数也应该是三个元素的元组。
14.1.4 查询数据库中的表数据
查询语句的 SQL 格式为:
查询 students 表中的数据代码如下:
使用上述代码即可将数据库中指定表的数据全部读取出来。还有当我们执行 results = cursor.execute(select_sql)
之后,输出的 results
对象类型为 <sqlite3.Cursor object at 0x00000000020DCB90>
,该对象存在一个 fetchall
方法,使用该方法可以一次性将所有数据都存放到一个元组内。
还有一个需要说明,如果只想要某个数据表中的某一列,不想要全部数据,使用的 SQL 语句语法格式为:
14.1.5 更新表数据
更新数据表中的数据用到的关键词是 update
,语法格式如下:
这里的 SQL 语法格式变的相对复杂了一些,主要增加了 where
条件判断,先完成以下代码内容。
执行更新操作,将 橡皮擦
更新为了 大橡皮擦
,可以使用查询语句查看一下表中的数据是否得到修改。
Python 操作数据库重点其实是 SQL 语句的熟练程度,本篇博客中涉及的 SQL 语句只是冰山一角,对于 SQL 语句其实是存在专业的语法结构的,在后续再次滚雪球的时候,将为你展开说明。
在更新表中列数据的时候,第一个要注意一定要增加 where 条件,否则话整个表就都被更新了;第二个一定要确定好列名,否则找不到列名也会报错的哦。
14.1.6 删除表数据
学习了插入与更新之后,删除表数据就变得简单多了,记住 SQL 的语法格式就可以:
当 where 条件满足的时候,就会删除对应的数据,一定要注意如果没有写 where 条件,整个表就被删除了。
**
如果你不想**删库跑路**,那记住一点,当对数据库中任意表执行更新或者删除操作的时候,一定都要写上 where 条件
**
14.2 这篇博客的总结
本篇博客如果是第一次学习 Python 的朋友打开,其实难度很大,因为里面涉及了另一个语言体系叫做 SQL 语言,一种对数据库进行操作的语法,学习该语法之后其实对很多数据库都可以进行简单的操作了,尴尬的是如果你第一次学习,你需要一边看 Python 语法,一边看 SQL 语法,很容易两个都学起来迷糊,不过不要担心,毕竟这只是第一遍滚雪球,相信第二次再来你会更加有自信的。
**想学 Python 爬虫,可以订阅橡皮擦专栏哦~
** 🈲🈲🈲🈲 点击发现惊喜 🈲🈲🈲🈲
🈚🈚🈚🈚🈚
如果你想跟博主建立亲密关系,可以关注同名公众号 <font color="red">梦想橡皮擦</font>,近距离接触一个逗趣的互联网高级网虫。
博主 ID:梦想橡皮擦,希望大家<font color="red">点赞</font>、<font color="red">评论</font>、<font color="red">收藏</font>。
版权声明: 本文为 InfoQ 作者【梦想橡皮擦】的原创文章。
原文链接:【http://xie.infoq.cn/article/3b58ba2395d71745ca9c381ed】。文章转载请联系作者。
评论