php抓取网页数据插入数据库(Python一个python自带的轻量级数据库模块-sqlite3什么是SQLite )
优采云 发布时间: 2021-11-04 02:09php抓取网页数据插入数据库(Python一个python自带的轻量级数据库模块-sqlite3什么是SQLite
)
Python作为数据科学的主流语言,被广泛用于数据的读取和存储、处理、分析和建模。可以说是万能的。
数据一般存储在本地文件或数据库中。介绍了如何使用python读取本地文件,也对#PyMySQL、cx_Oracle等数据库连接库做了简单的使用和分享。
这次推荐一个python自带的轻量级数据库模块-sqlite3。首先,我们必须弄清楚什么是 SQLite:
❝ SQLite 是一个用 C 语言编写的小型嵌入式数据库。它的数据库是一个文件。SQLite 不需要单独的服务器进程或操作系统,也不需要配置,这意味着它不需要安装或管理。维护来自 SQLite 软件本身。
❞
sqlite3 模块与 PyMySQL 模块不同。PyMySQL 是 python 和 mysql 之间的通信通道。您需要在本地安装和配置 mysql 才能使用它。SQLite是python自带的数据库,不需要任何配置。您可以使用 sqlite3 模块来驱动它。
在本文中,我们将执行连接 SQLite 数据库、创建表、插入数据、读取数据和修改数据等操作。
1. 导入 sqlite3 模块
sqlite3是内置模块,不需要安装,直接导入即可:
import sqlite3
2. 创建到 SQLite 数据库的连接
使用 sqlite3.connect() 函数连接到数据库并返回一个 Connection 对象,我们通过它与数据库进行交互。数据库文件的格式为filename.db。如果数据库文件不存在,则会自动创建。数据库文件放在电脑硬盘中,可以自定义路径,后续操作产生的所有数据都会保存在这个文件中。
# 创建与数据库的连接
conn = sqlite3.connect('test.db')
也可以在内存中创建数据库,只要输入特殊参数值:memory:,数据库只存在于内存中,不会生成本地数据库文件。
conn = sqlite3.connect(':memory:')
与数据库建立连接后,需要创建一个游标对象。这个对象的.execute()方法可以执行sql命令,让我们可以进行数据操作。
#创建一个游标 cursor
cur = conn.cursor()
3. 在 SQLite 数据库中创建表
这里我们要执行SQL建表语句,我们先创建一个学生成绩表如下-scores:
该表目前只有字段名和数据类型,没有数据,执行如下语句实现:
# 建表的sql语句
sql_text_1 = '''CREATE TABLE scores
(姓名 TEXT,
班级 TEXT,
性别 TEXT,
语文 NUMBER,
数学 NUMBER,
英语 NUMBER);'''
# 执行sql语句
cur.execute(sql_text_1)
4. 插入数据到表中
建好table-scores后,就只有表的骨架了。这时候需要向表中插入数据:
执行以下语句插入单条数据:
# 插入单条数据
sql_text_2 = "INSERT INTO scores VALUES('A', '一班', '男', 96, 94, 98)"
cur.execute(sql_text_2)
执行以下语句插入多条数据:
data = [('B', '一班', '女', 78, 87, 85),
('C', '一班', '男', 98, 84, 90),
]
cur.executemany('INSERT INTO scores VALUES (?,?,?,?,?,?)', data)
# 连接完数据库并不会自动提交,所以需要手动 commit 你的改动conn.commit()
5. 查询数据
我们已经建好了表,插入了三条数据,现在来查询特定条件下的数据:
# 查询数学成绩大于90分的学生
sql_text_3 = "SELECT * FROM scores WHERE 数学>90"
cur.execute(sql_text_3)
# 获取查询结果
cur.fetchall()
返回:
备注:一般情况下,可以使用 .fetchone() 方法(获取第一项)获取查询结果,也可以使用 .fetchall() 方法(获取所有项)。
6. 其他操作
对数据库进行更改后(如创建表、插入数字等),需要手动提交更改,否则数据无法保存到数据库中。
# 提交改动的方法
conn.commit()
使用完数据库后,需要关闭游标和连接:
# 关闭游标
cur.close()
# 关闭连接
conn.close()
连接连接和游标的附加API方法