Python MySQL查询在哪里(where)

x33g5p2x  于2021-09-18 转载在 Python  
字(1.6k)|赞(0)|评价(0)|浏览(597)

文章目录

  • 一.用过滤器选择
  • 二.通配符
  • 三.防止 SQL 注入

一.用过滤器选择

从表中选择记录时,可以使用“WHERE”语句过滤选择。例如:选择名字为”川川“的记录:结果:

# coding=gbk
"""
作者:川川
@时间  : 2021/9/13 23:24
群:970353786
"""
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 默认用主机名
    user="root",  # 默认用户名
    password="123456",  # mysql密码
    charset='utf8',  # 编码方式
    database="chuan"  # 数据库名称
)

mycursor = mydb.cursor()

sql = "SELECT * FROM user WHERE name ='川川' "

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

演示:

在这里插入图片描述

二.通配符

您还可以选择以给定字母或短语开头、包含或结尾的记录。使用% 来表示通配符。
例如:选择地址包含单词“way”的记录

# coding=gbk
"""
作者:川川
@时间  : 2021/9/13 23:27
群:970353786
"""
import mysql.connector

mydb = mysql.connector.connect(
    host="localhost",  # 默认用主机名
    user="root",  # 默认用户名
    password="123456",  # mysql密码
    charset='utf8',  # 编码方式
    database="chuan"  # 数据库名称
)

mycursor = mydb.cursor()

sql = "SELECT * FROM user WHERE address LIKE '%way%'"

mycursor.execute(sql)

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

演示:

在这里插入图片描述

三.防止 SQL 注入

当用户提供查询值时,您应该对这些值进行转义。这是为了防止 SQL 注入,这是一种常见的网络黑客技术,用于破坏或滥用您的数据库。
mysql.connector 模块具有转义查询值的方法。
例如使用 placholder%s 方法转义查询值:

# coding=gbk
"""
作者:川川
@时间  : 2021/9/14 20:07
群:970353786
"""
import mysql.connector

mydb = mysql.connector.connect(
  host="localhost",  # 默认用主机名
    user="root",  # 默认用户名
    password="123456",  # mysql密码
    charset='utf8',  # 编码方式
    database="chuan"  # 数据库名称
)

mycursor = mydb.cursor()

sql = "SELECT * FROM user WHERE address = %s"
adr = ("Yellow Garden 2", )

mycursor.execute(sql, adr)

myresult = mycursor.fetchall()

for x in myresult:
  print(x)

运行如下:

在这里插入图片描述

相关文章