详解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 01 Python
Python中将字典转换为XML以及相关的命名空间解析
Oct 15 Python
Python常见异常分类与处理方法
Jun 04 Python
Python logging管理不同级别log打印和存储实例
Jan 19 Python
Django中cookie的基本使用方法示例
Feb 03 Python
django 修改server端口号的方法
May 14 Python
Python+OpenCV实现图像融合的原理及代码
Dec 03 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Python单例模式的四种创建方式实例解析
Mar 04 Python
详解pandas映射与数据转换
Jan 22 Python
tensorflow中的梯度求解及梯度裁剪操作
May 26 Python
python 批量压缩图片的脚本
Jun 02 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在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php中 ob_start等函数截取标准输出的方法
2015/06/22 PHP
PHP的中使用非缓冲模式查询数据库的方法
2017/02/05 PHP
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
JavaScript 使用技巧精萃(.net html
2009/04/25 Javascript
js使用递归解析xml
2014/12/12 Javascript
jQuery异步获取json数据方法汇总
2014/12/22 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
Bootstrap每天必学之导航条
2015/11/27 Javascript
JavaScript来实现打开链接页面的简单实例
2016/06/02 Javascript
Node.js开启Https的实践详解
2016/10/25 Javascript
浅谈jquery页面初始化的4种方式
2016/11/27 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
AngularJS实现路由实例
2017/02/12 Javascript
浅谈 Vue 项目优化的方法
2017/12/16 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
Vue.js的动态组件模板的实现
2018/11/26 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
vue子路由跳转实现tab选项卡
2019/07/24 Javascript
原生js滑动轮播封装
2020/07/31 Javascript
Python 加密的实例详解
2017/10/09 Python
Python实现的绘制三维双螺旋线图形功能示例
2018/06/23 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
python 一篇文章搞懂装饰器所有用法(建议收藏)
2019/08/23 Python
Python下载网易云歌单歌曲的示例代码
2020/08/12 Python
viagogo意大利票务平台:演唱会、体育比赛、戏剧门票
2018/01/26 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
中学生演讲稿
2014/04/26 职场文书
经典团队口号
2014/06/06 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
MySQL时间设置注意事项的深入总结
2021/05/06 MySQL
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android