学习
实践
活动
专区
工具
TVP
写文章
专栏首页ShowMeAI研究中心Python中内置数据库!SQLite使用指南! ⛵
原创

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

# 导入工具库
import sqlite3
# 建立连接
conn = sqlite3.connect('students.db')

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

💡 创建表

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

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

c = conn.cursor()

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

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:二进制数据的集合,作为值存储在数据库中。它允许我们在数据库中存储文档、图像和其他多媒体文件。

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

# 导入工具库
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的代码:

c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")

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

all_students = [
('john', 21, 1.8),
('david', 35, 1.7),
('michael', 19, 1.83),
]
c.executemany("INSERT INTO students VALUES (?, ?, ?)", all_students)

💡 查询数据

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

c.execute("SELECT * FROM students")
print(c.fetchall())

打印的输出如下:

[(‘mark’, 20, 1.9), (‘john’, 21, 1.8), (‘david’, 35, 1.7), (‘michael’, 19, 1.83)]

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

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

# 导入工具库
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 读取它:

import pandas as pd
df = pd.read_csv("population_total.csv")

Dataframe 内容如下所示:

>>> 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轻松安装)

from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

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

df.to_sql("population", con=engine)

查询数据表的语句如下:

engine.execute("SELECT * FROM population").fetchall()

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

from sqlalchemy import create_engine
engine = create_engine("sqlite:///mydb.db")
df.to_sql("population", engine)

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

💡 总结

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

参考资料

推荐阅读

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • Python使用sqlite3模块内置数据库

    1、python内置的sqlite3模块,创建数据库中的表,并向表中插入数据,从表中取出所有行,以及输出行的数量。

    砸漏
  • Python 操作 SQLite 数据库

    SQLite 是一个小型的关系型数据库,它最大的特点在于不需要单独的服务、零配置。我们在之前讲过的两个数据库,不管是 MySQL 还是 MongoDB,都需要我...

    编程文青李狗蛋
  • Python操作SQLite数据库

    SQLite是一款轻型的数据库,占用内存非常低,通常只需要几百K的内存就够用了。它将整个数据库,包括定义表、索引以及数据本身,做为一个单独的可跨平台的文件存储在...

    吾非同
  • Python操作SQLite数据库

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    周小董
  • Python 操作SQLite数据库

    SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。在很多嵌入式产品中使用了它,它占用资源非常的低,python...

    孤风洗剑
  • Python中SQLite如何使用

    SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在iOS和Androi...

    砸漏
  • Android中SQLite数据库小计

    2016-03-16 Android数据库支持 本文节选并翻译《Enterprise Android - Programing Android Database...

    用户1172465
  • Qt中操作SQLite数据库

    Qt SQL模块使用驱动程序插件(plugins)与不同的数据库API进行通信。由于Qt的SQL模块API与数据库无关,因此所有特定于数据库的代码都包含在这些驱...

    全栈程序员站长
  • python中的SQLite操作

    上一个博客讲了SQLite的安装及使用,今天我们用python来连接sqlite,从而建立一个与上次一样的表。

    py3study
  • Python把docx文档中的题库导入SQLite数据库

    #本文所用的docx文档题库包含很多段,每段一个题目,格式为: 问题。(答案) #与之对应的数据库datase.db中tiku表包含kechengming...

    Python小屋屋主
  • python中的内置函数

    羽翰尘
  • Python与SQLite和MYSQL数据库

    SQLite是一个轻量级数据库一个数据库实例就是一个文件,可以方便的集成到各种应用程序中。

    菲宇
  • python在sqlite中插入数据

    py3study
  • ​Python中的SQL库:SQLite

    现在所发布的各种网站,或者客户端应用的程序,绝大多数要跟数据库连接——毋庸置疑,大数据时代就这么来了。使用任何一种当下流行的高级编程语言,都可以通过某个专门的模...

    老齐
  • Python超轻量数据库之SQLite

    SQLite3 可使用 sqlite3 模块与 Python 进行集成。sqlite3 模块是由 Gerhard Haring 编写的。它提供了一个与 PEP ...

    Wu_Candy
  • Python Python中的内置函数总结

    Zkeq
  • python中内置hash模块hashlib

    hash,是一种对数据进行变换的算法,这种算法有以下特点: 1.不定长输入,定长输出。 2.不能被还原。由于算法过程中丢弃了一些数据,但是丢弃的是什么,丢弃...

    全栈程序员站长
  • Python自动化操作sqlite数据库

    原文首发:https://bornforthis.cn/column/pyauto/

    AI悦创
  • Python-sqlite3-08-往数据库中写入Excel中信息

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia

扫码关注腾讯云开发者

领取腾讯云代金券