详解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 相关文章推荐
Django中URLconf和include()的协同工作方法
Jul 20 Python
Python 常用string函数详解
May 30 Python
Python内建模块struct实例详解
Feb 02 Python
使用python 3实现发送邮件功能
Jun 15 Python
在Pycharm中自动添加时间日期作者等信息的方法
Jan 16 Python
Laravel+Dingo/Api 自定义响应的实现
Feb 17 Python
python实现二维数组的对角线遍历
Mar 02 Python
为什么从Python 3.6开始字典有序并效率更高
Jul 15 Python
如何在python中实现随机选择
Nov 02 Python
Python3.6安装卸载、执行命令、执行py文件的方法详解
Feb 20 Python
Python远程linux执行命令实现
Nov 11 Python
tensorflow与numpy的版本兼容性问题的解决
Jan 08 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
全国FM电台频率大全 - 2 天津市
2020/03/11 无线电
php中大括号作用介绍
2012/03/22 PHP
LotusPhp笔记之:Logger组件的使用方法
2013/05/06 PHP
使用PHP编写的SVN类
2013/07/18 PHP
thinkphp实现163、QQ邮箱收发邮件的方法
2015/12/18 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
niceTitle 基于jquery的超链接提示插件
2010/05/31 Javascript
关闭浏览器窗口弹出提示框并且可以控制其失效
2014/04/15 Javascript
JavaScript实现N皇后问题算法谜题解答
2014/12/29 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
使用vue的v-for生成table并给table加上序号的实例代码
2017/10/27 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
2015/04/08 Python
Python中基础的socket编程实战攻略
2016/06/01 Python
在python中使用requests 模拟浏览器发送请求数据的方法
2018/12/26 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
使用Python正则表达式操作文本数据的方法
2019/05/14 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
python实现证件照换底功能
2019/08/20 Python
使用python 将图片复制到系统剪贴中
2019/12/13 Python
python变量的作用域是什么
2020/05/26 Python
CSS3 rgb and rgba(透明色)的使用详解
2020/09/25 HTML / CSS
彪马加拿大官网:PUMA加拿大
2018/10/04 全球购物
专科应届生求职信
2013/11/24 职场文书
工地安全生产标语
2014/06/06 职场文书
环保公益策划方案
2014/08/15 职场文书
小学教研工作总结2015
2015/05/13 职场文书
重阳节座谈会主持词
2015/07/03 职场文书
会议主持词通用版
2019/04/02 职场文书
详解Vue的sync修饰符
2021/05/15 Vue.js
健身房被搭讪?用python写了个小米计时器助人为乐
2021/06/08 Python
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
python 管理系统实现mysql交互的示例代码
2021/12/06 Python
Python四款GUI图形界面库介绍
2022/06/05 Python