Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入

2023/11/11 23:03:07

本文主要是介绍Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

从表格中选择数据

要从MySQL中的表格中选择数据,请使用"SELECT"语句:

示例选择"customers"表格中的所有记录,并显示结果:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

mycursor.execute("SELECT * FROM customers")

  

myresult = mycursor.fetchall()

  

for x in myresult:

print(x)

注意:我们使用 fetchall() 方法,该方法从上次执行的语句中获取所有行。

选择列

要仅选择表格中的某些列,请使用"SELECT"语句,后跟列名:

示例仅选择name和address列:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

mycursor.execute("SELECT name, address FROM customers")

  

myresult = mycursor.fetchall()

  

for x in myresult:

print(x)

使用 fetchone() 方法

如果您只对一行数据感兴趣,可以使用 fetchone() 方法。

fetchone() 方法将返回结果的第一行:

示例仅获取一行:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

mycursor.execute("SELECT * FROM customers")

  

myresult = mycursor.fetchone()

  

print(myresult)


这是您提供的内容的Markdown排版,按照您的要求进行了整理。如果需要进一步的编辑或修改,请告诉我。

使用筛选条件选择记录

在从表格中选择记录时,您可以使用"WHERE"语句来筛选选择的记录:

示例选择地址为"Park Lane 38"的记录:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

sql =  "SELECT * FROM customers WHERE address ='Park Lane 38'"

  

mycursor.execute(sql)

  

myresult = mycursor.fetchall()

  

for x in myresult:

print(x)

通配符字符

您还可以选择以给定字母或短语开头、包含或以给定字母或短语结尾的记录。

使用 % 来表示通配符字符:

示例选择地址中包含单词 “way” 的记录:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

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

  

mycursor.execute(sql)

  

myresult = mycursor.fetchall()

  

for x in myresult:

print(x)

防止SQL注入

当查询值由用户提供时,应该转义这些值。

这是为了防止SQL注入,这是一种常见的网络黑客技术,可以破坏或滥用您的数据库。

mysql.connector 模块具有转义查询值的方法:

示例使用占位符 %s 方法转义查询值:

import mysql.connector

  

mydb = mysql.connector.connect(

host="localhost",

user="yourusername",

password="yourpassword",

database="mydatabase"

)

  

mycursor = mydb.cursor()

  

sql =  "SELECT * FROM customers WHERE address = %s"

adr = ("Yellow Garden 2", )

  

mycursor.execute(sql, adr)

  

myresult = mycursor.fetchall()

  

for x in myresult:

print(x)



这篇关于Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程