pymysql模块是python操作数据库的一个模块

connect()创建数据库链接,参数是连接数据库需要的连接参数
使用方式:
  模块名称.connect()
  参数:
  host=数据库ip
  port=数据库端口
  user=数据库用户名
  passwd=数据库密码
  db=数据库名称

  charset=数据库编码

cursor()创建数据库操作游标,无参
使用方式:
  游标变量.cursor()

execute()操作数据库,参数1 sql语句,参数2 字符串占位符变量
使用方式:
  游标变量.execute()

execute()操作数据库会返回,操作数据库后影响的行数,我们可以以此判断是否操作成功

commit()提交数据到数据库,无参
使用方式:
  创建数据库链接变量.commit()

close()关闭游标
使用方式:
  游标变量.close()

close()关闭数据库
使用方式:
  创建数据库变量.close()

__author__ = 'zjl'
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor=conn.cursor()
# 创建游标 # 执行SQL,并返回收影响行数
v=cursor.execute("select * from class")
print(v)
effect_row = cursor.execute("INSERT INTO shirts(name) VALUES('adc8868')")#添加一条数据
print(effect_row)
# 提交,不然无法保存新建或者修改的数据
conn.commit() cursor.close()# 关闭游标
conn.close()# 关闭连接

execute(sql语句%s,(占位符变量))执行sql语句时的占位符使用

execute()操作一条数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='cshi')
# 创建游标
cursor = conn.cursor() # 执行SQL,并返回收影响行数
effect_row = cursor.execute("INSERT INTO shirts(yhm,mim) VALUES(%s,%s)",('adc279819',279819)) #添加一条数据
print(effect_row) #返回影响行数 # 提交,不然无法保存新建或者修改的数据
conn.commit() # 关闭游标
cursor.close()
# 关闭连接
conn.close()

查询数据库数据

注意:操作数据库的增、删、改都需要commit()提交数据到数据库,而查询是不需要commit()的

fetchall()获取游标查询数据库里的数据,返回元祖
使用方式:
  游标变量.fetchall()

查询数据库内容时更改游标返回字典类型数据【推荐】

返回字典类型将数据库表的列(字段)作为键返回

默认查询数据时游标返回的元祖类型,如果想返回字典类型就需要设置游标

cursor=pymysql.cursors.DictCursor设置游标返回字典类型数据,当做参数写在execute()里,execute(cursor=pymysql.cursors.DictCursor)

#!/usr/bin/python
# -*- coding:utf-8 -*-
import pymysql # 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="",database="s17day11db",charset='utf8')
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchall()
print(result) cursor.close()
conn.close()

移动游标里数据指针获取对应数据

scroll(1,mode='relative')相对当前位置移动
  使用方式:
  游标变量.scroll(1,mode='relative')
  第一个参数正数相对当前位置向下移动数值对应指针,第一个负数相对当前位置向上移动数值对应指针

scroll(2,mode='absolute')相对绝对位置移动
  使用方式:
  游标变量.scroll(2,mode='absolute')
  将指针位置移动到第一个参数数值对应指针

相对当前位置移动获取数据mode='relative'

import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchone()
result = cursor.fetchone()
# result=cursor.fetchone()
print(result)#打印应该是第2条
cursor.scroll(-2,mode='relative') #调整指针,相对当前位置向上移动2位 (第一个参数正数相对当前位置向下移动数值对应指针)
result = cursor.fetchone()
print(result)#调整指针 打印的位置
conn.commit()# 提交,不然无法保存新建或者修改的数据
cursor.close()
conn.close()
# {'sid': 2, 'sname': '陈涛', 'class_id': 1, 'gender': '男'}
# {'sid': 1, 'sname': '刘浩', 'class_id': 1, 'gender': '男'}

相对绝对位置移动mode='absolute'

import pymysql
conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='mysql123',database="day17",charset="utf8")
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)
# 受影响的行数
v = cursor.execute('select * from student')
result = cursor.fetchone()
result = cursor.fetchone()
result=cursor.fetchone()
print(result)#打印应该是第三条
cursor.scroll(3,mode='absolute')#调整指针,相对绝对位置移动3位
result = cursor.fetchone()
print(result)
conn.commit()# 提交,不然无法保存新建或者修改的数据
cursor.close()
conn.close()
{'sid': 3, 'class_id': 2, 'sname': '吴一飞', 'gender': '男'}
{'sid': 4, 'class_id': 2, 'sname': '姜浩', 'gender': '男'}

添加数据库时获取到添加数据的自增id

lastrowid获取添加数据时的自增id
使用方式:
  游标变量.lastrowid
注意:如果是添加的多条数据,获取到的自增id是最后一条的自增id

import pymysql

# 获取数据
conn = pymysql.Connect(host='192.168.12.89',port=3306,user='root',password="",database="s17day11db",charset='utf8')
cursor = conn.cursor() cursor.execute('insert into class(caption) values(%s)',['新班级'])
conn.commit()
new_class_id = cursor.lastrowid # 获取新增数据自增ID cursor.execute('insert into student(sname,gender,class_id) values(%s,%s,%s)',['李杰','男',new_class_id])
conn.commit() cursor.close()
conn.close()

MySQL数据库-pymysql模块操作数据库的更多相关文章

  1. 第二百七十九节,MySQL数据库-pymysql模块操作数据库

    MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...

  2. 利用PyMySQL模块操作数据库

    连接到数据库 import pymysql # 创建链接得到一个链接对象 conn = pymysql.Connect( host="127.0.0.1", # 数据库服务器主机地 ...

  3. 基于Python的接口自动化实战-基础篇之pymysql模块操作数据库

    引言 在进行功能或者接口测试时常常需要通过连接数据库,操作和查看相关的数据表数据,用于构建测试数据.核对功能.验证数据一致性,接口的数据库操作是否正确等.因此,在进行接口自动化测试时,我们一样绕不开接 ...

  4. pymysql模块操作数据库

    pymysql模块是python操作数据库的一个模块   connect()创建数据库链接,参数是连接数据库需要的连接参数 使用方式: 模块名称.connect() 参数: host=数据库ip po ...

  5. 调用pymysql模块操作数据库

    1.创建数据库表: def create_table(tb_name): import pymysql#导入模块 #连接数据库 db = pymysql.Connect(','zabbix_db') ...

  6. pymysql模块操作数据库及连接报错解决方法

    import pymysql sql = "select host,user,password from user" #想要执行的MySQL语句 #sql = 'create da ...

  7. 第二百八十九节,MySQL数据库-ORM之sqlalchemy模块操作数据库

    MySQL数据库-ORM之sqlalchemy模块操作数据库 sqlalchemy第三方模块 sqlalchemysqlalchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API ...

  8. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  9. MySQL之pymysql模块

    MySQL之pymysql模块   import pymysql #s链接数据库 conn = pymysql.connect( host = '127.0.0.1', #被连接数据库的ip地址 po ...

随机推荐

  1. FJUT3701 这也是一道数论题(线段树)题解

    Problem Description 好久没出数据结构题,现在赶紧来做道数据结构题热热身 小q现在要去银行,他有个很厉害的bug能看到前面排队的人.假如当前有人正在办理业务,那么肯定要等待前一个人完 ...

  2. 【HNOI 2018】排列

    Problem Description 给定 \(n\) 个整数 \(a_1, a_2, \ldots , a_n(0 \le a_i \le n)\),以及 \(n\) 个整数 \(w_1, w_2 ...

  3. Apache Solr入门教程(初学者之旅)

    Apache Solr入门教程(初学者之旅) 写在前面:本文涉及solr入门的各方面,建议边思考边实践,相信能帮助你对solr有个清晰全面的了解并能简单实用. 在Apache Solr初学者教程的这个 ...

  4. VXLAN, 一种叠加在L3网络上的L2网络

    这几天看了下RFC7348,顺便翻译了一下,根据自己理解做了注解 虚拟化及租户隔离 服务器虚拟化增加了对物理网络基础设施的需求,服务器有多个虚机,要求交换机支持更大的MAC地址表. 在数据中心场景下, ...

  5. WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! --主机密钥验证失败

    1.错误出现在更换服务器操作系统后,使用ssh指令连接服务器时报错:ECDSA主机密钥发生改变,导致主机密钥验证失败! 2.解决方式一 使用指令:$ ssh-keygen -R  主机IP 如:$ s ...

  6. ranch流程处理图

    ranch是开发服务端管理模板,这个模板不大,写的很经典,方便并发管理,而且性能很优秀~~ 其中比较优秀的就有cowboy~~ 看了一下ranch的源码(版本v1.2.1 下载链接https://gi ...

  7. Matlab:导数边界值的有限元(Galerkin)法

    tic; % this method is transform from Galerkin method %also call it as finit method %is used for solv ...

  8. 基础模块 网络连接检查 js

    //无对象则加载 if (typeof Base == "undefined") Base = function() {} // 获取时间对象的基本方法 Base.prototyp ...

  9. python -- 面向对象-成员

    1.成员       在类中,你能写的所有内容都是类的成员   2.变量          1.实例变量:由对象去访问的变量,一般使用是  对象 . 属性 class Person: def __in ...

  10. Python—字符串的操作

    字符串的操作 变量: 变量只能是 字母,数字或下划线的任意组合,但首个字符不能为数字,且不能有空格 以下关键字不能声明为变量: and ,as, assert, break ,class ,conti ...