详解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程序实例(通讯录)
Nov 29 Python
Python 元组(Tuple)操作详解
Mar 11 Python
Python类的专用方法实例分析
Jan 09 Python
Python获取央视节目单的实现代码
Jul 25 Python
总结Python编程中函数的使用要点
Mar 20 Python
Python玩转Excel的读写改实例
Feb 22 Python
Python列表原理与用法详解【创建、元素增加、删除、访问、计数、切片、遍历等】
Oct 30 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
python线程信号量semaphore使用解析
Nov 30 Python
django有哪些好处和优点
Sep 01 Python
python程序实现BTC(比特币)挖矿的完整代码
Jan 20 Python
python实现一个简单的贪吃蛇游戏附代码
Jun 28 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
收音机的保养
2021/03/01 无线电
Windows2003 下 MySQL 数据库每天自动备份
2006/12/21 PHP
PHP邮件群发机实现代码
2016/02/16 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
JS的数组的扩展实例代码
2008/07/09 Javascript
jQuery的三种$()
2009/12/30 Javascript
JS实现Fisheye效果动感放大菜单代码
2015/10/21 Javascript
AngularJS通过$http和服务器通信详解
2016/09/21 Javascript
JS去掉字符串前后空格、阻止表单提交的实现代码
2017/06/08 Javascript
bootstrap时间插件daterangepicker使用详解
2017/10/19 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
npm 常用命令详解(小结)
2019/01/17 Javascript
vue绑定数字类型 value为数字的实例
2020/08/31 Javascript
Javascript文本框脚本实现方法解析
2020/10/30 Javascript
javascript实现滚轮轮播图片
2020/12/13 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
[00:43]魔廷新尊——痛苦女王至宝捆绑包
2020/06/12 DOTA
详解Python中break语句的用法
2015/05/14 Python
详解在Python程序中解析并修改XML内容的方法
2015/11/16 Python
python中将字典形式的数据循环插入Excel
2018/01/16 Python
pandas系列之DataFrame 行列数据筛选实例
2018/04/12 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Python图像处理之识别图像中的文字(实例讲解)
2018/05/10 Python
python实现换位加密算法的示例
2018/10/14 Python
python 检查文件mime类型的方法
2018/12/08 Python
pyqt 实现为长内容添加滑轮 scrollArea
2019/06/19 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Python GUI库PyQt5图形和特效样式QSS介绍
2020/02/25 Python
详解pandas中iloc, loc和ix的区别和联系
2020/03/09 Python
python 将Excel转Word的示例
2021/03/02 Python
学习全国两会精神心得体会范文
2014/03/17 职场文书
学校总务处领导班子民主生活会对照检查材料思想汇报
2014/09/27 职场文书
市贸粮局召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
淮海战役观后感
2015/06/11 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers