详解Python的数据库操作(pymysql)


Posted in Python onApril 04, 2019

使用原生SQL语句进行对数据库操作,可完成数据库表的建立和删除,及数据表内容的增删改查操作等。其可操作性很强,如可以直接使用“show databases”、“show tables”等语句进行表格之外的部分操作。

Centos7远程操作数据库时需要关闭防火墙,否则会连接不上

安装:

pip3 install pymysql

数据查询:

import pymysql 
 #建立数据库连接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb") 
 #得到数据库操作游标
 cur=conn.cursor()
 #查询数据
 resdata=cur.execute("select * from tb_dong")
 print("总条数为:",resdata)
 #一行一行输出数据,以元组形式
 print("取出第一条数据:",cur.fetchone())
 print("取出第二条数据:",cur.fetchone()[3])
 #输出剩下的所有数据,以元组嵌套形式
 print("取出剩下的数据:",cur.fetchall())
 print("------ 完成操作  -------")
 #关闭连接
 conn.close()

数据插入:

也可以使用 execute() 进行操作

import pymysql 
 #建立数据库连接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb") 
 #得到数据库操作游标
 cur=conn.cursor() 
 #插入数据
 datax=[
   ("DXD1","M","东小东1"),
   ("DXD2","F","东小东2")
 ]
 #返回影响行数
 rescoun=cur.executemany("insert into tb_dong(namex,sex,otherxxx) values(%s,%s,%s)",datax)
 print(rescoun)
 #进行数据修改,必须提交事物
 conn.commit()
 print("------ 完成操作  -------")
 #关闭数据库连接
 conn.close()

数据修改:

#返回影响行数,如果值未进行任何修改则返回0
rescoun=cur.execute("update tb_dong set namex='%s',sex='%s' where id>%d"%("dongdong","F",16))
print(rescoun)
#进行数据修改,必须提交事物
conn.commit()

数据删除:

#返回影响行数
rescoun=cur.execute("delete from tb_dong where id>%d"%(16))
conn.commit() #提交事物

部分封装:

import pymysql 
 #建立数据库连接
 conn=pymysql.connect(host="192.168.1.175",port=3306,user="root2",passwd="proot2",db="dongdb")
 #得到数据库操作游标
 cur=conn.cursor() 
 #删除
 def dongdel(tablex,idx):
  try:
   rescoun = cur.execute("delete from %s where id=%d" % (tablex,idx))
   conn.commit() #提交事物
   return rescoun
  except Exception as e:
   print("删除出现错误", e)
   return e
 #插入
 def donginsert(tablex,listx):
 try:
   rescoun = cur.executemany("insert into "+tablex+"(namex,sex,otherxxx) values(%s,%s,%s)",listx)
   conn.commit()
   return rescoun
 except Exception as e:
    print("插入出现错误",e)
    return e
 #查询,参数为表名和id值
 def dongselect(tablex,idx=0):
  try:
   if idx==0:
     resdata = cur.execute("select * from %s"%tablex)
   else:
     resdata = cur.execute("select * from %s where id=%d" %(tablex,idx))
   return resdata
  except Exception as e:
    print("查询出现错误",e)
    return e
 #修改
 def dongupdate(tablex,idx,namex):
  try:
   rescoun = cur.execute("update %s set namex='%s' where id=%d" % (tablex,namex,idx))
   conn.commit()
   return rescoun
  except Exception as e:
    print("更新出现错误", e)
    return e
 #删除数据
 resdel=dongdel("tb_dong",6)
 print("删除的条数为:",resdel)
 #插入数据
 datax=[
   ("dongxiaodong","M","东小东1")
 ]
 resinsert=donginsert("tb_dong",datax)
 print("插入的条数为:",resinsert)
 #修改数据
 resupdate=dongupdate("tb_dong",7,"dongxiaodong7")
 print("修改的条数为:",resupdate)
 #查询数据
 resselect=dongselect("tb_dong",0)
 print("查询的总条数为:",resselect)
 print("全部数据为:",cur.fetchall())
 #关闭数据库连接
 conn.close()

总结

以上所述是小编给大家介绍的详解Python的数据库操作(pymysql),希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

Python 相关文章推荐
使用Pyinstaller的最新踩坑实战记录
Nov 08 Python
利用Python暴力破解zip文件口令的方法详解
Dec 21 Python
Python实现爬虫爬取NBA数据功能示例
May 28 Python
使用python将mysql数据库的数据转换为json数据的方法
Jul 01 Python
pandas基于时间序列的固定时间间隔求均值的方法
Jul 04 Python
Python字符串、列表、元组、字典、集合的补充实例详解
Dec 20 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
python+adb命令实现自动刷视频脚本案例
Apr 23 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 Python
PyQt5实现登录页面
May 30 Python
Python中Selenium库使用教程详解
Jul 23 Python
基于Python中Remove函数的用法讨论
Dec 11 Python
python dlib人脸识别代码实例
Apr 04 #Python
python图像处理入门(一)
Apr 04 #Python
python爬虫简单的添加代理进行访问的实现代码
Apr 04 #Python
Django项目中添加ldap登陆认证功能的实现
Apr 04 #Python
使用 Python 玩转 GitHub 的贡献板(推荐)
Apr 04 #Python
python中yield的用法详解——最简单,最清晰的解释
Apr 04 #Python
详解python项目实战:模拟登陆CSDN
Apr 04 #Python
You might like
php adodb介绍
2009/03/19 PHP
php去除重复字的实现代码
2011/09/16 PHP
php实现监听事件
2013/11/06 PHP
实例介绍PHP的Reflection反射机制
2014/08/05 PHP
php关键字仅替换一次的实现函数
2015/10/29 PHP
Javascript this指针
2009/07/30 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
使用jQuery实现的掷色子游戏动画效果
2014/03/14 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
JavaScript编码风格指南(中文版)
2016/08/26 Javascript
ES6记录异步函数的执行时间详解
2016/08/31 Javascript
js实现把图片的绝对路径转为base64字符串、blob对象再上传
2016/12/29 Javascript
Vue Spa切换页面时更改标题的实例代码
2017/07/15 Javascript
浅谈NodeJs之数据库异常处理
2017/10/25 NodeJs
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
详解JavaScript 浮点数运算的精度问题
2019/07/23 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
2020/02/14 Javascript
基于JS实现table导出Excel并保留样式
2020/05/19 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
node.js通过url读取文件
2020/10/16 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
Python线程指南详细介绍
2017/01/05 Python
Python基于Matplotlib库简单绘制折线图的方法示例
2017/08/14 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
安装多个版本的TensorFlow的方法步骤
2020/04/21 Python
聊聊python中的异常嵌套
2020/09/01 Python
python调用有道智云API实现文件批量翻译
2020/10/10 Python
python代码实现猜拳小游戏
2020/11/30 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
业务员自荐信范文
2014/04/20 职场文书
简洁的英文求职信范文
2014/05/03 职场文书
干部个人对照检查材料
2014/08/25 职场文书
Nginx报404错误的详细解决方法
2022/07/23 Servers