目录
一.用过滤器选择
二.通配符
三.防止 SQL 注入
一.用过滤器选择
从表中选择记录时,可以使用“WHERE”语句过滤选择。例如:选择名字为”笨小孩“的记录:结果:
# coding=gbk
#连接
import pymysqlmydb = pymysql.connect(host="localhost", #默认用主机名port=3306,user="root", #默认用户名password="123456", #mysql密码database='student', #库名charset='utf8' #编码方式
)print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()#创建SQL查询语句
sql = "SELECT * FROM stu WHERE name ='笨小孩' "
#执行sql语句
mycursor.execute(sql)
#打印
myresult = mycursor.fetchall()for x in myresult:print(x)
演示:
二.通配符
您还可以选择以给定字母或短语开头、包含或结尾的记录。使用% 来表示通配符。
例如:选择地址包含单词“way”的记录
# coding=gbk
#连接
import pymysqlmydb = pymysql.connect(host="localhost", #默认用主机名port=3306,user="root", #默认用户名password="123456", #mysql密码database='student', #库名charset='utf8' #编码方式
)print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()#创建SQL查询语句
sql = "SELECT * FROM stu WHERE name LIKE '%羊%'"
#执行sql语句
mycursor.execute(sql)
#打印
myresult = mycursor.fetchall()for x in myresult:print(x)
演示:
三.防止 SQL 注入
当用户提供查询值时,您应该对这些值进行转义。这是为了防止 SQL 注入,这是一种常见的网络黑客技术,用于破坏或滥用您的数据库。
mysql.connector 模块具有转义查询值的方法。
例如使用 placholder%s 方法转义查询值:
# coding=gbk
#连接
import pymysqlmydb = pymysql.connect(host="localhost", #默认用主机名port=3306,user="root", #默认用户名password="123456", #mysql密码database='student', #库名charset='utf8' #编码方式
)print(mydb)
# # 获取游标 承载结果
mycursor = mydb.cursor()#创建SQL查询语句
sql = "SELECT * FROM stu WHERE name=%s"
adr = ("喜羊羊", )
#执行sql语句
mycursor.execute(sql, adr)
#打印
myresult = mycursor.fetchall()for x in myresult:print(x)
运行如下: