Python+sqlite:带通配符的LIKE查询

作者:编程家 分类: database 时间:2025-06-08

使用Python和SQLite进行带通配符的LIKE查询

在数据库管理中,查询是一项关键任务,而模糊查询则是其中一种强大的工具。Python和SQLite是一对强大的组合,可用于执行各种数据库操作,包括模糊查询。本文将介绍如何使用Python和SQLite进行带通配符的LIKE查询,并通过实例演示其用法。

### 什么是带通配符的LIKE查询

在数据库查询中,LIKE操作符用于执行模糊匹配,而带通配符的LIKE查询则允许我们使用通配符(通常是百分号 `%` 或下划线 `_`)来表示任意字符或一定范围的字符。这样的查询对于查找具有某种模式的数据非常有用。

### 准备工作

首先,我们需要一个SQLite数据库和一张表,以便进行我们的实例演示。让我们创建一个名为`employees`的表,其中包含员工的姓名和职位信息。

python

import sqlite3

# 连接到数据库(如果不存在,则会创建一个新的数据库)

conn = sqlite3.connect('example.db')

# 创建一个游标对象

cursor = conn.cursor()

# 创建一个名为employees的表

cursor.execute('''

CREATE TABLE IF NOT EXISTS employees (

id INTEGER PRIMARY KEY,

name TEXT,

position TEXT

)

''')

# 插入一些示例数据

cursor.executemany('''

INSERT INTO employees (name, position) VALUES (?, ?)

''', [

('John Doe', 'Software Engineer'),

('Jane Smith', 'Data Scientist'),

('Bob Johnson', 'Project Manager'),

('Alice Brown', 'QA Tester')

])

# 提交更改并关闭连接

conn.commit()

conn.close()

现在,我们有了一个包含员工信息的`employees`表,接下来我们将展示如何使用带通配符的LIKE查询。

### 执行带通配符的LIKE查询

让我们假设我们想查找所有职位中包含"Engineer"的员工。我们可以使用`%`通配符来实现这一目标。

python

import sqlite3

# 连接到数据库

conn = sqlite3.connect('example.db')

cursor = conn.cursor()

# 执行带通配符的LIKE查询

search_term = 'Engineer'

cursor.execute('''

SELECT * FROM employees WHERE position LIKE ?

''', ('%' + search_term + '%',))

# 获取查询结果

results = cursor.fetchall()

# 打印查询结果

for result in results:

print(result)

# 关闭连接

conn.close()

在上述代码中,`LIKE ?`部分表示我们将使用参数化查询,而`'%' + search_term + '%'`则构建了包含通配符的查询条件。这将返回所有职位中包含"Engineer"的员工记录。

###

通过使用Python和SQLite进行带通配符的LIKE查询,我们可以轻松地在数据库中查找符合特定模式的数据。这种灵活性使得模糊查询成为处理大量数据时的强大工具。希望本文对你理解和使用带通配符的LIKE查询提供了帮助。