【Mysql】Python操作
一、安装pymysql
pip 是 Python 包管理工具,该工具提供了对Python 包的查找、下载、安装、卸载的功能。
python2,默认无pip命令
python3,默认自带pip命令
解决一般pip错误(pip更新):
1.使用python -m pip install --upgrade pip #升级失败
2.使用python -m pip install -U --force-reinstall pip #依然失败
3.使用pip install --user --upgrade pip #成功升级
二、基本操作
1.基本增删改
# 导入模块 import pymysql # 创建连接 conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='root', db='sqlexample', charset='utf8') # 创建游标 cursor = conn.cursor() # 执行SQL,并返回受影响行数 cursor.execute('insert into mydata(author,age) values(%s%s)',('Shura', 100)) # 执行SQL,并返回受影响行数 cursor.executemany('insert into mydata(author,age) values(%s%s)',[('a', 100),('b', 99)]) # 获取最新的一条自增ID cursor.lastrowid # 提交,不然无法保存新建或者修改的数据 conn.commit() # 关闭游标 cursor.close() # 关闭连接 conn.close()
2.基本查询
r = cursor.execute('select author from mydata where cid < 3') # 取出查询到指向的一条数据(以迭代形式取出元组) result = cursor.fetchone() # 取出第一条 # 取出查询到指定数据 result = cursor.fetchmany(3) # 取出2-5条 # 取出查询到所有数据 result = cursor.fetchall() # 取出剩下所有 # 迭代的指针操作 cursor.scroll(0, mode='absolute') # 返回到第一条数据 cursor.scroll(-1, mode='relative') # -1向前移动一条 1向后移动一条
sql注入:执行SQL语句严禁使用字符串的拼接,使用占位符与参数进行传递
sql注入的一个简单实例:1.加上-- 将后面 and password 进行注释掉 输入用户则条件成立 2.家上 or 1=1 条件永远成立

3.创建游标并设置返回数据类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 获取字典类型数据 [{'tid': 1, 'tname': '波多'}, {'tid': 2, 'tname': '苍空'}]
286

浙公网安备 33010602011771号