Python数据库编程之pymysql详解

Python数据库编程之pymysql详解

什么是pymysql

pymysql是Python语言上的一个Mysql数据库接口,它遵循Python数据库API v2.0规范,使用方式与Python内置的sqlite3、PostgreSQL数据库上的psycopg2等类似。pymysql具有易用性、模块化、线程安全和SQL注入安全等优点,在使用Python进行MySQL数据库编程时,是一个非常好的选择。

安装pymysql

在使用pymysql进行数据库编程之前,我们需要先安装它。安装方法如下:

pip install pymysql

连接MySQL

pymysql通过connect()方法连接到MySQL数据库。connect()方法的参数包括host、port、user、password、database等。示例代码如下:

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="testdb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# 使用execute()方法执行SQL查询
cursor.execute("SELECT VERSION()")

# 使用fetchone()方法获取单条数据
data = cursor.fetchone()
print("Database version : %s " % data)

# 关闭数据库连接
db.close()

注:该示例代码假设存在一个名为testdb的MySQL数据库

CRUD操作

CRUD(Create、Retrieve、Update、Delete)是数据库操作中最基本的四种操作。在pymysql中,进行CRUD操作的方法包括execute()、executemany()、fetchone()、fetchall()、fetchmany()、commit()等。示例代码如下:

创建数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="testdb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL语句
sql = "INSERT INTO employee(name, age, sex, income) VALUES('%s', '%d', '%c', '%d')" % ('Tom', 23, 'M', 5000)

try:
   # 执行SQL语句
   cursor.execute(sql)
   # 提交修改
   db.commit()
   print("数据插入成功")
except:
   # 发生错误时回滚
   db.rollback()
   print("数据插入失败")

# 关闭数据库连接
db.close()

查询数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="testdb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL语句
sql = "SELECT * FROM employee WHERE income > '%d'" % (1000)

try:
   # 执行SQL语句
    cursor.execute(sql)
   # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        name = row[0]
        age = row[1]
        sex = row[2]
        income = row[3]
        # 打印结果
        print("Name=%s,Age=%d,Sex=%s,Income=%d" % (name, age, sex, income))
except:
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()

更新数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="testdb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL语句
sql = "UPDATE employee SET age = age + 1 WHERE sex = '%c'" % ('M')

try:
   # 执行SQL语句
    cursor.execute(sql)
   # 提交修改
    db.commit()
    print("数据更新成功")
except:
    # 发生错误时回滚
    db.rollback()
    print("数据更新失败")

# 关闭数据库连接
db.close()

删除数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="123456", database="testdb")

# 使用cursor()方法获取操作游标
cursor = db.cursor()

# SQL语句
sql = "DELETE FROM employee WHERE income > '%d'" % (1000)

try:
   # 执行SQL语句
    cursor.execute(sql)
   # 提交修改
    db.commit()
    print("数据删除成功")
except:
    # 发生错误时回滚
    db.rollback()
    print("数据删除失败")

# 关闭数据库连接
db.close()

以上就是基本的pymysql操作,读者可以根据需求进行进一步的学习和实践。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python数据库编程之pymysql详解 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • JQuery的Ajax请求实现局部刷新的简单实例

    下面是关于“JQuery的Ajax请求实现局部刷新的简单实例”的完整攻略,包含两个示例说明。 简介 在Web开发中,我们经常需要使用Ajax请求来实现局部刷新。JQuery是一个流行的JavaScript库,提供了方便的Ajax请求功能。在本攻略中,我们将介绍如何使用JQuery的Ajax请求实现局部刷新,包括发送请求、处理响应等步骤。 步骤 在使用JQue…

    云计算 2023年5月16日
    00
  • 免费发短信,短信云计算??

    http://sinaurl.cn/htoDe http://freesms.cloudapp.net/ 免费发短信的网站,可任意发送短息,无需注册,匿名可发送!不过,只可以发英文! 试试!! 网站提到了 Cloud SMS ,难道是短信云计算?

    云计算 2023年4月10日
    00
  • 工业互联网:加速从“中国制造”迈向“中国智造”

    摘要:在推进制造业智能化的过程中,除设备本身数字化外,基于工业互联网实现设备互联和全流程智能化已成为最重要方向之一。 本文分享自华为云社区《【华为云Stack】【大架光临】第18期:工业互联网:加速从“中国制造”迈向“中国智造”》,作者:华为云Stack 制造行业总经理 崔新。 随着全球数字化浪潮的到来,中国制造业也在快速转型。国家“十一五”和“十二五”提出…

    云计算 2023年5月4日
    00
  • python 基于UDP协议套接字通信的实现

    Python基于UDP协议套接字通信的实现可以分为发送端和接收端两部分。其中,发送端负责向指定的目标地址发送数据,接收端负责从指定的端口接收数据。 1. 发送端程序实现 1.1 导入模块 Python中实现UDP协议通信需要使用socket模块,因此需要先导入该模块。 import socket 1.2 创建socket对象 接下来需要创建socket对象。…

    云计算 2023年5月18日
    00
  • 云计算时代前端如何保证开源代码的安全性

    云技术和我们的生活息息相关,日常生活中访问的网页,刷的短视频,用的云盘等都是云计算提供的服务。那在云计算时代,前端可以做什么呢? 作者:京东零售  张梦雨 云技术和我们的生活息息相关,日常生活中访问的网页,刷的短视频,用的云盘等都是云计算提供的服务。那在云计算时代,前端可以做什么呢? 一、云技术与前端 在前端发展初期,前端只需完成静态页面和交互的开发即可,然…

    2023年4月10日
    00
  • 使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友

    下面是使用Python3调用wxpy模块监控Linux日志并定时发送消息给群组或好友的完整攻略: 简述 wxpy是一个微信机器人API,使用它可以实现微信自动化操作,包括自动回复、自动发送消息等。本攻略将介绍如何使用wxpy模块在Linux系统下监控日志并定时发送消息给群组或好友。 安装wxpy模块 首先需要在Linux系统中安装wxpy模块,可以使用pip…

    云计算 2023年5月18日
    00
  • Python模块、包(Package)概念与用法分析

    Python模块、包(Package)概念与用法分析 Python中使用模块和包可以使程序更具有组织性、可读性和可维护性。在这里,我们将深入探讨Python模块和包的概念,并详细说明它们的用法和示例。 Python模块 概念 一个Python模块是一个包含Python代码的文件,拥有一个模块名,可以由其他Python代码导入使用。模块可以包含定义函数、类和变…

    云计算 2023年5月18日
    00
  • 基于云边协同架构的五大应用场景革新

    从概念到场景落地,边缘云加速革新,颠覆体验,拟造丰沛生态。 边缘云的概念自明确以来已有四个多年头。 什么是边缘云? 边缘云,即把公共云的能力放在离数据发生端和消费端最近的地方,提升数据的处理效率,承载更多场景,同时降低数据的搬运成本。 在边缘云的演进过程中,阿里云提炼出边缘云技术发展的三大价值驱动力,通过云边协同的方式,推动企业数字化发展,为用户带去更多的可…

    云计算 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部