详解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读文件逐行处理的示例代码分享
Dec 27 Python
Python3控制路由器——使用requests重启极路由.py
May 11 Python
Python通过命令开启http.server服务器的方法
Nov 04 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
浅谈Python中的作用域规则和闭包
Mar 20 Python
Python 25行代码实现的RSA算法详解
Apr 10 Python
详谈pandas中agg函数和apply函数的区别
Apr 20 Python
Python对CSV、Excel、txt、dat文件的处理
Sep 18 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
Python 导入文件过程图解
Oct 15 Python
深入浅析python的第三方库pandas
Feb 13 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP 简易输出CSV表格文件的方法详解
2013/06/20 PHP
(PHP实现)只使用++运算实现加法,减法,乘法,除法
2013/06/27 PHP
PHP 类与构造函数解析
2017/02/06 PHP
PHP使用curl_multi实现并发请求的方法示例
2018/04/29 PHP
PHP5.6读写excel表格文件操作示例
2019/02/26 PHP
Jquery事件的连接使用示例
2013/06/18 Javascript
javascript将相对路径转绝对路径示例
2014/03/14 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
微信小程序图片选择、上传到服务器、预览(PHP)实现实例
2017/05/11 Javascript
Angularjs中的验证input输入框只能输入数字和小数点的写法(推荐)
2017/08/16 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
在微信小程序中使用vant的方法
2019/06/07 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python实现Kmeans聚类算法
2020/06/10 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python梯度下降法的简单示例
2018/08/31 Python
python中正则表达式与模式匹配
2019/05/07 Python
Python Numpy 控制台完全输出ndarray的实现
2020/02/19 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
Django REST framwork的权限验证实例
2020/04/02 Python
使用gunicorn部署django项目的问题
2020/12/30 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
2021/01/27 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
如何利用cmp命令比较文件
2013/09/23 面试题
公司清洁工岗位职责
2013/12/14 职场文书
读群众路线心得体会
2014/03/07 职场文书
函授本科个人自我鉴定
2014/03/25 职场文书
工程质量承诺书
2014/03/27 职场文书
趣味运动会策划方案
2014/06/02 职场文书
公司聚餐通知
2015/04/22 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
六年级情感作文之500字
2019/10/23 职场文书
 python中的元类metaclass详情
2022/05/30 Python