首页
学习
活动
专区
圈层
工具
发布
50 篇文章
1
【原创佳作】介绍Pandas实战中一些高端玩法
2
pandas 如何实现 excel 中的汇总行?
3
pandas多级索引的骚操作!
4
40000字 Matplotlib 实操干货,真的全!
5
利用Python搞定女朋友的小情绪~
6
Python 绘制惊艳的瀑布图
7
6种方式创建多层索引
8
Python 进阶指南(编程轻松进阶):三、使用 Black 工具来格式化代码
9
数据科学 IPython 笔记本 9.6 聚合:最小、最大和之间的任何东西
10
精通 Pandas 探索性分析:1~4 全
11
高手系列!数据科学家私藏pandas高阶用法大全 ⛵
12
总结了67个pandas函数,完美解决数据处理,拿来即用!
13
PyAutoGUI,一个Python办公自动化利器!
14
解放双手|利用 PyAutoGUI 快速构建自动化操作脚本
15
Python中内置数据库!SQLite使用指南! ⛵
16
数据分析索引总结(中)Pandas多级索引
17
数据分析索引总结(下)Pandas索引技巧
18
数据分析索引总结(上)Pandas单级索引
19
网友需求系列01-Python-matplotlib定制化刻度(主副)绘制
20
用Python自动生成数据分析报告
21
手把手教你用Python操纵Word自动编写离职报告
22
pandas transform 数据转换的 4 个常用技巧!
23
30段极简Python代码:这些小技巧你都Get了么
24
数据处理遇到麻烦不要慌,5个优雅的Numpy函数助你走出困境
25
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(上)
26
数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(下)
27
数据分析之Pandas变形操作总结
28
数据分析之Pandas缺失数据处理
29
数据分析之Pandas合并操作总结
30
数据分析之Pandas分组操作总结
31
学习用Pandas处理分类数据!
32
如何用Pandas处理文本数据?
33
Pandas处理时序数据(初学者必会)!
34
Python高阶函数使用总结!
35
机器学习在金融风控的经验总结!
36
你知道怎么用Pandas绘制带交互的可视化图表吗?
37
6个提升效率的pandas小技巧
38
Python数据分析库pandas高级接口dt和str的使用
39
pandas 拼接 concat 5 个常用技巧!
40
pandas分组8个常用技巧!
41
pandas 文本处理大全
42
pandas 筛选数据的 8 个骚操作
43
pandas 分类数据处理大全(附代码)
44
68 个Python内置函数,你用过几个?
45
太秀了!用 pandas 搞定 24 张 Excel 报表
46
用 Python 的 Template 类生成文件报告
47
码如其人,同学你能写一手漂亮的Python函数吗
48
Python处理图片九宫格,炫酷朋友圈
49
Python排序傻傻分不清?一文看透sorted与sort用法
50
python-docx操作word文件(
清单首页python文章详情

Python中内置数据库!SQLite使用指南! ⛵

使用Python内置库SQLite,可以方便地完成建表、插入数据、查询数据等数据库操作,也可以配合pandas进行灵活使用!高效工具库get!


💡 作者:韩信子@ShowMeAI 📘 Python3◉技能提升系列:https://www.showmeai.tech/tutorials/56 📘 本文地址:https://www.showmeai.tech/article-detail/390 📢 声明:版权所有,转载请联系平台与作者并注明出处 📢 收藏ShowMeAI查看更多精彩内容

Python 是一个广泛使用的编程语言,在各个领域都能发挥很大的作用,而且安装 Python 环境的同时,我们也安装了很多其他出色的工具,其中当然少不了数据库。

Python 内置了 SQLite3,在 Python 中使用 SQLite,不需要安装任何东西,可以直接使用。我们只需要导入内置 Python 库sqlite3就可以开始使用这个数据库啦!

在本篇内容中,ShowMeAI将带大家一起来了解,如何基于 Python 环境连接到数据库、创建表、插入数据,查询数据,以及与 Pandas 工具库搭配使用。

对于 SQL 更详尽的内容,欢迎大家查阅ShowMeAI制作的速查表:

📘 编程语言速查表 | SQL 速查表

💡 连接数据库

要使用数据库,我们需要先连接数据库。在 Python 中很简单,我们只需导入sqlite3工具库并使用.connect函数,函数的参数是数据库名称,在本例中为students.db

代码语言:python
代码运行次数:0
复制
# 导入工具库
import sqlite3
# 建立连接
conn = sqlite3.connect('students.db')

我们第1次运行上面代码的话,会在工作目录中创建一个名为“students.db”的新文件。

💡 创建表

接下来我们可以在连接的数据库中创建一个表,并将数据插入其中。

在创建表之前,我们需要创建一个游标 cursor(用于建立连接以执行 SQL 查询的对象),我们将使用它来创建表、插入数据等。具体的操作如下代码:

代码语言:python
代码运行次数:0
复制
c = conn.cursor()

完成游标创建后,我们可以使用 .execute方法执行SQL语句,在我们的数据库中创建一个新表。在引号内,我们编写了建表 SQL 语句,使用CREATE TABLE语句:

代码语言:python
代码运行次数:0
复制
c.execute("""CREATE TABLE students (
name TEXT,
age INTEGER,
height REAL
)""")

我们在创建表的字段时,需要定义数据类型。SQLite 只有 5 种数据类型:

  • Null:缺失值
  • INTEGER:没有小数点的数字(例如,1、2、3、4)
  • REAL:带小数点的数字(例如,6.2、7.6、11.2)
  • TEXT:任何字符数据
  • Blob:二进制数据的集合,作为值存储在数据库中。它允许我们在数据库中存储文档、图像和其他多媒体文件。

我们要提交上述语句,并关闭连接。截止目前的完整代码如下:

代码语言:python
代码运行次数:0
复制
# 导入工具库
import sqlite3

# 创建连接
conn = sqlite3.connect('students.db')

# 游标
c = conn.cursor()  

# 建表语句
c.execute("""CREATE TABLE students (
            name TEXT,
            age INTEGER,
            height REAL
    )""")

# 执行
conn.commit()

# 关闭连接
conn.close()

💡 插入数据

我们可以使用.execute执行INSERT INTO语句在“students”表中插入一行数据。下面是添加一个20 岁,身高 1.9 米的学生mark的代码:

代码语言:python
代码运行次数:0
复制
c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")

我们也可以一次插入多行,换成.executemany方法即可。不过注意一下,我们在INSERT语句中会使用?作为占位符。代码如下所示:

代码语言:python
代码运行次数:0
复制
all_students = [
('john', 21, 1.8),
('david', 35, 1.7),
('michael', 19, 1.83),
]
c.executemany("INSERT INTO students VALUES (?, ?, ?)", all_students)

💡 查询数据

我们可以使用SELECT语句查看我们的数据,注意一下如果要获取数据并输出,需要执行.fetchall方法:

代码语言:python
代码运行次数:0
复制
c.execute("SELECT * FROM students")
print(c.fetchall())

打印的输出如下:

代码语言:python
代码运行次数:0
复制
[(‘mark’, 20, 1.9), (‘john’, 21, 1.8), (‘david’, 35, 1.7), (‘michael’, 19, 1.83)]

当然,大家其实可以配合一些在线工具来完成数据的直观查询,例如 📘SQLiteViewer。我们只需拖动前面 Python 代码生成的 .db 数据库文件进去,即可查看其内容。

截止目前为止的所有代码如下

代码语言:python
代码运行次数:0
复制
# 导入工具库
import sqlite3

# 创建连接
conn = sqlite3.connect('students.db')

# 游标
c = conn.cursor()  

# 建表语句
c.execute("""CREATE TABLE students (
            name TEXT,
            age INTEGER,
            height REAL
    )""")

# 插入单条数据
c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")


# 插入多条数据
all_students = [
    ('john', 21, 1.8),
    ('david', 35, 1.7),
    ('michael', 19, 1.83),
]
c.executemany("INSERT INTO students VALUES (?, ?, ?)", all_students)

# 查询数据
c.execute("SELECT * FROM students")
print(c.fetchall())

# 执行
conn.commit()

# 关闭连接
conn.close()

其实大家在SQL中的更高级的复杂查询,都可以通过上述方式进行查询和交互

💡 SQLite 配合 Pandas 应用

SQLite 可以与 Pandas 中的Dataframe搭配使用。

例如,我们有一个名为🏆population_total.csv的 csv 文件,大家可以通过 ShowMeAI 的百度网盘地址下载。

🏆 实战数据集下载(百度网盘):公✦众✦号『ShowMeAI研究中心』回复『实战』,或者点击 这获取本文 [61]Python内置数据库SQLite使用指南 『SQLite示例数据集』

ShowMeAI官方GitHubhttps://github.com/ShowMeAI-Hub

我们可以方便地使用 Pandas 读取它:

代码语言:python
代码运行次数:0
复制
import pandas as pd
df = pd.read_csv("population_total.csv")

Dataframe 内容如下所示:

代码语言:python
代码运行次数:0
复制
>>> df             country year    population0             China  2020.0  1.439324e+09
1             China  2019.0  1.433784e+09
2             China  2018.0  1.427648e+09
3             China  2017.0  1.421022e+09
4             China  2016.0  1.414049e+09
...             ...     ...           ...
4180  United States  1965.0  1.997337e+08
4181  United States  1960.0  1.867206e+08
4182  United States  1955.0  1.716853e+08
4183          India  1960.0  4.505477e+08
4184          India  1955.0  4.098806e+08

我们可以把 pandas Dataframe 形态的数据一次性导入 SQLite 数据库中,这里我们需要借助 sqlalchemy 工具库(可以通过pip install sqlalchemy轻松安装)

代码语言:python
代码运行次数:0
复制
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

下面我们就可以轻松把数据导入数据库并创建 population 表:

代码语言:python
代码运行次数:0
复制
df.to_sql("population", con=engine)

查询数据表的语句如下:

代码语言:python
代码运行次数:0
复制
engine.execute("SELECT * FROM population").fetchall()

如果你想创建表的同时生成一个 sqlite 文件(前面的操作,生成的是内存数据库),可以如下方式操作。(我们创建了一个mydb.db文件作为数据库的实体文件)。

代码语言:python
代码运行次数:0
复制
from sqlalchemy import create_engine
engine = create_engine("sqlite:///mydb.db")
df.to_sql("population", engine)

这个mydb.db就和前面的使用方式一样啦,我们也可以使用 SQLite 查看器查看数据内容。

💡 总结

以上就是ShowMeAI带大家简单了解python的内置数据库SQLite的使用方法,我们可以很方便地完成建表、插入数据、查询数据,也可以配合pandas进行灵活使用,大家快快用起来吧!

参考资料

推荐阅读

下一篇
举报
领券