python操作mysql(一)原生模块pymysql
一、下载安装
pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同。
下载安装
C:\Users\Administrator>pip install pymysql
Collecting pymysql
Downloading PyMySQL-0.7.-py2.py3-none-any.whl (78kB)
% |████████████▌ | 30kB 266kB/s eta :: % |████████████████▋ | 40kB 125kB/s eta : % |████████████████████▊ | 51kB 156kB/s eta % |█████████████████████████ | 61kB 187kB/s % |█████████████████████████████ | 71kB % |████████████████████████████████| 81kB 233kB/s
Installing collected packages: pymysql
Successfully installed pymysql-0.7.
二、设计用户交互的数据库
首先导入这个模块,之后连接上这个数据库,创建游标,然后设计交互式的操作数据库,最后提交数据,关闭游标,关闭连接
主要用到execute参数
#/usr/bin/env python
import pymysql
#创建连接
conn = pymysql.connect(host="127.0.0.1",port=,user="root",password="",db="db1")
#必须创建游标(游标帮着存储数据,用来操作)
cursor=conn.cursor()
#执行sql,并且返回影响函数,但是数据库还没有变更,也就是没有提交
# effect_row=cursor.execute("update user set username='pyrene'")
# effect_row=cursor.execute("INSERT INTO user(username,password) values('pyren','23')")
# print(effect_row) #打印出受用户注册影响的信息条数 # 交互是让用户输入数据
u=input(">>>")
p=input(">>>")
effect_row=cursor.execute("INSERT INTO user(username,password) values(%s,%s)",(u,p))
#这个是插入多行数据
# effect_row=cursor.executemany("INSERT INTO user(username,password) values(%s,%s)",[("aa","bb"),("cc","dd")])
#提交数据,不然无法保存新建或者修改的数据
conn.commit() #关闭游标
cursor.close()
#关闭连接
conn.close()
三、fetch数据类型
fetchall:获取所有数据,默认的获取数据类型是元祖,如果想要字典类型的数据需要在创建右边的时候在参数里面写入cursor=pymysql.cursor.DictCursor
fetchone:获取第一个数据(类似指针的形式)
fetchmany(size):依次移动(参数个指针)
在fetch数据按照顺序进行,可以使用cursor.scroll(num.mode)来移动游标位置,num如果为正值那么就往"位置"后面移动。如果为负值那么就往"位置"前面移动
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(2,mode='absolute') # 相对绝对位置移动
#/usr/bin/env python
import pymysql
#创建连接
conn = pymysql.connect(host="127.0.0.1",port=,user="root",password="",db="db1")
#这里用来指定游标,让下面的值以字典的形式返回
cursor=conn.cursor(cursor=pymysql.cursors.DictCursor) effect_row=cursor.execute("select * from user where nid>%s order by nid desc" ,(,))
result=cursor.fetchone()#获取第一个数据
print(result)
result=cursor.fetchone()#获取第一个数据
print(result)
result=cursor.fetchone()#获取第二个数据
# result=cursor.fetchmany()#依次挪动(参数)个指针
print(result)
cursor.scroll(-,mode="relative") #把指针移动到当前指针的上一次位置负值往上移动,正值往下移动
result=cursor.fetchone()#获取第一个数据
print(result) #关闭游标
cursor.close()
#关闭连接
conn.close()
四、获取创建数据自增ID
用cursor.lastrowid获取插入数据自增的位置
注意:如果用户用executemany插入多个数据,那么获取的位置为最后一个插入位置的数据
#/usr/bin/env python
import pymysql
#创建连接
conn = pymysql.connect(host="127.0.0.1",port=,user="root",password="",db="db1")
#这里用来指定游标,让下面的值以字典的形式返回
cursor=conn.cursor()
u=input(">>")
p=input(">>")
effect_raw=cursor.execute("insert into user(username,password) values(%s,%s)",(u,p))
conn.commit()
print(cursor.lastrowid)
#关闭游标
cursor.close()
#关闭连接
conn.close()
# >>a
# >>aa
#
python操作mysql(一)原生模块pymysql的更多相关文章
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- Python 操作 MySQL 之 pysql 与 ORM(转载)
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- python接口自动化(三十八)-python操作mysql数据库(详解)
简介 现在的招聘要求对QA人员的要求越来越高,测试的一些基础知识就不必说了,来说测试知识以外的,会不会一门或者多门开发与语言,能不能读懂代码,会不会Linux,会不会搭建测试系统,会不会常用的数据库, ...
- day40:python操作mysql:pymysql模块&SQL注入攻击
目录 part1:用python连接mysql 1.用python连接mysql的基本语法 2.用python 创建&删除表 3.用python操作事务处理 part2:sql注入攻击 1.s ...
- python成长之路【第十三篇】:Python操作MySQL之pymysql
对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...
- mysql数据库----python操作mysql ------pymysql和SQLAchemy
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy 一.pymysql pymsql是Python中操作MySQL的模块,其使用方法和MySQ ...
- Python操作MySQL:pymysql和SQLAlchemy
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- python操作三大主流数据库(1)python操作mysql①windows环境中安装python操作mysql数据库的MySQLdb模块mysql-client
windows安装python操作mysql数据库的MySQLdb模块mysql-client 正常情况下应该是cmd下直接运行 pip install mysql-client 命令即可,试了很多台 ...
- Python 操作 Mysql 模块
一.Python 操作 Mysql 模块的安装 linux: yum install MySQL-python window: http://files.cnblogs.com/files/wupei ...
- 用Python操作MySQL(pymysql)
用python来操作MySQL,首先需要安装PyMySQL库(pip install pymysql). 连接MySQL: import pymysql connect=pymysql.connect ...
随机推荐
- xcode几个常用的快捷键
command + ctrl + e 修改变量的名称:选中某个变量,按下该快捷键,可以批量修改对应的变量名称 command + shift + j 定位到文档导航界面,然后通过上下方向键,可以快 ...
- 利用CFAbsoluteTimeGetCurrent()计算时间差
开发中,遇到计算时间差的问题,利用CFAbsoluteTimeGetCurrent()可以很方便的进行计算 实例: 场景:类似购物车中修改商品数量的功能,如下图所示,要求,修改完的数量,要同步到服务器 ...
- MongoDB在Win10下的安装
原文地址:http://blog.csdn.net/polo_longsan/article/details/52430539 1.下载MongoDB在windows下的安装文件 首先去官网https ...
- 40: Redraiment的走法(不连续最长子字符串)
题目描述 : Redraiment是走梅花桩的高手.Redraiment总是起点不限,从前到后,往高的桩子走,但走的步数最多,不知道为什么?你能替Redraiment研究他最多走的步数吗? 样例输 ...
- php 获取文件加的名称
/*** * 根本平台类型获取文件名 */ function showGetFileName($type,$url){ #判断平台类型 if($type=='android'||$type=='ios ...
- keil中使用Astyle格式化你的代码的方法2篇合
关于Astyle Astyle 的全称是Artistic Style的简称,是一个开源的源代码格式化工具,可以对C,C++,C#以及Java等编程语言的源代码进行缩进.格式化.美化.Home Page ...
- 识别不了socket未知的名称或服务
个人博客地址:https://blog.sharedata.info/ socket 链接导致java.net.UnknownHostException: R1-T1-N6: R1-T1-N6: 未知 ...
- xcode编译时,有第三方库时,编译设置build active architecture only问题
本文转载至 http://blog.csdn.net/ysysbaobei/article/details/16371263 编译静态库 1.http://blog.csdn.net/dengdeng ...
- maven;tomcat配置
[说明]今天呀,上午刚刚打算写javaweb项目,服务器就出现了问题,就花了点时间搞定了:下午听老大说了任务的大致内容和意义,收获颇多:晚上去服务器上部署了maven,听说可以实现热部署 一:今天完成 ...
- 【BZOJ3720】Gty的妹子树 块状树
[BZOJ3720]Gty的妹子树 我曾在弦歌之中听过你,檀板声碎,半出折子戏.舞榭歌台被风吹去,岁月深处尚有余音一缕……Gty神(xian)犇(chong)从来不缺妹子……他来到了一棵妹子树下,发现 ...