设为首页 收藏本站
查看: 1201|回复: 0

[经验分享] 12.python之pymsql模块

[复制链接]

尚未签到

发表于 2018-8-14 10:37:07 | 显示全部楼层 |阅读模式
  一、pymysql模块的简介。
  pymysql是python3.x版本用来操作mysql数据库的一个模块,其实和python2.7中的MySQLdb模块的作用和操作语法都是一模一样的。
  可以通过pip来进行安装:
  pip3.5 install pymysql
  pymysql这种数据库接口的使用,大概分为4个步骤:
  执行连接数据库->执行query->提取数据->关闭连接
  在使用pymysql这个模块时,你需要注意的。

  •   Connection 连接对象。
      虽然在MySQLdb.Connect(host ,user , passw , db)函数中,我们经常使用的只是这几个参数,但是其实里面还有很多比如字符集、线程安全、ssl等也都是很重要的参数,使用时要身份注意。
  •   commit 提交。
      对于mysql来说,如果使用支持事务的存储引擎,那么每次操作后,commit是必须的,否则不会真正写入数据库,对应rollback可以进行相应的回滚,但是commit后是无法再rollback的。commit() 可以在执行很多sql指令后再一次调用,这样可以适当提升性能。
  二、使用示例:
  安装好了之后,import导入。
  import pymysql
  #创建与数据库的连接。
  sql_conn=pymysql.connect(host='10.39.0.5',port=3306,user='root',passwd='123456',db='db_1')
  #创建游标对象。
  cursor = sql_conn.cursor()
  hire_start = datetime.date(1999, 1, 1)
  hire_end = datetime.date(2016, 12, 31)
  #执行sql语句。
  sql = 'SELECT first_name, last_name, hire_date FROM employees WHERE hire_date BETWEEN %s AND %s'  %(hire_start,hire_end)
  cursor.execute(sql)
  #获取查询结果:
  如果做的是select查询操作的话,在游标对象中execute这个查询语句后,会返回一个结果集。
  返回的这个结果集中,是有指针概念的。
  #one=cursor.fetchone() #只获取结果集中的第一条记录。(获取当前指针所在位置向下的一条记录。)(获取一条结果后,指针会向下移动一条记录)
  #many=cursor.fetchmany(2)#以当前指针位置为基准,从结果集中向下获取几条记录。
  all=cursor.fetchall()#以当前指针位置为基准,一直获取到结果集结束的位置。(也可以理解为获取结果集中所有的结果。)
  scroll 移动指针:
  #cursor.scroll(-1,mode='relative')  # 相对当前位置移动
  #cursor.scroll(2,mode='absolute') # 相对绝对位置移动
  mode为relative时是根据相对位置来移动指针的,整数代表向前移动几行,负数代表向后移动几行。
  mode为absolute时是根据绝对位置来移动指针的,前面的数字为几,就会移动到结果集的第几行。
  !!!更改获取结果的数据类型:
  #更改获取数据结果的数据类型,默认是元组,可以改为字典等:conn.cursor(cursor=pymysql.cursors.DictCursor)
  commit & close:
  对于mysql来说,如果使用支持事务的存储引擎,那么每次操作后,commit是必须的,否则不会真正写入数据库,对应rollback可以进行相应的回滚,但是commit后是无法再rollback的。commit() 可以在执行很多sql指令后再一次调用,这样可以适当提升性能。
  sql_conn.commit() #提交
  cursor.close() #关闭游标
  sql_conn.close() #关闭连接

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-551534-1-1.html 上篇帖子: python_正则表达式 下篇帖子: python每日一练之20170611
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表