Python操作mysql数据库(封装基本的增删改查)

2023-05-16

新学Python,在这里分享操作MySQL的全过程

1、安装MySQL-python-1.2.3.win-amd64-py2.7.exe,这是操作mysql数据库的python库,有32位和64位之分,看自机器下载

2、64位机器安装MySQL-python-1.2.3.win-amd64-py2.7.exe出现 which was not found the regidtry,请点这里

3、引入mysql库:

[python]  view plain  copy
  1. import MySQLdb  

4、获取数据库连接:

[python]  view plain  copy
  1. conn=MySQLdb.connect(host='localhost',user='mjy',passwd='123',db='python',port=3306,charset='utf8')  

  

connect连接对象的方法:

close()  --关闭的方法

commit()   --如果支持事务则提交挂起的事务

rollback()  --回滚挂起的事务

cursor()  --返回连接的游标对象

5、获取游标:

[python]  view plain  copy
  1. #该游标对象执行查询操作返回的结果是序列  
  2. cur=con.cursor()   
[python]  view plain  copy
  1. #该游标对象执行查询操作返回的结果是字典(字典可以方便我们队查询的结果进行操作,所以我采用这种方法)  
  2. cur=con.cursor(MySQLdb.cursors.DictCursor)    

游标对象的方法:

callproc(name,[params]) --用来执行存储过程,接收的参数为存储过程的名字和参数列表,返回受影响的行数

close()  --关闭游标

execute(sql,[params])--执行sql语句,可以使用参数,(使用参数时,sql语句中用%s进行站位注值),返回受影响的行数

executemany(sql,params)--执行单挑sql语句,但是重复执行参数列表里的参数,返回受影响的行数

fetchone()  --返回结果的下一行

fetchall()  --返回结果的 所有行

fetchmany(size)--返回size条记录,如果size大于返回结果行的数量,则会返回cursor.arraysize条记录

nextset()  --条至下一行

setinputsizes(size)--定义cursor

游标对象的属性:

description--结果列的描述,只读

rowcount  --结果中的行数,只读

arraysize  --fetchmany返回的行数,默认为1


6、我自己封装的一些基本操作

[python]  view plain  copy
  1. # -*- coding: cp936 -*-  
  2. import MySQLdb  
  3.   
  4. class MysqldbHelper:  
  5.     #获取数据库连接  
  6.     def getCon(self):  
  7.         try:  
  8.             conn=MySQLdb.connect(host='localhost',user='mjy',passwd='123',db='python',port=3306,charset='utf8')  
  9.             return conn  
  10.         except MySQLdb.Error,e:  
  11.             print "Mysqldb Error:%s" % e  
  12.     #查询方法,使用con.cursor(MySQLdb.cursors.DictCursor),返回结果为字典      
  13.     def select(self,sql):  
  14.         try:  
  15.             con=self.getCon()  
  16.             print con  
  17.             cur=con.cursor(MySQLdb.cursors.DictCursor)  
  18.             count=cur.execute(sql)  
  19.             fc=cur.fetchall()  
  20.             return fc  
  21.         except MySQLdb.Error,e:  
  22.             print "Mysqldb Error:%s" % e  
  23.         finally:  
  24.             cur.close()  
  25.             con.close()  
  26.     #带参数的更新方法,eg:sql='insert into pythontest values(%s,%s,%s,now()',params=(6,'C#','good book')  
  27.     def updateByParam(self,sql,params):  
  28.         try:  
  29.             con=self.getCon()  
  30.             cur=con.cursor()  
  31.             count=cur.execute(sql,params)  
  32.             con.commit()  
  33.             return count  
  34.         except MySQLdb.Error,e:  
  35.             con.rollback()  
  36.             print "Mysqldb Error:%s" % e  
  37.         finally:  
  38.             cur.close()  
  39.             con.close()  
  40.     #不带参数的更新方法  
  41.     def update(self,sql):  
  42.         try:  
  43.             con=self.getCon()  
  44.             cur=con.cursor()  
  45.             count=cur.execute(sql)  
  46.             con.commit()  
  47.             return count  
  48.         except MySQLdb.Error,e:  
  49.             con.rollback()  
  50.             print "Mysqldb Error:%s" % e  
  51.         finally:  
  52.             cur.close()  
  53.             con.close()  
  54.               
  55. if __name__ == "__main__":  
  56.     db=MysqldbHelper()   
  57.     def get():   
  58.         sql="select * from pythontest"  
  59.         fc=db.select(sql)  
  60.         for row in fc:  
  61.             print row["ptime"]  
  62.               
  63.     def ins():  
  64.         sql="insert into pythontest values(5,'数据结构','this is a big book',now())"  
  65.         count=db.update(sql)  
  66.         print count  
  67.     def insparam():  
  68.         sql="insert into pythontest values(%s,%s,%s,now())"  
  69.         params=(6,'C#','good book')  
  70.         count=db.updateByParam(sql,params)  
  71.         print count  
  72.     def delop():  
  73.         sql="delete from pythontest where pid=4"  
  74.         count=db.update(sql)  
  75.         print "the:"+str(count)  
  76.     def change():  
  77.         sql="update pythontest set pcontent='c# is a good book' where pid=6"  
  78.         count=db.update(sql)  
  79.         print count  
  80.           
  81.     #get()       
  82.     #ins()  
  83.     #insparam()  
  84.     #delop()  
  85.     #change()  
  86.       
  87.               
  88.               
  89.       
  90.       

附查询结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python操作mysql数据库(封装基本的增删改查) 的相关文章

  • 接口优化方案

    1 批量思想 xff1a 批量操作数据库 优化前 xff1a for循环单笔入库 for TransDetail detail transDetailList insert detail 优化后 xff1a batchInsert tran
  • springboot前端传一个对象后台怎么接受

    34 courseId 34 3 34 userId 34 34 1234456676 34 34 list 34 34 id 34 34 1 34 34 answer 34 34 B 34 34 id 34 34 1 34 34 answ
  • 前端传一个数组或者集合后台怎么接受

    34 id 34 34 1 34 34 answer 34 34 A 34 34 id 34 34 1 34 34 answer 34 34 A 34 这样的可以直接用一个 64 RequesBody List lt QuestionBac
  • Java8处理List的双层循环

    Java处理List的双层循环程序员经常遇到 xff0c 一般都是当两个List某个值满足某条件时候 xff0c 进行相应的处理 xff1b 1 list和map之间的相互转换 两个List对象当id相同的时候 注意是两个对象 而非两个集合
  • java如何抛出异常

    1 什么时候抛出异常 如果你觉得某些 问题 解决不了了 xff0c 那么你就可以抛出异常了 比如 xff0c 你在写一个service 其中在写到某段代码处 你发现可能会产生问题 xff0c 那么就请抛出异常吧 xff0c 相信我 xff0
  • 发送短信验证码过于频繁问题的解决

    1 对请求的接口做了一个限流的控制 2 利用到 AOP redis 定时器 3 在请求的congtroller层上加相应的注解就可以 具体的Demo工程如下 package com weigu xiaochuang project impo
  • spring的controller是单例还是多例

    我们经常说单例还是多例 那么究竟他们不同的根源在哪 或者说我们应该从哪一方面具体的去理解了 至于这个问题 今天做一个小的探讨 其实我们最终说的是 64 auowired注解的引入的service或mapper是不是单例还是多例的 这个是这个
  • 多线程-批量获取多条线程的执行结果

    当向线程池提交callable任务后 xff0c 我们可能需要一次性获取所有返回结果 xff0c 有三种处理方法 方法一 xff1a 自己维护返回结果 创建一个线程池 ExecutorService executorService 61 E
  • nautilus命令介绍

    nautilus 图形化桌面包括了一个叫做 Nautilus 的文件管理器 在GNOME中是Nautilus 鹦鹉螺 xff0c 而KDE中是Konqueror
  • 写个strcat函数

    include 34 stdio h 34 include lt string h gt void stracat char a char b char temp 128 char p 61 temp int alen 61 strlen
  • linux 下 tcp client的 demo

    include lt stdio h gt include lt stdlib h gt include lt string h gt include lt unistd h gt include lt sys socket h gt in
  • 解决MATLAB2020B关于找不到vs2019C++编译器问题

    在配置matlab 深度学习环境过程中 xff0c 出现找不到vs219C 43 43 编译器 问题 xff0c 尝试了各种办法 xff0c 还是失败 xff0c 经过摸索和结合他人经验 xff0c 最终成功 xff0c 予以总结 xff0
  • Ubuntu下使用w3m命令行模式浏览网页

    w3m是一个基于文本的网页浏览器 xff0c 支持多种操作系统 xff0c 在命令行终端可以很好的支持中文 即使在没有鼠标支持的情况下也可以检查网页的输出 我们一般用Ubuntu的X Windows来看图形界面的东西 xff0c 有没有想过
  • CC3D飞控说明书/使用手册

    CC3D飞控说明书 使用手册openpilot librepilot CC硬件配置 记得点赞哦 xff01 xff01 xff01
  • 串口服务器的原理及使用方法

    串口服务器是将来自TCP IP协议的数据包 xff0c 解析为串口数据流 xff1b 反之 xff0c 也可以将串口数据流打成TCP IP协议的数据包 xff0c 从而实现数据的网络传输 它能多个串口设备连接并能将串口数据流进行选择和处理
  • tcpdump命令

    tcpdump tcpdump命令介绍 tcpdump xff0c 用简单的语言概括就是dump the traffic on a network xff0c 是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工
  • 小程序登录后,接口调用失败返回401

    问题描述 xff1a 小程序登录后 xff0c 所有的内部接口不可调用 xff0c 全部授权失败 xff0c 接口返回401 xff1b 解决办法 xff1a 服务端清缓存就可以了 微信开发者工具中 xff0c 小程序多次登录 xff0c
  • 车牌识别算法 基于yolov5的车牌检测+crnn中文车牌识别 支持12种中文车牌识别

    yolov5 车牌识别算法 xff0c 支持12种中文车牌类型 基于yolov5的车牌检测 车牌矫正以及 基于CRNN的车牌识别 1 单行蓝牌 2 单行黄牌 3 新能源车牌 4 白色警用车牌 5 教练车牌 6 武警车牌 7 双层黄牌 8 双
  • LINUX nautilus 命令

    最近使用Ubuntu的时候发现了一个很好用的小命令 xff1a nautilus nautilus是GNOME桌面下的一个文件管理工具 通过这个命令我们可以在终端下非常方便的打开指定目录的文件 nautilus 命令后面一个 xff0c 表
  • 无人机学习之路——电机

    一 什么是电机 xff1f 电机是整个无人机的四肢 xff0c 没有电机来驱动的话整个无人机就无法飞起来 因此我们来重点介绍下电机的一些基础知识 本篇内容不会很详细 xff0c 不会全部介绍 xff0c 只会介绍无人机需要学习的知识 二 电

随机推荐

  • c++中“::”和“:”啥意思

    c 43 43 中 和 啥意思 1 1 类作用域操作符 指明了成员函数所属的类 如 xff1a M f s 就表示f xff08 s xff09 是类M的成员函数 2 表示 域操作符 例 xff1a 声明了一个类A xff0c 类A里声明了
  • python中执行shell脚本之subprocess模块

    一 最近subprocess使用背景和介绍 因为最近领导要求 xff0c 在Python端调用大数据的shell脚本 xff0c 所以需要用到Python来执行shell脚本 因此需要查看下subprocess模块文档 根据官网文档描述 x
  • odroid-xu4(ubuntu mate 16.04)源码编译opencv 3.2

    硬件平台 xff1a odroid xu4 软件环境 xff1a ubuntu mate 16 04 1 更新软件列表 xff1a sudo apt get update 2 安装依赖包 xff1a apt get install libq
  • Pytorch Tensor基本数学运算

    1 加法运算 示例代码 xff1a import torch 这两个Tensor加减乘除会对b自动进行Broadcasting a 61 torch rand 3 4 b 61 torch rand 4 c1 61 a 43 b c2 61
  • HC-SR04超声波测距模块介绍

    超声波简介 超声波是由机械振动产生的 可在不同介质中以不同的速度传播 具有定向性好 能量集中 传输过程中衰减较小 反射能力较强等优点 超声波传感器可广泛应用于非接触式检测方法 它不受光线 被测物颜色等影响 对恶劣的工作环境具有一定的适应能力
  • 操作系统之大端小端

    1 什么是大端 什么是小端 所谓的大端模式 xff0c 是指数据的低位保存在内存的高地址中 xff0c 而数据的高位 xff0c 保存在内存的低地址中 xff1b 所谓的小端模式 xff0c 是指数据的低位保存在内存的低地址中 xff0c
  • 激光雷达授时

    文章目录 前言部分原理图调试微信公众号 前言 给Velodyne的16和32线激光雷达授时 用的是 中科微电子 的 ATGM336H 5N31 部分原理图 部分原理图如下 J9是FAKRA接口 直接挂一个GPS有源天线 出来的TX接一个RS
  • TX2/Xavier Linux GPIO 计算

    目录 Linux GPIO子系统TX2 Linux GPIO计算Xavier Linux GPIO计算参考用C快捷计算TX2 Linux GPIO用C快捷计算Xavier Linux GPIODebug微信公众号 Linux GPIO子系统
  • Android CAN 简记

    文章目录 概要adb 连接adb 常用操作CAN配置脚本SocketCANJNIJNI与SocketCANMakefilejnican java生成的 jnican hjnican c运行github jni can NDKAndroid
  • 在C或C++中如何使用PI(π)值

    span class token macro property span class token directive keyword include span span class token string lt math h gt spa
  • 开发一个Nginx模块hello

    开发一个Nginx模块 用C语言写一个ngx http hello module c的文件 C代码 ngx http hello module c Created on Apr 25 2015 Author lizhenbin includ
  • 升级 GCC 支持C++11

    一 错误发生情景 xff1a 使用sh setup sh安装软件时 xff0c 报以下错误 xff1a configure error A compiler with support for C 43 43 11 language feat
  • C++ 访问http接口

    添加头文件 include lt wininet h gt 附加库 xff1a pragma comment lib 34 Wininet lib 34 发送 int GetURLInternal LPCSTR lpszUrl std st
  • go module go.mod

    这一次 xff0c 彻底掌握go mod 1 版本号规范 go mod 对版本号的定义是有一定要求的 xff0c 它要求的格式为 v lt major gt lt minor gt lt patch gt xff0c 如果 major 版本
  • protobuf数据类型

    四 限定符 required optional repeated 的基本规则 1 在每个消息中必须至少留有一个required类型的字段 2 每个消息中可以包含0个或多个optional类型的字段 3 repeated表示的字段可以包含0个
  • gdb如何保存和读取断点

    刚开始在linux下学编程使用gdb的同学可能会发现 xff0c 每次用gdb设置断点调试程序 xff0c 但下次打开的时候所有断点都没有了 xff0c 很不方便 下面介绍保存和读取断点的方法 1 保存断点 先用info b 查看一下目前设
  • C可变参数函数 实现

    C函数要在程序中用到以下这些宏 void va start va list arg ptr prev param type va arg va list arg ptr type void va end va list arg ptr va
  • 灰度发布系统的实现

    灰度发布 xff0c 已经不是一个很新的概念了 xff0e 一个产品 xff0c 如果需要快速迭代开发上线 xff0c 又要保证质量 xff0c 保证刚上线的系统 xff0c 一旦出现问题那么可以很快的控制影响面 xff0c 就需要设计一套
  • 软件汉化教程

    看到网上经常有人问汉化方面的东西 xff0c 我今天也来灌水一篇 xff0c 来个汉化扫盲教程 写的不好的地方欢迎大家指正 xff01 OK xff0c 现在我们进入正题 我这里所说的汉化 xff0c 是指汉化 Windows 下的 PE
  • Python操作mysql数据库(封装基本的增删改查)

    新学Python xff0c 在这里分享操作MySQL的全过程 1 安装MySQL python 1 2 3 win amd64 py2 7 exe xff0c 这是操作mysql数据库的python库 xff0c 有32位和64位之分 x