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

Python中内置数据库!SQLite使用指南!
  • 作者:韩信子@ShowMeAI
  • Python3◉技术提升系列:www.showmeai.tech/tutorials/5…
  • 本文地址:www.showmeai.tech/article-det…
  • 声明:版权所有,转载请联络平台与作者并注明出处
  • 保藏ShowMeAI检查更多精彩内容
Python中内置数据库!SQLite使用指南!

Python 是一个广泛运用的编程言语,在各个领域都能发挥很大的效果,而且装置 Python 环境的一起,咱们也装置了许多其他超卓的东西,其中当然少不了数据库

Python 内置了 SQLite3,在 Python 中运用 SQLite,不需求装置任何东西,能够直接运用。咱们只需求导入内置 Python 库sqlite3就能够开始运用这个数据库啦!

在本篇内容中,ShowMeAI将带咱们一起来了解,如何基于 Python 环境衔接到数据库、创立表、刺进数据,查询数据,以及与 Pandas 东西库调配运用。

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

对于 SQL 更详尽的内容,欢迎咱们查阅ShowMeAI制造的速查表:

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

衔接数据库

要运用数据库,咱们需求先衔接数据库。在 Python 中很简略,咱们只需导入sqlite3东西库并运用.connect函数,函数的参数是数据库名称,在本例中为students.db

# 导入东西库
import sqlite3
# 树立衔接
conn = sqlite3.connect('students.db')

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

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

创立表

接下来咱们能够在衔接的数据库中创立一个表,并将数据刺进其中。

在创立表之前,咱们需求创立一个游标 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 数据库文件进去,即可检查其内容。

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

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

# 导入东西库
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官方GitHub:github.com/ShowMeAI-Hu…

咱们能够方便地运用 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 检查器检查数据内容。

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

总结

以上就是ShowMeAI带咱们简略了解python的内置数据库SQLite的运用办法,咱们能够很方便地完结建表、刺进数据、查询数据,也能够合作pandas进行灵敏运用,咱们快快用起来吧!

参考资料

  • 编程言语速查表 | SQL 速查表:www.showmeai.tech/article-det…
  • SQLiteViewer:inloop.github.io/sqlite-view…

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

本文正在参加「金石方案 . 瓜分6万现金大奖」