详解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通过exifread模块获得图片exif信息的方法
Mar 16 Python
Python中的ConfigParser模块使用详解
May 04 Python
快速排序的算法思想及Python版快速排序的实现示例
Jul 02 Python
Python用61行代码实现图片像素化的示例代码
Dec 10 Python
Linux下远程连接Jupyter+pyspark部署教程
Jun 21 Python
学python安装的软件总结
Oct 12 Python
Python中xml和dict格式转换的示例代码
Nov 07 Python
在Django中预防CSRF攻击的操作
Mar 13 Python
解决TensorFlow程序无限制占用GPU的方法
Jun 30 Python
Python3中PyQt5简单实现文件打开及保存
Jun 10 Python
python中if和elif的区别介绍
Nov 07 Python
Python实现文字pdf转换图片pdf效果
Apr 03 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
php5 and xml示例
2006/11/22 PHP
PHP5 的对象赋值机制介绍
2011/08/02 PHP
PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php微信公众号开发之关键词回复
2018/10/20 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
JQuery里选择超链接的实现代码
2011/05/22 Javascript
浅谈Javascript中匀速运动的停止条件
2014/12/19 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
2016/08/02 Javascript
JavaScript之cookie技术详解
2016/11/18 Javascript
vue动画之点击按钮往上渐渐显示出来的实例
2018/09/29 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue+webpack dev本地调试全局样式引用失效的解决方案
2019/11/12 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
[01:01:14]完美世界DOTA2联赛PWL S2 SZ vs Rebirth 第一场 11.21
2020/11/23 DOTA
用于统计项目中代码总行数的Python脚本分享
2015/04/21 Python
python中for循环输出列表索引与对应的值方法
2018/11/07 Python
​如何愉快地迁移到 Python 3
2019/04/28 Python
Python3 requests文件下载 期间显示文件信息和下载进度代码实例
2019/08/16 Python
迷你分体式空调:SoGoodToBuy
2018/08/07 全球购物
英国在线药房和在线药剂师:Chemist 4 U
2020/01/05 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
如何通过 CSS 写出火焰效果
2021/03/24 HTML / CSS
初婚未育证明
2014/01/15 职场文书
售后服务承诺书
2014/03/26 职场文书
怎样填写就业意向
2014/04/02 职场文书
2014老师三严三实对照检查材料思想汇报
2014/09/18 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
老公保证书
2015/01/17 职场文书
《赵州桥》教学反思
2016/02/17 职场文书
图文详解Nginx版本平滑升级方案
2021/09/15 Servers
Python Flask实现进度条
2022/05/11 Python
SQL Server2019安装的详细步骤实战记录(亲测可用)
2022/06/10 SQL Server