详解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 相关文章推荐
Python实现批量下载图片的方法
Jul 08 Python
python删除特定文件的方法
Jul 30 Python
如何更优雅地写python代码
Jul 02 Python
在Django model中设置多个字段联合唯一约束的实例
Jul 17 Python
Django  ORM 练习题及答案
Jul 19 Python
django 微信网页授权登陆的实现
Jul 30 Python
详解用python生成随机数的几种方法
Aug 04 Python
django-filter和普通查询的例子
Aug 12 Python
详解Python文件修改的两种方式
Aug 22 Python
django drf框架自带的路由及最简化的视图
Sep 10 Python
Scrapy 配置动态代理IP的实现
Sep 28 Python
python爬取抖音视频的实例分析
Jan 19 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网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
php计算整个目录大小的方法
2015/06/01 PHP
php三元运算符知识汇总
2015/07/02 PHP
浅谈PHP中的面向对象OOP中的魔术方法
2017/06/12 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
JAVASCRIPT下判断IE与FF的比较简单的方式
2008/10/17 Javascript
给Flash加一个超链接(推荐使用透明层)兼容主流浏览器
2013/06/09 Javascript
js和as的稳定传值问题解决
2013/07/14 Javascript
jQuery实现响应鼠标滚动的动感菜单效果
2015/09/21 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
浅谈angular4.0中路由传递参数、获取参数最nice的写法
2018/03/12 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
vue单页缓存存在的问题及解决方案(小结)
2018/09/25 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
JS将时间秒转换成天小时分钟秒的字符串
2019/07/10 Javascript
对layui中table组件工具栏的使用详解
2019/09/19 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
小程序表单认证布局及验证详解
2020/06/19 Javascript
简单的python协同过滤程序实例代码
2018/01/31 Python
Python 实现某个功能每隔一段时间被执行一次的功能方法
2018/10/14 Python
python实现字符串完美拆分split()的方法
2019/07/16 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
Python使用ElementTree美化XML格式的操作
2020/03/06 Python
利用keras使用神经网络预测销量操作
2020/07/07 Python
python中return不返回值的问题解析
2020/07/22 Python
俄罗斯最大的在线手表商店:Bestwatch.ru
2020/01/11 全球购物
烹饪自我鉴定
2014/03/01 职场文书
抗洪救灾标语
2014/10/08 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
2015年大学生暑期实习报告
2015/07/13 职场文书
经销商会议开幕词
2016/03/04 职场文书
互联网的下一个风口:新的独角兽将诞生
2019/08/02 职场文书
win10下go mod配置方式
2021/04/25 Golang
Golang表示枚举类型的详细讲解
2021/09/04 Golang
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android