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 ...
随机推荐
- ASP.NET CORE RAZOR :将搜索添加到 Razor 页面应用
https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/razor-pages/search 本文档中,将向索引页面添加搜索功能以实现按“流派”或 ...
- Android开发之Conversion to Dalvik format failed问题解决
[2014-4-21 21:28:06 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the ...
- 写sql语句统计各个学生各科成绩(case when用法)
尊重原创:http://blog.csdn.net/love_java_cc/article/details/78268326 有如下一张表score: 建表语句: CREATE TABLE `sco ...
- hbase的数据模型
hbase类似bigTable是一个分布式的数据库,它是一个稀疏的,长期存储的,多维的,排序的映射表,这张表的索引是行关键字,列关键字,时间戳.hbase中的数据都是字符串,没有类型. ...
- 下载并导出数据到execl中
下载poi-3.6-20091214.jar.下载地址例如以下: http://download.csdn.net/detail/evangel_z/3895051 1.jsp <button ...
- Create React App
Facebook开源了React前端框架(MIT Licence),也同时提供了React脚手架 - create-react-app. create-react-app遵循约定优于配置(Coc)的原 ...
- delphi 无边框窗体常见问题
实现无边框窗体很简单,直接将窗体的BorderStyle属性设置为bsNone即可.但是这样会引起2个问题: 1.在xp系统下,任务栏鼠标右键点击无法弹出菜单 解决办法:在FormShow中加入这个过 ...
- [效果不错] nginx 高并发参数配置及linux内核参数优化,完整的内核优化设置。PHP-FPM高负载解决办法。
背景:对vps小资源的实践中对,https://justwinit.cn/post/7536/ 的再优化,再实践,再优化,特别是Nginx,PHP,内核: 零)Nginx: error_log /da ...
- dede后台title怎么修改的?去掉XXXX-织梦内容管理系统V5.7
dede后台title怎么修改的? 去掉XXXX-织梦内容管理系统V5.7 打开include/common.inc.php的文件. $cfg_version = 'V57_UTF8_SP1';(这是 ...
- JSP 与 PHP、ASP、ASP.NET 等语言类似,运行在服务端的语言。
JSP(全称Java Server Pages)是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成 HTML.XML 或其他格式文档 ...