详解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 __setattr__、 __getattr__、 __delattr__、__call__用法示例
Mar 06 Python
浅析Python中的赋值和深浅拷贝
Aug 15 Python
Python中顺序表的实现简单代码分享
Jan 09 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
对numpy数据写入文件的方法讲解
Jul 09 Python
python石头剪刀布小游戏(三局两胜制)
Jan 20 Python
Python3.8中使用f-strings调试
May 22 Python
python处理大日志文件
Jul 23 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python爬取梨视频的示例
Jan 29 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
深入解析PHP内存管理之谁动了我的内存
2013/06/20 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php获取mysql字段名称和其它信息的例子
2014/04/14 PHP
php判断一个数组是否为有序的方法
2015/03/27 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
js以对象为索引的关联数组
2010/07/04 Javascript
High Performance JavaScript(高性能JavaScript)读书笔记分析
2011/05/05 Javascript
JS中Iframe之间传值的方法
2013/03/11 Javascript
javascript对象的使用和属性操作示例详解
2014/03/02 Javascript
简单三步实现报表页面集成天气
2016/12/15 Javascript
angularjs实现简单的购物车功能
2017/09/21 Javascript
Windows安装Node.js报错:2503、2502的解决方法
2017/10/25 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
深入浅析Vue中的 computed 和 watch
2018/06/06 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
详解vue-video-player使用心得(兼容m3u8)
2019/08/23 Javascript
layui问题之自动滚动二级iframe页面到指定位置的方法
2019/09/18 Javascript
JavaScript原型继承和原型链原理详解
2020/02/04 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python引用计数操作示例
2018/08/23 Python
python pygame实现五子棋小游戏
2020/10/26 Python
如何配置、使用和清除Smarty缓存
2015/12/23 面试题
护理自荐信范文
2013/10/05 职场文书
机关财务管理制度
2014/01/17 职场文书
教育系统干部作风整顿心得体会
2014/09/09 职场文书
学校运动会广播稿100条
2014/09/14 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
预备党员自我评价范文
2015/03/04 职场文书
4S店销售内勤岗位职责
2015/04/13 职场文书
学校节水倡议书
2015/04/29 职场文书
选择比努力更重要?这是长期以来对“努力”的最大误解
2019/07/12 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书