Python操作Mysql之基本操作
pymysql
python操作mysql依赖pymysql这个模块
下载安装
pip3 install pymysql
操作mysql
python操作mysql的时候,是通过”游标”来进行操作的。
1、创建链接
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1')
分析:
host:表示链接的域名 port:链接的额端口 user:链接的数据库用户 passwd:数据库密码 db:要链接的表
2、创建游标
cursor = conn.cursor()
3、执行SQL,并返回影响的行数
effect_row = cursor.execute("mysql语句")
说明:
1、括号中接收的是纯mysql语句。
2、返回的你执行的sql语句在数据库中影响的行数
例子:
effect_row = cursor.execute("update hosts set host = '1.1.1.2'")
使用占位符:
effect_row = cursor.execute("insert into tb1(nid,name,...) values(%s,%s,...)",(1,'haha',...))使用占位符,同时支持多条数据增加:
- execute改为executemany
- 后面格式化数据的时候,使用列表的方式,里面每次的操作用元组的方式包裹,每项数据间用逗号”,”;隔开。
effect_row = cursor.executemany("insert into tb1(nid,name)values(%s,%s)", [(1,'haha'),(2,'xxx')])
4、提交数据
conn.commit()
注意:
数据必须提交,不然无法被保存。
5、关闭游标
cursor.close()
6、关闭链接
conn.close()
操作mysql补充
当数据库表打开了自动递增,我们增加的数据可以不用填写编号,数据库为我们每次添加的数据添加一个id;二这个id我们在增加数据操作的时候,是可以获取的。
代码:
new_id = cursor.lastrowid
说明:
获取的代码要写在commit()后面,在关闭操作的前面。
问题:上面的操作是一条,获取的是对应的id,但是当增加的数据多条的时候,获取的结果?
当有多条数据的时候,获取的id是最后一条数据的。
获取mysql数据
因为是获取数据,并不对数据进行改动,所以此时可以不用执行,commit()
1、获取单条数据
row_1 = cursor.fetchone()
2、获取所有的数据
row_3 = cursor.fetchall()
3、获取前n行数据
row_2 = cursor.fetchmany(3)
说明:
1、python获取数据的时候,也是通过游标来进行数据定位的。
2、这里的单条数据获取,和我们迭代器中的next很像。
特殊:
我们操作单数数据,操作一条数据,游标就会往后移一位,执行多条fetchone()的话,获取数据库的数据,是依次往下获取的。
执行取前n行数据的时候,比如:fetchmany(3)就相当于执行了3条fetchone()
注:在fetch数据时按照顺序进行,可以使用cursor.scroll(num,mode)来移动游标位置
- cursor.scroll(1,mode='relative') # 相对当前位置移动
- cursor.scroll(1,mode=’absolute’) # 相对绝对位置移动
4、fetch的数据类型
关于默认获取的数据是元祖类型,如果想要或者字典类型的数据,即
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='123', db='t1') # 游标设置为字典类型,注意括号中的代码。
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
r = cursor.execute("call p1()") result = cursor.fetchone() cursor.close()
conn.close()
Python操作Mysql之基本操作的更多相关文章
- 06 python操作MySQL和redis(进阶)
python操作mysql.redis 阶段一.mysql事务 主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息, ...
- 利用Python操作MySQL数据库
前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle.MySQL.SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库. 本人环境:Python 3.7.0 ...
- Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- 练习:python 操作Mysql 实现登录验证 用户权限管理
python 操作Mysql 实现登录验证 用户权限管理
- Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
- python成长之路【第十三篇】:Python操作MySQL之pymysql
对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...
- python操作mysql数据库的相关操作实例
python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...
- Python 操作 MySQL 之 pysql 与 ORM(转载)
本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...
- Python开发【第十九篇】:Python操作MySQL
本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...
随机推荐
- Xcode7--免证书真机调试
Xcode7之前,想要真机调试,必须花99刀购买开发者账号,而且步骤繁琐,需要下载证书.随着Xcode7的推出,大幅度的简化了真机调试的步骤,对ios开发工作者和正在学习ios开发的众多码农们,可以说 ...
- Java调用solrj5.5.3接口,查询数据
前期准备 搭建solr服务 参考上一篇,搭建solr搜索服务. 添加依赖 maven工程的话,添加如下依赖, <!-- https://mvnrepository.com/artifact/or ...
- MySQL更改数据库数据存储目录
MySQL数据库默认的数据库文件位于/var/lib/mysql下,有时候由于存储规划等原因,需要更改MySQL数据库的数据存储目录.下文总结整理了实践过程的操作步骤. 1:确认MySQL数据库存储目 ...
- python 常用模块之os、sys、shutil
目录: 1.os 2.sys 3.shutil 一.os模块 说明:os模块是对操作系统进行调用的接口 os.getcwd() #获取当前工作目录,即当前python脚本工作的目录路径 os.chdi ...
- MongoDB学习笔记~为IMongoRepository接口更新指定字段
回到目录 对于MongoDB来说,它的更新建议是对指定字段来说的,即不是把对象里的所有字段都进行update,而是按需去更新,这在性能上是最优的,这当然也是非常容易理解的,我们今天要实现的就是这种按需 ...
- BCP笔记整理(二)
BCP的基础用法可以参考上一篇:http://www.cnblogs.com/Gin-23333/p/5489889.html 这篇是补充一些有可能会用到,但是出场几率并不算大的几个参数 1.首先是 ...
- Spark调度管理(读书笔记)
Spark调度管理(读书笔记) 转载请注明出处:http://www.cnblogs.com/BYRans/ Spark调度管理 本文主要介绍在单个任务内Spark的调度管理,Spark调度相关概念如 ...
- java实现基于activeMQ的消息推送
一. 准备工作 1. 点击此下载相关的第三方jar包,并在工程中引用 二. spring配置文件:application.xml <?xml version="1.0" en ...
- 【Windows编程】系列第九篇:剪贴板使用
上一篇我们学习了常见的通用对话框,本篇来了解剪贴板的使用,它常用于复制粘贴功能. 剪贴板是Windows最早就加入的功能,由于该功能非常实用,我们几乎每天都会使用到.通过剪贴板,我们就可以将数据从一个 ...
- 【转帖】分享一个迅为4412开发板OTG烧录批处理文件
平台:iTOP-4412开发板 Bat 功能: 1.可以分条的执行烧录,不需要每次烧录都去复制命令 2.可以批量烧录 开发板系统烧录批处理文件,请将此文件放置在fastboot程序同目录下,下载地址: ...