python与MySQL
一、python与mysql交互 |
因版本不同python操作mysql有两个模块,python3不再支持MySQL-python,模块使用都一样:
python2.7:MySQL-python
python3:pymysql
安装:
pip install Mysql-python
pip install pymysql
pymysql介绍:
1.执行原生sql语句
#!/usr/bin/env python3
#_*_ coding:utf-8 _*_
#Author:wd
import pymysql
conn=pymysql.connect(host='10.0.0.241',port=3307,user='stu',passwd='1234qwer',db='student')#创建连接
cursor=conn.cursor()#创建游标
try:
#num=cursor.execute("create table student (name CHAR(20),age INT(3),date DAT )")#创建表不需要提交可以生效
num=cursor.execute("insert into student value('wd',22,'1993-05-22')")#执行sql返回受影响的条目数
print(num)
conn.commit() #pymysql默认开启了事务,进行数据库更新需要提交
except:
conn.rollback()#出现异常则回滚
cursor.close()#关闭游标
conn.close()#关闭连接
2.批量执行sql
实际是循环调用execute
def executemany(self, query, args):
# type: (str, list) -> int
#!/usr/bin/env python3
#_*_ coding:utf-8 _*_
#Author:wd
import pymysql
conn=pymysql.connect(host='10.0.0.241',port=3307,user='stu',passwd='1234qwer',db='student')#创建连接
cursor=conn.cursor()#创建游标
num=cursor.executemany("insert into student values(%s,%s,%s)",[('jack',22,'1993-01-11'),('tara',18,'1998-03-04')])
#一次性执行操作多条,参数为
print(num)#打印条结果条目
conn.commit() #pymysql默认开启了事务,进行数据库更新需要提交
new_id = cursor.lastrowid#如果是自增id,该方法可以获取到插入完成以后的ID
print(new_id)
cursor.close()#关闭游标
conn.close()#关闭连接
3.查询操作:fetch
#!/usr/bin/env python3
#_*_ coding:utf-8 _*_
#Author:wd import pymysql
conn=pymysql.connect(host='10.0.0.241',port=3307,user='stu',passwd='1234qwer',db='student')#创建连接
cursor=conn.cursor()#创建游标
cursor = conn.cursor()
cursor.execute("select * from student") # 获取第一行数据
row_1=cursor.fetchone()
print(row_1) # 获取前n行数据
row_2=cursor.fetchmany(3)
print(row_2)
# 获取所有数据
# row_3=cursor.fetchall()
cursor.scroll(0,mode='absolute')#将游标重新移至开始处
row_new=cursor.fetchone()
print(row_new)
cursor.close()#关闭游标
conn.close()#关闭连接
TIPS:使用fetchone获取数据如同读取文件一样,如果读一行游标会下移一行,
可以使用cursor.scroll(num,mode)来移动游标位置,如:
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(2,mode='absolute') # 相对绝对位置移动
4.设置fetch获取数据类型
默认使用fetch查询结果是tuple,我们还可以设置获取的数据返回时dict
#!/usr/bin/env python3
#_*_ coding:utf-8 _*_
#Author:wd import pymysql conn = pymysql.connect(host='10.0.0.241', port=3307, user='stu', passwd='1234qwer', db='student')
# 游标设置为字典类型
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)#设置游标类型为字典
r = cursor.execute("select * from student")
res = cursor.fetchone()
print(res)
cursor.close()
conn.close()
结果:
{'name': 'wd', 'age': 22, 'date': datetime.date(1993, 5, 22)}
python与MySQL的更多相关文章
- 【初学python】使用python连接mysql数据查询结果并显示
因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 使用 python 管理 mysql 开发工具箱 - 1
Mysql 是一个比较优秀的开源的数据库,很多公司都在使用.作为运维人员,经常做着一些重复性的工作,比如创建数据库实例,数据库备份等,完全都可以使用 python 编写一个工具来实现. 一.模块 Co ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- Python操作Mysql数据库时SQL语句的格式问题
一.概述 近日使用Python对Mysql数据库进行操作,遇到SQL语句死活出问题的情况.由于最初没有将异常打印出来,一直不知道原因.随后,将异常打印出来之后,通过异常信息,对代码进行修改.最终,成功 ...
- Python操作Mysql之基本操作
pymysql python操作mysql依赖pymysql这个模块 下载安装 pip3 install pymysql 操作mysql python操作mysql的时候,是通过”游标”来进行操作的. ...
- python对Mysql操作和使用ORM框架(SQLAlchemy)
python对mysql的操作 Mysql 常见操作 数据库操作 创建数据库 create database fuzjtest 删除数据库 drop database fuzjtest 查询数据库 s ...
- python操作mysql总结
Windows系统,python环境搭建. 下载并安装python2.7.11 https://www.python.org/downloads/ 下载并安装python的mysql包: http:/ ...
- python使用mysql数据库
一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...
随机推荐
- Python的特性(property)
特性(property) 特性是对类的一个特定属性进行拦截,在操作这个属性时,执行特定的函数,对属性的操作进行拦截. 特性的实现 特性使用property类来实现,也可以使用property装饰器实现 ...
- Linux(Cent OS7.2)下启动停止memcached方法及ps命令使用讲解
Linux下,以Cent OS7.2为例,安装memcached后的启动方法很简单,这里我们使用yum源安装. 首先查找yum源版本库的memchaced安装包, yum list | grep me ...
- [Spark性能调优] 源码补充 : Spark 2.1.X 中 Unified 和 Static MemoryManager
本课主题 Static MemoryManager 的源码鉴赏 Unified MemoryManager 的源码鉴赏 引言 从源码的角度了解 Spark 内存管理是怎么设计的,从而知道应该配置那个参 ...
- 终端登入mysql
mysql -u 用户名 -p 输入密码 1. 给root用户添加密码,密码为root mysqladmin -u root -p password root 2. 通过终端连接ser ...
- 简易 bokeh 图像散景效果算法实现
bokeh百度百科的解释 摄影镜头光圈大小和拍摄距离决定了拍摄时的景深,相对于焦点位置,焦点前与焦点后的被拍摄物体会显得模糊,这个模糊区域被称为焦外.焦外具体的模糊程度还受到镜头中镜片单体和组合的物理 ...
- java_web学习(四) Date的理解与应用
1.日期 1.1 日期的本质: 是一个长整型long,最小单位是毫秒 1.2 日期的格式: 本次运用子类simpleDateformat定义格式 1.3 日期的运算 本次运用calendar类来的ad ...
- 在做vue计算属性,v-for处理数组时遇到的一个bug
bug: You may have an infinite update loop in a component render function 无限循环 需要处理的数组(在 ** ssq **里): ...
- 【CSS3 transform属性和过渡属性详解】
CSS3transform属性详解 transform字面上就是变形,改变的意思. 在CSS3中transform主要包括以下几种:旋转rotate.扭曲skew.缩放scale和移动translat ...
- A very hard Aoshu problem(dfs或者数位)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=4403 A very hard Aoshu problem Time Limit: 2000/1000 ...
- 1.移植3.4内核-分析内核启动过程,重新分区,烧写jffs2文件系统
1.在上章-移植uboot里.我们来分析下uboot是如何进入到内核的 首先,uboot启动内核是通过bootcmd命令行实现的,在我们之前移植的bootcmd命令行如下所示: bootcmd=nan ...