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 ...
随机推荐
- C# 接口的隐式与显示实现说明
以前在用到接口时,从来没注意到接口分为隐式实现与显示实现.昨天在浏览博客时看到相关内容,现在根据自己的理解记录一下,方便日后碰到的时候温习温习. 通俗的来讲,"显示接口实现"就是使 ...
- SpringMVC 学习笔记(十一) SpirngMVC执行流程
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYTY3NDc0NTA2/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA ...
- asp.net core 系列之Response caching(1)
这篇文章简单的讲解了response caching: 讲解了cache-control,及对其中的头和值的作用,及设置来控制response caching; 简单的罗列了其他的缓存技术:In-me ...
- 题外话:计算密集型 vs IO密集型
我们把任务分为计算密集型和IO密集型,erlang作为IO密集型的语言,适合网关等相关的场景,而对计算达到某一量级后,可能处理效率下降的很明显. erlang不适合数值计算.erlang是解释型的,虽 ...
- 刨根问底 HTTP 和 WebSocket 协议(上)
HTTP vs WebSocket 那天和boss聊天,不经意间提到了Meteor,然后聊到了WebSocket,然后就有了以下对话,不得不说,看问题的方式不同,看到的东西也会大不相同. A:Mete ...
- GoogleMap-------API KEY申请流程
前言:此文是关于Google Maps Android API v2 KEY的申请流程介绍. 1.首先访问https://code.google.com/apis/console/?pli=1#pro ...
- ios 10 sticker pack application
看了WWDC2016直播,我们发现变得谨慎而开放的苹果在新一版四大平台系统中展示了很多变化,当然重中之重还是伟大的iOS.通过试用iOS10beta版,除了长大了的更强大的Siri主要感受到iMess ...
- mysql慢查询日志分析工具(python写的)
D:\NormalSoftware>python mysql_filter_slow_log.py ./mysql1-slow.log --no-duplicates --sort-avg-qu ...
- K-Piggy-Bank
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- dubbo启动报错多个资源争缓存问题
Dubbo Failed to save registry store file, cause: Can not lock the registry cache file 目录(?)[+] 启动的Du ...