Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python中内置数据库!SQLite使用指南! ⛵

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

原创
作者头像
ShowMeAI
发布于 2022-12-01 06:35:03
发布于 2022-12-01 06:35:03
3K10
代码可运行
举报
文章被收录于专栏:ShowMeAI研究中心ShowMeAI研究中心
运行总次数:0
代码可运行

使用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
运行
AI代码解释
复制
# 导入工具库
import sqlite3
# 建立连接
conn = sqlite3.connect('students.db')

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

💡 创建表

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

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

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

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
# 导入工具库
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
运行
AI代码解释
复制
c.execute("INSERT INTO students VALUES ('mark', 20, 1.9)")

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
c.execute("SELECT * FROM students")
print(c.fetchall())

打印的输出如下:

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

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

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 导入工具库
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
运行
AI代码解释
复制
import pandas as pd
df = pd.read_csv("population_total.csv")

Dataframe 内容如下所示:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
>>> 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
运行
AI代码解释
复制
from sqlalchemy import create_engine
engine = create_engine('sqlite://', echo=False)

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

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

查询数据表的语句如下:

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

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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 删除。

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

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

评论
登录后参与评论
1 条评论
热度
最新
写的很详细
写的很详细
回复回复1举报
推荐阅读
编辑精选文章
换一批
Python操作SQLite数据库
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
周小董
2019/10/22
1.6K0
python-Python与SQLite数据库-使用Python执行SQLite查询(一)
在Python中,我们可以使用sqlite3模块连接和操作SQLite数据库。在前面的文章中,我们已经介绍了如何创建数据库、创建表格、插入数据、查询数据、更新数据和删除数据。
玖叁叁
2023/04/22
1.4K0
Python数据库编程指南连接、操作与安全
在现代应用程序开发中,与数据库进行交互是至关重要的一环。Python提供了强大的库来连接和操作各种类型的数据库,其中包括SQLite和MySQL。本文将介绍如何使用Python连接这两种数据库,并进行基本的操作,包括创建表、插入数据、查询数据等。
一键难忘
2024/05/06
4350
python-Python与SQLite数据库-SQLite数据库的基本知识(一)
SQLite是一种嵌入式关系型数据库,它是在本地计算机上存储数据的一种轻量级解决方案。在Python中,我们可以使用sqlite3模块来连接SQLite数据库,进行数据的读取、写入和更新等操作。
玖叁叁
2023/04/22
5230
python处理SQLite数据库
数据库非常重要,程序的数据增删改查需要数据库支持。python处理数据库非常简单。而且不同类型的数据库处理逻辑方式大同小异。本文以sqlite数据库为例,介绍一下python操作数据库的方法。
Crayon鑫
2023/10/10
4720
大数据开发!Pandas转spark无痛指南!⛵
Pandas 是每位数据科学家和 Python 数据分析师都熟悉的工具库,它灵活且强大具备丰富的功能,但在处理大型数据集时,它是非常受限的。
ShowMeAI
2022/11/24
8.7K0
大数据开发!Pandas转spark无痛指南!⛵
Python标准库14 数据库 (sqlite3)
Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比如HTML5和移动端。Python标准库中的sqlite3提供该数据库的接口。 我将创建一个简单的关系型数据库,为一个书店存储书的分类和价格。数据库中包含两个表:category用于记录分类,book用于记录某个书的信息。一本书归属于某一个分类,因此book有一个外键(foreign key),指向cat
Vamei
2018/01/18
1.6K0
Python标准库14 数据库 (sqlite3)
python-Python与SQLite数据库-使用Python执行SQLite查询(二)
在Python中,我们可以使用参数化查询来避免SQL注入攻击,并提高性能。参数化查询是指在SQL语句中使用占位符来表示变量,然后在执行查询时将变量的值传递给SQL语句。以下是一个使用参数化查询查询customers表格中age列大于等于指定值的示例:
玖叁叁
2023/04/22
1.7K0
Python3 初学实践案例(8)使用 sqlite3 数据库存储生成的密码,prettytable 的使用
摘要总结:本文主要介绍了一种基于Python的密码管理工具,该工具使用SQLite数据库进行密码存储和管理。主要功能包括:生成密码,导入/导出密码,保存密码记录,密码分类,自动填充,密码校验,密码加密,密码搜索和排序等功能。该工具使用Python的sqlite3模块进行数据库操作,使用哈希算法进行密码加密,使用正则表达式进行密码校验。该工具还支持密码过期和密码历史记录功能。使用该工具可以有效地管理大量密码,并保证密码的安全性。
FungLeo
2018/01/08
1.3K0
Python - sqlite3 轻量数据库使用
sqlite3模块不同于PyMySQL模块,PyMySQL是一个python与mysql的沟通管道,需要你在本地安装配置好mysql才能使用,SQLite是python自带的数据库,不需要任何配置。
为为为什么
2022/08/04
1.8K0
Python - sqlite3 轻量数据库使用
python 标准库 sqlite3 介绍(一)
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的功能特点有:
用户6021899
2019/08/14
1.4K0
python高阶教程-使用数据库(mysql, sqlite, sqlalchemy)
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/119/
羽翰尘
2019/11/20
2K0
Python数据库编程:从基础到高级的全面指南
在当今数字时代,数据是任何应用程序的核心。Python提供了丰富的数据库编程工具和库,使得与各种数据库进行交互变得更加容易。本文将深入探讨Python数据库编程的各个方面,从基础概念到高级技术,为读者提供全方位的指南。
海拥
2023/12/08
7680
最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
上篇文章 聊到 Python 处理 Mysql 数据库最常见的两种方式,本篇文章继续说另外一种比较常用的数据库:Sqlite
AirPython
2020/09/22
1.3K0
最全总结 | 聊聊 Python 数据处理全家桶(Sqlite篇)
Pandas中你一定要掌握的时间序列相关高级功能 ⛵
Pandas 是大家都非常熟悉的数据分析与处理工具库,对于结构化的业务数据,它能很方便地进行各种数据分析和数据操作。但我们的数据中,经常会存在对应时间的字段,很多业务数据也是时间序组织,很多时候我们不可避免地需要和时间序列数据打交道。其实 Pandas 中有非常好的时间序列处理方法,但是因为使用并不特别多,很多基础教程也会略过这一部分。
ShowMeAI
2022/11/28
1.9K0
Pandas中你一定要掌握的时间序列相关高级功能 ⛵
运维学python之爬虫中级篇(七)Sq
前文已经讲过无数据库版本操作(csv,json),今天我们要开始讲有数据库版本的操作,首先就是sqlite3。
py3study
2020/01/03
1.4K0
运维学python之爬虫中级篇(七)Sq
Python小白的数据库入门
sqlite3 以上两个是主流的关系型数据库,我们观察之后发现,它们与我们熟知的Excel好像也没有什么不同。关系型数据库里面放的都是一张张的表,就如同Excel中的工作簿。就算不熟悉Excel,但每一张表也都是我们从小到大所熟悉的那种表结构,例如课程表、值日表之类的。
arcticfox
2019/07/10
2.1K0
Python小白的数据库入门
私藏!资深数据专家SQL效率优化技巧 ⛵
所有的数据相关工作人员,包括数据开发、数据分析师、数据科学家等,多多少少会使用数据库,我们很多的业务数据也是存放在业务表中。但即使是同一个需求,不同人写出的 SQL 效率上也会有很大差别,而我们在数据岗位面试的时候,也会考察相关的技能和思考,在本篇文章中,ShowMeAI将给大家梳理 SQL 中可以用于优化效率和提速的核心要求。
ShowMeAI
2022/12/02
9650
私藏!资深数据专家SQL效率优化技巧 ⛵
「Python爬虫系列讲解」六、Python 数据库知识
前文回顾: 「Python爬虫系列讲解」一、网络数据爬取概述 「Python爬虫系列讲解」二、Python知识初学 「Python爬虫系列讲解」三、正则表达式爬虫之牛刀小试 「Python爬虫系列讲解」四、BeautifulSoup 技术 「Python爬虫系列讲解」五、用 BeautifulSoup 爬取电影信息
荣仔_最靓的仔
2021/02/02
1.5K0
「Python爬虫系列讲解」六、Python 数据库知识
一键自动化数据分析!快来看看 2022 年最受欢迎的 Python 宝藏工具库! ⛵
实际工作中,我们往往依托于业务数据分析制定业务策略。这个过程需要频繁地进行数据分析和挖掘,发现模式规律。对于算法工程师而言,一个有效的 AI 算法系统落地,不仅仅是模型这么简单——数据才是最底层的驱动。
ShowMeAI
2022/07/12
2K0
一键自动化数据分析!快来看看 2022 年最受欢迎的 Python 宝藏工具库! ⛵
推荐阅读
相关推荐
Python操作SQLite数据库
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档