详解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多线程编程(六):可重入锁RLock
Apr 05 Python
Python类定义和类继承详解
May 08 Python
基于python select.select模块通信的实例讲解
Sep 21 Python
50行Python代码实现人脸检测功能
Jan 23 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
pycharm新建一个python工程步骤
Jul 16 Python
python之拟合的实现
Jul 19 Python
django中使用Celery 布式任务队列过程详解
Jul 29 Python
python批量修改ssh密码的实现
Aug 08 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
Feb 15 Python
python 读取二进制 显示图片案例
Apr 24 Python
Tensorflow使用Anaconda、pycharm安装记录
Jul 29 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写出自己的BLOG系统 2
2010/04/12 PHP
PHP iconv 解决utf-8和gb2312编码转换问题
2010/04/12 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
推荐一款MAC OS X 下php集成开发环境mamp
2014/11/08 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
thinkphp利用模型通用数据编辑添加和删除的实例代码
2016/11/20 PHP
Yii2框架实现数据库常用操作总结
2017/02/08 PHP
form表单传递数组数据、php脚本接收的实例
2017/02/09 PHP
PHP 实现页面静态化的几种方法
2017/07/23 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
PHP模型Model类封装数据库操作示例
2019/03/14 PHP
js 针对html DOM元素操作等经验累积
2014/03/11 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
构建大型 Vue.js 项目的10条建议(小结)
2019/11/14 Javascript
Servlet返回的数据js解析2种方法
2019/12/12 Javascript
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
python实现查询IP地址所在地
2015/03/29 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
浅谈Python中(&,|)和(and,or)之间的区别
2019/08/07 Python
python计算无向图节点度的实例代码
2019/11/22 Python
基于Python快速处理PDF表格数据
2020/06/03 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
Python基于Faker假数据构造库
2020/11/30 Python
详解CSS3浏览器兼容
2016/12/14 HTML / CSS
北欧最好的童装网上商店:Babyshop
2019/09/15 全球购物
国际花店:Pickup Flowers
2020/04/10 全球购物
Urban Decay官方网站:美国化妆品品牌
2020/06/04 全球购物
EJB的几种类型
2012/08/15 面试题
音乐表演专业毕业生求职信
2013/10/14 职场文书
入党后的感想
2015/08/10 职场文书
关于golang高并发的实现与注意事项说明
2021/05/08 Golang
解决python3安装pandas出错的问题
2021/05/20 Python