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)
最后
為了方便其他設備和平臺的小伙伴觀看往期文章:公眾號搜索Let us Coding,或者掃描下方二維碼,關注公眾號,即可獲取最新文章。
看完如果覺得有幫助,歡迎點贊、收藏和關注
總結
以上是生活随笔為你收集整理的Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Excel 数据处理
- 下一篇: 一篇文章带你了解Python常用自动化测