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之基本操作的更多相关文章

  1. 06 python操作MySQL和redis(进阶)

    python操作mysql.redis 阶段一.mysql事务 主要用于处理操作量大,复杂度高的数据.比如说,在人员管理系统中,你删除一个人员,你即需要删除人员的基本资料,也要删除和该人员相关的信息, ...

  2. 利用Python操作MySQL数据库

    前言 在工作中,我们需要经常对数据库进行操作,比如 Oracle.MySQL.SQL Sever 等,今天我们就学习如何利用Python来操作 MySQL 数据库. 本人环境:Python 3.7.0 ...

  3. Python(九) Python 操作 MySQL 之 pysql 与 SQLAchemy

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  4. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  5. Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

  6. python成长之路【第十三篇】:Python操作MySQL之pymysql

    对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎 ...

  7. python操作mysql数据库的相关操作实例

    python操作mysql数据库的相关操作实例 # -*- coding: utf-8 -*- #python operate mysql database import MySQLdb #数据库名称 ...

  8. Python 操作 MySQL 之 pysql 与 ORM(转载)

    本文针对 Python 操作 MySQL 主要使用的两种方式讲解: 原生模块 pymsql ORM框架 SQLAchemy 本章内容: pymsql 执行 sql 增\删\改\查 语句 pymsql ...

  9. Python开发【第十九篇】:Python操作MySQL

    本篇对于Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymsql pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb ...

随机推荐

  1. 《javascript权威指南》读书笔记——第二篇

    <javascript权威指南>读书笔记——第二篇 金刚 javascript js javascript权威指南 今天是今年的196天,分享今天的读书笔记. 第2章 词法结构 2.1 字 ...

  2. 敏捷遇上UML—软创基地马年大会(广州站 2014-4-19)

        我们将在广州为您奉献高端知识大餐,当敏捷遇上UML,会发生怎样的化学作用呢?首席专家张老师将会为您分享需求分析及软件设计方面的最佳实践,帮助您掌握敏捷.UML及两者相结合的实战技巧. 时间:2 ...

  3. Spring 4 集成Apache CXF开发JAX-RS Web Service

    什么是JAX-RS 在JSR-311规范中定义,即Java API for RESTful Web Services,一套Java API,用于开发 RESTful风格的Webservice. 工程概 ...

  4. 看懂Oracle执行计划

    最近一直在跟Oracle打交道,从最初的一脸懵逼到现在的略有所知,也来总结一下自己最近所学,不定时更新ing- 一:什么是Oracle执行计划? 执行计划是一条查询语句在Oracle中的执行过程或访问 ...

  5. SQL Server 聚合函数算法优化技巧

    Sql server聚合函数在实际工作中应对各种需求使用的还是很广泛的,对于聚合函数的优化自然也就成为了一个重点,一个程序优化的好不好直接决定了这个程序的声明周期.Sql server聚合函数对一组值 ...

  6. ORACLE 解锁、找回表和找回程序语句

    最近在工作中同事们经常遇到锁表.误删表和程序覆盖的情况,现总结下遇到这三种情况的解决方案: 1.暴力删除锁表 当表被某些语句占用无法停止,或者出现事物阻塞的情况下,需要手动删除锁(万不得已的情况下用) ...

  7. DIV+CSS规范命名大全

    网页制作中规范使用DIV+CSS命名规则,可以改善优化功效特别是团队合作时候可以提供合作制作效率,具体DIV CSS命名规则CSS命名大全内容篇. 常用DIV+CSS命名大全集合,即CSS命名规则 D ...

  8. Transaction详细介绍

    闲暇之时浏览技术站点时,看到了对事物写的很好的一篇文章,看完之后感觉讲的实在是太好了. 原文地址:http://my.oschina.net/huangyong/blog/160012 Transac ...

  9. 理解CSS相对定位和固定定位

    × 目录 [1]相对定位 [2]固定定位 前面的话 一般地,说起定位元素是指position不为static的元素,包括relative.absolute和fixed.前面已经详细介绍过absolut ...

  10. WPF Prism

    简介   图解   参考 Using the Model-View-ViewModel Pattern