亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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)

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消