📜  Python MariaDB - 使用 PyMySQL 的 Where 子句(1)

📅  最后修改于: 2023-12-03 15:18:56.464000             🧑  作者: Mango

Python MariaDB - 使用 PyMySQL 的 Where 子句

在 Python 中,PyMySQL 是一个流行的 MariaDB 和 MySQL 数据库的 API。使用 PyMySQL,可以轻松地连接到数据库,并使用 SQL 语句来查询和修改数据。

在本文中,我们将学习如何使用 PyMySQL 中的 Where 子句来查询数据库中的数据。

连接到数据库

使用 PyMySQL 来连接 MariaDB 或 MySQL 数据库是很容易的。首先需要安装 PyMySQL,可以使用 pip 命令来安装:

pip install PyMySQL

连接到数据库的代码如下:

import pymysql.cursors

# 连接到数据库
connection = pymysql.connect(
    host='localhost',
    user='user',
    password='password',
    db='database',
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

在以上代码中,我们使用 pymysql 模块的 connect() 方法来连接到数据库。实际使用时,需要将 host、user、password、db 参数替换成实际的值。

查询数据

现在,连接到数据库后,我们可以使用 SQL 语句来查询数据库中的数据。在 PyMySQL 中,使用 execute() 方法来执行 SQL 查询语句。

例如,假设我们有一个名为 'users' 的表格,其中包含一个名为 'age' 的列,我们可以使用以下代码来查询年龄大于 20 的用户:

try:
    with connection.cursor() as cursor:
        # SQL 查询语句
        sql = "SELECT * FROM `users` WHERE `age` > %s"
        
        # 执行 SQL 查询
        cursor.execute(sql, (20,))
        
        # 获取查询结果
        result = cursor.fetchall()
        print(result)
finally:
    connection.close()

在以上代码中,我们使用 with..as 语句块来执行 SQL 查询语句。在这个语句块中,我们创建一个游标对象,然后使用 execute() 方法执行 SQL 查询语句。

上面的查询语句中使用了一个占位符 %s,这是为了防止 SQL 注入攻击。执行 SQL 查询语句时,数据被添加到查询语句中。

最后,使用 fetchall() 方法获取查询结果,并打印出来。

Where 子句

Where 子句用来限制查询结果的行数。它可以指定一个或多个条件,只有满足这些条件的行才会出现在结果中。

下面是一个示例,假设我们有一个名为 'users' 的表格,其中包含一个名为 'age' 的列和一个名为 'name' 的列。我们可以使用以下代码来查询年龄大于 20 并且名字以 'J' 开头的用户:

try:
    with connection.cursor() as cursor:
        # SQL 查询语句
        sql = "SELECT * FROM `users` WHERE `age` > %s AND `name` LIKE %s"

        # 执行 SQL 查询
        cursor.execute(sql, (20, 'J%'))

        # 获取查询结果
        result = cursor.fetchall()
        print(result)
finally:
    connection.close()

在以上代码中,我们使用 WHERE 子句来限制查询结果的行数。这里的查询条件是 'age > 20' 和 'name LIKE J%'。'LIKE' 操作符用于模糊查询,'J%' 表示名字以 'J' 开头的用户。

总结

使用 PyMySQL 的 Where 子句可以轻松地构建 SQL 查询语句,以限制查询的结果。通过使用占位符,可以避免 SQL 注入攻击。现在,你可以开始尝试查询和修改 MariaDB 或 MySQL 数据库的数据了!