pymysql

python操作mysql依赖pymysql这个模块

下载安装

pip3 install pymysql

操作mysql

python操作mysql的时候,是通过”游标”来进行操作的。

1、创建链接

conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')

分析:

  • host:表示链接的域名
  • port:链接的额端口
  • user:链接的数据库用户
  • passwd:数据库密码
  • db:要链接的表

2、创建游标

cursor = conn.cursor()

3、执行SQL,并返回影响的行数

effect_row = cursor.execute("mysql语句")

说明:

1、括号中接收的是纯mysql语句。

2、返回的你执行的sql语句在数据库中影响的行数

例子:

effect_row = cursor.execute("update hosts set host = '1.1.1.2'")

使用占位符:

 effect_row = cursor.execute("insert into tb1(nid,name,...) values(%s,%s,...)",(1,'haha',...))

使用占位符,同时支持多条数据增加:

  • execute改为executemany
  • 后面格式化数据的时候,使用列表的方式,里面每次的操作用元组的方式包裹,每项数据间用逗号”,”;隔开。
 effect_row = cursor.executemany("insert into tb1(nid,name)values(%s,%s)", [(1,'haha'),(2,'xxx')])

4、提交数据

conn.commit()

注意:

数据必须提交,不然无法被保存。

5、关闭游标

cursor.close()

6、关闭链接

conn.close()

操作mysql补充

当数据库表打开了自动递增,我们增加的数据可以不用填写编号,数据库为我们每次添加的数据添加一个id;二这个id我们在增加数据操作的时候,是可以获取的。

代码:

new_id = cursor.lastrowid

说明:

获取的代码要写在commit()后面,在关闭操作的前面。

问题:上面的操作是一条,获取的是对应的id,但是当增加的数据多条的时候,获取的结果?

当有多条数据的时候,获取的id是最后一条数据的

获取mysql数据

因为是获取数据,并不对数据进行改动,所以此时可以不用执行,commit()

1、获取单条数据

row_1 = cursor.fetchone()

2、获取所有的数据

row_3 = cursor.fetchall()

3、获取前n行数据

row_2 = cursor.fetchmany(3)

说明:

1、python获取数据的时候,也是通过游标来进行数据定位的。

2、这里的单条数据获取,和我们迭代器中的next很像。

特殊:

我们操作单数数据,操作一条数据,游标就会往后移一位,执行多条fetchone()的话,获取数据库的数据,是依次往下获取的。

执行取前n行数据的时候,比如:fetchmany(3)就相当于执行了3条fetchone()

注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置

    • cursor.scroll(1,mode='relative')  # 相对当前位置移动
    • cursor.scroll(1,mode=’absolute’)  # 相对绝对位置移动

4、fetch的数据类型

关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') # 游标设置为字典类型,注意括号中的代码。
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
r = cursor.execute("call p1()") result = cursor.fetchone() cursor.close()
conn.close()

最新文章

  1. android Dialog实例
  2. 与考试相关的JS方法
  3. WPF,解决Listbox,按住ListboxItem向下拖出Listbox,横向滚动条跑到最后。
  4. 测试的程序 test.php,保存放IIS的根目录下
  5. ZooKeeper应用场景介绍
  6. 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
  7. 在windows下编辑shell脚本注意点
  8. WebApi client 的面向切面编程
  9. JavaAndroid开发部分API
  10. 课外知识----ini
  11. Docker入门1------概念和安装
  12. Hadoop 管理工具HUE配置-Hive配置
  13. php 使用table方式导出excel文件
  14. 精通CSS 第1章
  15. Ogre1.9 源码编译
  16. 使用Python2.7 POST 数据到 onenet 平台
  17. 搭建jenkins
  18. python学习,day4:生成器
  19. powerdesigner中把表的描述复制到Name
  20. Getting started with Chrome Dev Editor

热门文章

  1. C语言关于利用sscanf实现字符串相加减
  2. Linux命令学习总结: file命令
  3. asp.net signalR 专题—— 第四篇 模拟RPC模式的Hub操作
  4. MSDB数据库置疑的解决方法
  5. SQL Server DAC——专用管理员连接
  6. 【转】jquery 中scrollTop在Firefox下不起作用
  7. win7升win10,初体验
  8. 用修改hosts的方式来屏蔽某些网站
  9. 一个完整的TCP连接
  10. Caffe源码解析2:SycedMem