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

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

时间:2023-11-10 22:00:51浏览次数:54  
标签:connector SQL Python myresult mysql mycursor MySQL mydb SELECT

从表格中选择数据

要从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,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

标签:connector,SQL,Python,myresult,mysql,mycursor,MySQL,mydb,SELECT
From: https://blog.51cto.com/xiaowange/8309353

相关文章

  • Python的流程控制
    一、流程控制控制事物的执行流程1.顺序结构#自上而下依次执行,我们前面写的代码都是顺序执行的2.分支结构#根据不同的条件执行不同的分支3.循环结构#言外之意就是重复执行二、分支结构1、单分支if 条件:    条件成立之后要执行的代码块2、双分支if 条......
  • python执行字段串代码
    很多时候,我们会让用户自己写代码,然后保持,需要的时候执行,这个时候,保持的代码是字符串,怎么执行呢,这里简单介绍一下1.eval如果是单行语句或者表达式可以使用eval执行,如:eval("2+4+5")2.exec如果是多行的代码,可以使用exec执行(可以使用变量,也可以产生变量),如:lenth=10code=......
  • wxFormBuilder + python + wxWidget
    -------------#-*-coding:utf-8-*-#############################################################################PythoncodegeneratedwithwxFormBuilder(version3.10.1-0-g8feb16b3)##http://www.wxformbuilder.org/####PLEASEDO*NOT*EDITTHISFIL......
  • Python MySQL 数据库查询:选择数据、使用筛选条件、防止 SQL 注入
    从表格中选择数据要从MySQL中的表格中选择数据,请使用"SELECT"语句:示例选择"customers"表格中的所有记录,并显示结果:importmysql.connectormydb=mysql.connector.connect(host="localhost",user="yourusername",password="yourpassword",datab......
  • Python七种运算符及其优先级
    例:a=10,b=201、算术运算符运算符描述实例+加-两个对象相加a+b输出结果30-减-得到负数或是一个数减去另一个数a-b输出结果-10*乘-两个数相乘或是返回一个被重复若干次的字符串a*b输出结果200/除-x除以yb/a输出结果2%取模-返......
  • sql布尔盲注脚本
    数据库长度fromrequestsimport*r=session()url='http://124.70.71.251:40332/new_list.php?id=1andlength(database())='foriinrange(20):url1=url+str(i)re=r.get(url1)if"2018"inre.text:print(i)数据库名称fromr......
  • python3: dlt - 数据结构
    python3:dlt-数据结构    一、程序:1[wit@fedoranull]$cattest.py2#!/usr/bin/envpython334567#testthisscript8defmsg():9print("\nhello,python3!\n")101112#runningmsg()13#msg()1415......
  • python计算代码运行时间
    记录一下自己用python编写计算运行时间的代码 时间类importtimeimportnumpyasnp#编写时间类来方便操作classTimer:def__init__(self):self.times=[]#记录时间self.start()defstart(self):#开始时间启动self.start_time=time.time()......
  • Java登陆第三天——SQL之DQL
    SQL语句SQL概括起来可以分为以下四组。(都是SQL,因为功能的不同,为了更好学习划分了类别)DDL——数据定义语言。用于定义数据的结构。指的是增,删,改数据库DML——数据操作语言。用于检索或修改数据。指的是增,删,改数据DQL——数据查询语言。用于查询各种形式的数据。指的是查询......
  • python删除二维数组的某一行某一列
    Python删除二维数组的某一行某一列1.简介在Python中,二维数组可以通过列表嵌套的方式实现。删除二维数组的某一行或某一列可以使用Python内置的列表操作方法来实现。在本篇文章中,我将向你介绍如何使用Python来删除二维数组的某一行或某一列。2.删除二维数组的某一行删除二维......