详解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 21 Python
在Django的form中使用CSS进行设计的方法
Jul 18 Python
Python正则表达式教程之二:捕获篇
Mar 02 Python
pygame加载中文名mp3文件出现error
Mar 31 Python
Django自定义分页效果
Jun 27 Python
Python cookbook(数据结构与算法)保存最后N个元素的方法
Feb 13 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
PYQT5设置textEdit自动滚屏的方法
Jun 14 Python
python KNN算法实现鸢尾花数据集分类
Oct 24 Python
Python3创建Django项目的几种方法(3种)
Jun 03 Python
python能做哪些生活有趣的事情
Sep 09 Python
详解Python中第三方库Faker
Sep 25 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
Zend Framework教程之Zend_Registry对象用法分析
2016/03/22 PHP
PHP使用php-resque库配合Redis实现MQ消息队列的教程
2016/06/29 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
一些mootools的学习资源
2010/02/07 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
jQuery Validate设置onkeyup验证的实例代码
2016/12/09 Javascript
assert()函数用法总结(推荐)
2017/01/25 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
Vue.js对象转换实例
2017/06/07 Javascript
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
javascript+Canvas实现画板功能
2020/06/23 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
[43:35]TI4 循环赛第二日Liquid vs Fnatic
2014/07/11 DOTA
[01:17]Ti4 循环赛第一日回顾
2014/07/11 DOTA
[07:06]2018DOTA2国际邀请赛寻真——卫冕冠军Team Liquid
2018/08/10 DOTA
[01:04:02]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第二场 1月24日
2021/03/11 DOTA
python list中append()与extend()用法分享
2013/03/24 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python SqlAlchemy动态添加数据表字段实例解析
2018/02/07 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
Python3常见函数range()用法详解
2019/12/30 Python
Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例
2020/03/18 Python
python实现爱奇艺登陆密码RSA加密的方法示例详解
2020/05/27 Python
详解css3中dispaly的Grid布局与Flex布局
2020/09/11 HTML / CSS
Expedia马来西亚旅游网站:廉价酒店,度假村和航班预订
2016/07/26 全球购物
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
Python文件操作的面试题
2013/06/22 面试题
预备党员思想汇报
2014/01/08 职场文书
绿化先进工作者事迹材料
2014/01/30 职场文书
学习张丽丽心得体会
2014/09/03 职场文书
手机销售员岗位职责
2015/04/11 职场文书
python基于turtle绘制几何图形
2021/06/15 Python