MySQL数据库-pymysql模块操作数据库

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()

向数据库添加一条数据

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

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

execute()操作一条数据

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

executemany(sql语句,[(占位符变量),(占位符变量)])执行sql语句时的占位符使用

executemany()操作多条数据

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi')
# 创建游标
cursor = conn.cursor()# 执行SQL,并返回收影响行数
effect_row = cursor.executemany("INSERT INTO db1(yhm,mim) VALUES(%s,%s)",[('a1',123),('a2',456),('a3',789)])
print(effect_row)   #返回影响行数# 提交,不然无法保存新建或者修改的数据
conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

查询数据库数据

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

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor()# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchall()   #获取游标里的数据
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

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

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

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

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchall()   #获取游标里的数据
print(shuju)# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

fetchone()获取游标里第一条数据,如果多次执行fetchone()就依次获取数据
使用方式:
  游标变量.fetchone()

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone()   #获取游标里第一条数据
print(shuju)# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

fetchmany()获取游标里,指定条数据,参数是要获取数据的条数
使用方式:
  游标变量.fetchmany(3)

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchmany(3)   #获取游标里,指定条数据
print(shuju)# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

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

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

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

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone()   #获取游标里第一条数据,指针在第一个位置
shuju = cursor.fetchone()   #指针在第二个位置
shuju = cursor.fetchone()   #指针在第三个位置
print(shuju)                #打印应该是第三条
cursor.scroll(-2,mode='relative') #调整指针,相对当前位置向上移动2位
shuju = cursor.fetchone()   #指针第二位
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("SELECT id,yhm,mim FROM db1")
shuju = cursor.fetchone()   #获取游标里第一条数据,指针在第一个位置
shuju = cursor.fetchone()   #指针在第二个位置
shuju = cursor.fetchone()   #指针在第三个位置
print(shuju)                #打印应该是第三条
cursor.scroll(3,mode='absolute') #调整指针,相对绝对位置移动3位
shuju = cursor.fetchone()   #指针第四位
print(shuju)
# 提交,不然无法保存新建或者修改的数据
# conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

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

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

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pymysql# 创建连接
"""
host=数据库ip
port=数据库端口
user=数据库用户名
passwd=数据库密码
db=数据库名称
charset=数据库编码
"""
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='279819', db='cshi',charset='utf8')
# 创建游标
cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)# 执行SQL,并返回收影响行数
effect_row = cursor.execute("INSERT INTO db1 (yhm,mim) VALUES (%s,%s)",('bb3',8889))
zzid = cursor.lastrowid  #获取添加数据时的自增id
print(zzid) #打印自增id
# 提交,不然无法保存新建或者修改的数据
conn.commit()# 关闭游标
cursor.close()
# 关闭连接
conn.close()

转载于:https://www.cnblogs.com/adc8868/p/6942542.html

第二百七十九节,MySQL数据库-pymysql模块操作数据库相关推荐

  1. 第二百七十五节,MySQL数据库安装和介绍

    MySQL数据库安装 一.概述 1.什么是数据库 ? 答:数据的仓库,称其为数据库 2.什么是 MySQL.Oracle.SQLite.Access.MS SQL Server等 ? 答:他们均是一种 ...

  2. 美学心得(第二百二十九集)罗国正

    美学心得(第二百二十九集) 罗国正 (2021年10月) 2999.清朝鉴赏家陆时化,字润之,号听松,是江苏太仓人.他的美学思想,非常值得大家关注.研究.现将他的观点摘要如下: 1.他强调先天文化之根 ...

  3. 第三百八十九节,Django+Xadmin打造上线标准的在线教育平台—列表筛选结合分页...

    第三百八十九节,Django+Xadmin打造上线标准的在线教育平台-列表筛选结合分页 根据用户的筛选条件来结合分页 实现原理就是,当用户点击一个筛选条件时,通过get请求方式传参将筛选的id或者值, ...

  4. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

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

    pymysql模块操作数据库及连接报错解决方法 参考文章: (1)pymysql模块操作数据库及连接报错解决方法 (2)https://www.cnblogs.com/zgngg/p/10607859 ...

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

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

  7. python 最好用的数据库模块_Python 使用pymysql模块操作数据库

    Python 中操作 MySQL 步骤 看完了上面的这个操作流程,那么python操作数据库可以用上面模块来操作呢? 目前比较流行的就是pymysql,下面来看看介绍. pymysql介绍PyMySQ ...

  8. 第二百六十四节,Tornado框架-基于正则的动态路由映射分页数据获取计算

    Tornado框架-基于正则的动态路由映射分页数据获取计算 分页基本显示数据 第一步.设置正则路由映射配置,(r"/index/(?P<page>\d*)", inde ...

  9. 第二百六十六节,Tornado框架-XSS处理,页码计算,页码显示

    Tornado框架-XSS处理,页码计算,页码显示 Tornado框架-XSS攻击过滤 注意:Tornado框架的模板语言,读取数据已经自动处理了XSS攻击,过滤转换了危险字符 如果要使危险字符可以远 ...

最新文章

  1. qlabel 边加载边更新_王者荣耀:9月版本更新,九位英雄调整,三大战边回归,飞牛笑了...
  2. 如何解读「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」?——是KNN算法吗?...
  3. hdu1251 hash或者字典树
  4. 【Android 组件化】使用 Gradle 实现组件化 ( Gradle 变量定义与使用 )
  5. OpenCV配置选项参考
  6. [hihoCoder]无间道之并查集
  7. 编写第一个HADOOP应用程序
  8. how to attach source code of Spark
  9. Change Fiori launchpad logo
  10. 都说外国电工布线牛到不行?今天就看看中国电工最强布线!
  11. tmemo 选择消除行_Divi模块,行和部分加入高级动画选项
  12. 安装docker1.10
  13. Spark源码分析之BlockManagerMaster
  14. 覆盖计算机网络分类有哪些 英语缩写,简述按覆盖范围划分计算机网络的分类类型有哪些?英语缩写分别是什么?...
  15. 转载:TD之父李世鹤:TD即将安乐死
  16. 4 esp_transport 用 racoon协商 用setkey设置 spd
  17. 《第一堂棒球课》:王牌投手·棒球1号位
  18. 2010年6月 工作 计划 发奋图钱 再接再厉
  19. github上star42.4K的开源电商平台
  20. 零售ERP开发(一)

热门文章

  1. sql查询无结果返回空_3分钟短文 | Laravel 查询结果检查是不是空,5个方法你别用错...
  2. eslint 保存自动格式化_代码规范之理解ESLint、Prettier、EditorConfig
  3. python中cmd是什么_python中的cmd是什么
  4. LeetCode 2129. 将标题首字母大写
  5. python 清除字符串中的 emoji 表情
  6. LeetCode 878. 第 N 个神奇数字(二分查找)
  7. LeetCode 1332. 删除回文子序列
  8. springboot设置运行内存_Docker 如何运行多个 Springboot?
  9. Django视图(python函数)
  10. 修改mysql数据库字符集_修改及查看mysql数据库的字符集