Python 进阶(五):数据库操作之 SQLite

简介: Python数据库操作之 SQLite

1. 简介

SQLite 是一种嵌入式关系型数据库,其本质就是一个文件,它占用资源低、处理速度快、跨平台、可与 Python、Java 等多种编程语言结合使用。

SQLite 是一个进程内的库,可以自给自足、无服务器、无需配置、支持事务,Python 可以通过 sqlite3 模块与 SQLite3 集成(3 是版本号),Python 2.5.x 以上版本内置了 sqlite3 模块,我们可以直接使用。

2. 数据类型

2.1 存储类型

存储类型是数据保存成文件后的表现形式,主要包括如下几种:

类型 描述
NULL 空值
REAL 浮点数类型
TEXT 字符串,使用数据库编码(UTF-8、UTF-16BE 或 UTF-16LE)存储
BLOB 二进制表示
INTEGER 有符号的整数类型

2.2 亲和类型

亲和类型是数据库表中列数据对应存储类型的倾向性,当数据插入时,字段的数据将会优先采用亲缘类型作为值的存储方式,主要包括如下几种:

类型 描述
NONE 不做任何转换,直接以该数据所属的数据类型进行存储
TEXT 该列使用存储类型 NULL、TEXT 或 BLOB 存储数据
NUMERIC 该列可以包含使用所有五个存储类型的值
REAL 类似于 NUMERIC,区别是它会强制把整数值转换为浮点类型
INTEGER 类似于 NUMERIC,区别是在执行 CAST 表达式时

2.3 声明类型

声明类型是我们写 SQL 时字段定义的类型,常用的声明类型与亲和类型具有如下对应关系:

声明类型 亲和类型
BLOB NONE
DOUBLE、FLOAT REAL
VARCHAR、TEXT、CLOB TEXT
INT、INTEGER、TINYINT、BIGINT INTEGER
DECIMAL、BOOLEAN、DATE、DATETIME NUMERIC

3. 基本使用

3.1 连接数据库

# 导入模块
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')

数据库不存在会被自动创建。

3.2 游标

连接数据库后,需要通过游标进行相应 SQL 操作,所以要先创建游标。

# 创建游标
cs = conn.cursor()

3.3 建表

我们在 test.db 库中新建一张表 person。

# 创建表
cs.execute('''CREATE TABLE person
       (id varchar(20) PRIMARY KEY,
        name varchar(20));''')
# 关闭 cursor
cs.close()
# 提交当前事务
conn.commit()
# 关闭连接
conn.close()

3.4 新增

向表 person 中插入几条数据。

# 导入模块
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')
# 创建游标
cs = conn.cursor()
# 新增
cs.execute("INSERT INTO person (id, name) VALUES ('1', '张三')")
cs.execute("INSERT INTO person (id, name) VALUES ('2', '李四')")
cs.execute("INSERT INTO person (id, name) VALUES ('3', '王五')")
cs.execute("INSERT INTO person (id, name) VALUES ('4', '赵六')")
cs.execute("INSERT INTO person (id, name) VALUES ('5', '朱七')")
cs.close()
conn.commit()
conn.close()

3.5 删除

删除 person 表中 id 为 3 这条数据。

# 导入模块
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')
# 创建游标
cs = conn.cursor()
# 删除
cs.execute("DELETE FROM person WHERE id = '3'")
conn.commit()
cs.close()
conn.close()

3.6 修改

修改一下 person 表中 id 为 1 这条数据的 name 属性值。

# 导入模块
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')
# 创建游标
cs = conn.cursor()
# 修改
cs.execute("UPDATE person set name = '张四' WHERE id = '1'")
conn.commit()
cs.close()
conn.close()

3.7 查询

看一下查询操作。

# 导入模块
import sqlite3
# 连接数据库
conn = sqlite3.connect('test.db')
# 创建游标
cs = conn.cursor()
# 查询
cs.execute("SELECT id, name FROM person")
# 获取查询结果集中的下一行
print(cs.fetchone())
# 获取查询结果集中的下几行
print(cs.fetchmany(2))
# 获取查询结果集中剩下的所有行
print(cs.fetchall())
cs.close()
conn.close()

3.8 图形化工具

我们可以通过 SQLite 图形化工具 SQLiteStudio 更加直观的查看其表结构、数据等,下载地址为:https://github.com/pawelsalawa/sqlitestudio/releases,进到下载页面后根据自己的系统选择下载版本,以 Windows 为例:选择免安装版 SQLiteStudio-3.2.1.zip,下载完毕后解压,再点击 SQLiteStudio.exe 启动。

启动后依次点击:Database、Add a database,弹出如下窗口:
image.png

我们点击文件下方右侧的绿色加号或文件夹按钮,接着选择 test.db 文件,选完后点击测试连接按钮,如果连接正常,再点击 OK 按钮,最后我们就可以通过 SQLiteStudio 对 test.db 进行直观的查看了。
image.png

相关文章
|
1月前
|
关系型数据库 MySQL 数据库连接
python脚本:连接数据库,检查直播流是否可用
【10月更文挑战第13天】本脚本使用 `mysql-connector-python` 连接MySQL数据库,检查 `live_streams` 表中每个直播流URL的可用性。通过 `requests` 库发送HTTP请求,输出每个URL的检查结果。需安装 `mysql-connector-python` 和 `requests` 库,并配置数据库连接参数。
129 68
|
10天前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
75 15
|
1月前
|
弹性计算 数据管理 数据库
从零开始构建员工管理系统:Python与SQLite3的完美结合
本文介绍如何使用Python和Tkinter构建一个图形界面的员工管理系统(EMS)。系统包括数据库设计、核心功能实现和图形用户界面创建。主要功能有查询、添加、删除员工信息及统计员工数量。通过本文,你将学会如何结合SQLite数据库进行数据管理,并使用Tkinter创建友好的用户界面。
55 2
从零开始构建员工管理系统:Python与SQLite3的完美结合
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
41 8
|
2月前
|
关系型数据库 MySQL 数据处理
探索Python中的异步编程:从asyncio到异步数据库操作
在这个快节奏的技术世界里,效率和性能是关键。本文将带你深入Python的异步编程世界,从基础的asyncio库开始,逐步探索到异步数据库操作的高级应用。我们将一起揭开异步编程的神秘面纱,探索它如何帮助我们提升应用程序的性能和响应速度。
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
40 4
|
2月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
48 0
|
2月前
|
SQL 机器学习/深度学习 数据采集
SQL与Python集成:数据库操作无缝衔接2a.bijius.com
Python与SQL的集成是现代数据科学和工程实践的核心。通过有效的数据查询、管理与自动化,可以显著提升数据分析和决策过程的效率与准确性。随着技术的不断发展,这种集成的应用场景将更加广泛,为数据驱动的创新提供更强大的支持。
Python进阶系列(十八)
Python进阶系列(十八)
|
测试技术 Python
Python进阶系列(十七)
Python进阶系列(十七)