详解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 01 Python
Python中的包和模块实例
Nov 22 Python
Python中异常重试的解决方案详解
May 05 Python
详解 Python 与文件对象共事的实例
Sep 11 Python
python 对dataframe下面的值进行大规模赋值方法
Jun 09 Python
解决Mac下首次安装pycharm无project interpreter的问题
Oct 29 Python
Python3 max()函数基础用法
Feb 19 Python
Python OpenCV实现视频分帧
Jun 01 Python
python导入pandas具体步骤方法
Jun 23 Python
Python OrderedDict的使用案例解析
Oct 25 Python
pytorch实现MNIST手写体识别
Feb 14 Python
Python API 操作Hadoop hdfs详解
Jun 06 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设计模式 Delegation(委托模式)
2011/06/26 PHP
PHP中的按位与和按位或操作示例
2014/01/27 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
js限制文本框只能输入数字(正则表达式)
2012/07/15 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
DOM基础教程之使用DOM控制表格
2015/01/20 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
js+css实现文字散开重组动画特效代码分享
2015/08/21 Javascript
js获取所有checkbox的值的简单实例
2016/05/30 Javascript
轻松掌握JavaScript装饰者模式
2016/08/27 Javascript
AngularJS equal比较对象实例详解
2016/09/14 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
2017/02/11 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
React BootStrap用户体验框架快速上手
2018/03/06 Javascript
详解Vue单元测试case写法
2018/05/24 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
[05:04]DOTA2上海特级锦标赛主赛事第二日TOP10
2016/03/04 DOTA
[56:17]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第三场 8.22
2019/09/05 DOTA
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python使用webbrowser浏览指定url的方法
2015/04/04 Python
详解Python进阶之切片的误区与高级用法
2018/12/24 Python
python3实现二叉树的遍历与递归算法解析(小结)
2019/07/03 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
Python模拟登录之滑块验证码的破解(实例代码)
2019/11/18 Python
使用PyOpenGL绘制三维坐标系实例
2019/12/24 Python
在matplotlib中改变figure的布局和大小实例
2020/04/23 Python
应届生船舶驾驶求职信
2013/10/19 职场文书
俞敏洪北大演讲稿
2014/05/22 职场文书
国企干部对照检查材料
2014/08/22 职场文书
员工试用期自我鉴定范文
2014/09/15 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
Redis集群节点通信过程/原理流程分析
2022/03/18 Redis