SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Android的App中都可以集成。
Python就内置了SQLite3,所以,在Python中使用SQLite,不需要安装任何东西,直接使用。
选择SQLite的原因
自己的小东西,轻量极感觉用SQLite3也可以了,省得装MySQL这些了。然后再装个 DB Browser for SQLite的软件,开源的免费可视化工具,用来操作SQLite数据库文件溜溜的、贼方便了~
所以自己选择SQLite的2个主要原因是:
- Python内置了SQLite3,不需要再装任何东西;
- 有DB Browser for SQLite这样开源免费的软件工具,操作又方便,建库、建表、修改表之类都很方便,保存成一个.db文件也方便。
当然,这是看自己需求选择的原因。
数据库相关概念简介
一个数据库对应保存成一个 .db文件;
一个数据库里面可以有很多表(Table);
比如有一个学校的数据库,一般就会有:
- 教职工表(里面有教师姓名之类的信息)
- 班级表(里面有班级名称、人数等信息)
- 全体学生表(里面有学生姓名、班级等信息)
关于数据库知识,随便搜几篇文章看一下,自己去了解一下SQL,这里就不介绍了。
数据库的使用,自己设计几个表,就懂了点基础了,平常自己用用够用就行了(表的设计靠实践)。
Python SQLite
一、SQLite使用过程描述
1.要操作关系数据库,首先要连接到数据库,一个数据库连接称为connection。
2.连接到数据库之后,需要打开游标(Cursor),通过Cursor执行SQL语句,然后获得执行的结果。
3.最后关闭数据库连接。
二、操作数据库举例
数据库的操作,概括一下主要就是【增 删 改 查】,这4个会了,基础就差不多可以上了。
- 增:insert into 语句
- 删:delete from 语句
- 改:update 语句
- 查:select 语句
1.创建数据库、表
创建一个test的表,表里面有 id、code、name 3个字段。
字段的类型 有:
INTEGER(int数值)、TEXT(string字符串)、REAL(float符点数),主要这3种。
字段的属性 有:
- NOT NULL:非空,表示字段不能是空的;
- PRIMARY KEY:主键;
- AUTOINCREMENT:自动增加(这一项是自动增加的,一般用于id);
- UNIQUE:唯一,表示在这个表里这个字段是唯一的。
- DEFAULT ‘ ‘:表示默认值为 ‘ ‘
1 | import sqlite3 |
2.增:表中添加一条数据
sql语句中可以用参数的形式,execute执行sql的时候把参数传进去就可以了。
对应是Tuple(元组的数据类型),Python里List列表用的比较多,可以通过tuple()函数转成Tuple,当然,也可以直接定义成Tuple类型。
因为一般别的地方获取的数据List类型比较多,所以这里举例用了List。
添加一条的SQL语句是:
1 | insert into test (code, name) values ('213123', '张三') |
python代码示例:
1 | import sqlite3 |
sql的语句用参数的好处就是可以在for循环中直接使用,不用每一条固定一条sql语句。
3.删:删除一条指定数据
删除一条的SQL语句是 :
1 | delete from test where code = '213123' |
python代码示例:
1 | import sqlite3 |
4.改:修改一条记录
修改一条的SQL语句是:
1 | update test set code = '213122' where name = '张三' |
python代码示例:
1 | import sqlite3 |
5.查:查询记录
查属于最常用的部分了,因为存储在数据库的数据,通常都用select语句去查询。
查询的SQL语句有:
1 | select * from test |
查询可以查询全部字段,也可以查询部分需要的字段;
查询后面的where条件可以是 UNIQUE 字段,那查询结果就是唯一的,如果不是 UNIQUE字段,查询结果可能会有多条。
python代码示例:
1 | import sqlite3 |
6.小结
使用Cursor对象执行insert,update,delete语句时,执行结果由rowcount返回影响的行数,就可以拿到执行结果。
使用Cursor对象执行select语句时,通过fetchall()可以拿到结果集。结果集是一个list,每个元素都是一个tuple,对应一行记录。
像上面查询中的第4条sql语句,查询结果只需要 code,name 两个字段,那查询的结果会是一个List,每一个元素是一个tuple元组。
比如查询到的结果是:
[(‘213124’, ‘李四’), (‘213125’, ‘王五’)]
对于这样的List,Python里可以直接转换成 Dictionary(字典)类型,那用起来就更方便了。
最后,记得用完 关闭connection和Cursor对象。
- 本文标题:Python 数据库(SQLite)教程
- 本文作者:HDUZN
- 创建时间:2021-02-07 20:20:00
- 本文链接:http://hduzn.cn/2021/02/07/Python-数据库(SQLite)教程/
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!