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 ...
随机推荐
- Docker URL REST API访问设置
Docker daemon 绑定到该端口上. 默认情况下,docker daemon使用unix socket(unix:///var/run/docker.sock) 1.先停止docker dae ...
- Git常用统计命令
上周要做个汇报PPT涉及到个人对项目贡献量,在网上搜集了些常用统计命令,总结如下: 1.统计代码提交量(包括添加.删除): git log --author="$(gitconfig--ge ...
- C程序设计Week12晚上练习
本周仅仅进行一个程序,曾经的一个程序. 自己定义例如以下函数,输入n(n<46)个学生的姓名和成绩,顺序输出这n个学生的姓名和成绩,并输出最高成绩的姓名和成绩.预习struct结构体,思考怎样改 ...
- 利用$(window).resize()实现窗口大小自适应宽度问题
© 版权声明:本文为博主原创文章,转载请注明出处 问题描述:利用iframe做页面引入,用$(window).resize()作自适应:结果窗口变小时,利用$(window).width()获取到的宽 ...
- tornado 初学
tornado第一个例子 import tornado.ioloopimport tornado.web class MainHandler(tornado.web.RequestHandler): ...
- 【问题记录】web项目访问时出现404
请一定检查一下项目的Context root是否是你访问时使用的. Context root设置为/时,可以直接用ip+端口访问. Context root设置为项目名的,访问时请带上项目名. 设置方 ...
- 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。
// ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> ...
- Redis源码阅读-Adlist双向链表
Redis源码阅读-链表部分- 链表数据结构在Adlist.h Adlist.c Redis的链表是双向链表,内部定义了一个迭代器. 双向链表的函数主要是链表创建.删除.节点插入.头插入.尾插入. ...
- ThinkPHP3.1URL分发BUG修正
请先留意以下PHP脚本 PHP脚本A(http://127.0.0.1:8110/test.php): $url = 'http://127.0.0.1:8110/demo.php'; //curl请 ...
- excel表格系列
MicroSoft Excel表格系列问题 1.excel表格修改默认行高 2.[Excel技巧]Excel实现部分保护技巧