Python操作MySQL数据库的示例代码

下面是使用Python操作MySQL数据库的示例代码的完整攻略。

准备工作

在Python中操作MySQL数据库,需要先安装MySQL数据库驱动程序。常用的有两个库:pymysqlmysql-connector-python。这里以pymysql为例,安装命令如下:

pip install pymysql

连接MySQL数据库

首先,需要使用Python代码连接到MySQL数据库。示例代码如下:

import pymysql

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

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 执行 SQL 查询
cursor.execute("SELECT VERSION()")

# 获取一条数据库版本信息
data = cursor.fetchone()

print("Database version : %s " % data)

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

其中,db = pymysql.connect()方法用于连接到数据库,需要传递参数hostuserpassworddatabase分别表示数据库的主机地址、用户名、密码和数据库名称。cursor()方法创建一个游标对象,用于执行SQL语句。execute()方法用于执行SQL查询语句,fetchone()方法用于返回一条记录。最后需要用close()方法关闭数据库连接。

执行SQL语句

连接到数据库之后,就可以执行SQL语句了。示例代码如下:

import pymysql

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

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 执行 SQL 查询
cursor.execute("SELECT * FROM students")

# 获取所有记录列表
results = cursor.fetchall()
for row in results:
    sid = row[0]
    name = row[1]
    age = row[2]
    sex = row[3]
    print("id=%d,name=%s,age=%d,sex=%s" % (sid, name, age, sex))

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

以上代码实现了从MySQL数据库中查询表students的所有记录,并输出记录中的字段值。

添加、修改、删除记录

除了查询记录之外,还可以使用Python操作MySQL数据库实现添加、修改和删除记录。示例代码如下:

import pymysql

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

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 添加记录
sql = "INSERT INTO students(name,age,sex) VALUES('%s','%d','%s')" % ('Tom', 18, 'M')
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交操作
    db.commit()
    print("Add record success.")
except Exception as e:
    # 发生错误时回滚
    db.rollback()
    print("Add record failed. Error: %s" % str(e))

# 修改记录
sql = "UPDATE students SET age='%d' WHERE name='%s'" % (20, 'Tom')
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交操作
    db.commit()
    print("Update record success.")
except Exception as e:
    # 发生错误时回滚
    db.rollback()
    print("Update record failed. Error: %s" % str(e))

# 删除记录
sql = "DELETE FROM students WHERE name='%s'" % ('Tom')
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交操作
    db.commit()
    print("Delete record success.")
except Exception as e:
    # 发生错误时回滚
    db.rollback()
    print("Delete record failed. Error: %s" % str(e))

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

以上代码实现了往表students中添加一条记录,修改nameTom的记录的age字段为20,删除nameTom的记录。其中,execute()方法用于执行SQL语句,commit()方法用于提交操作,rollback()方法用于回滚操作。添加、修改、删除记录都需要执行相应的SQL语句,并在执行完成之后提交或回滚操作。

以上就是Python操作MySQL数据库的示例代码的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python操作MySQL数据库的示例代码 - Python技术站

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

相关文章

  • CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程

    标题: CentOS 6.5 x64系统中安装MongoDB 2.6.0二进制发行版教程 简介 本文将介绍在 CentOS 6.5 x64 系统中安装 MongoDB 2.6.0 二进制发行版的详细步骤。这个方法可以适用于服务器和非服务器环境。 步骤 1. 准备工作 在开始安装前,我们需要先检查系统是否具有一些必要程序: $ yum -y update $ …

    database 2023年5月22日
    00
  • Oracle基础:程序中调用sqlplus的方式

    【Oracle基础:程序中调用sqlplus的方式攻略】 在Oracle数据库开发中,有时候需要在程序中调用Sqlplus命令行工具,这个过程可以使用Java、Shell等语言实现。下面详细讲解如何在程序中调用Sqlplus命令行工具。 1、使用Java语言实现 Java程序中可以通过ProcessBuilder来调用操作系统命令行工具。下面是Java程序调…

    database 2023年5月21日
    00
  • docker redis安装及配置(外网访问 关闭安全限制 设置密码)

    docker run -p 6379:6379 –name redis -v /usr/local/redis/etc/redis.conf:/etc/redis/redis.conf -v /usr/local/redis/data:/data -d redis redis-server /etc/redis/redis.conf –appendonl…

    Redis 2023年4月11日
    00
  • MySQL在线DDL工具 gh-ost的原理解析

    MySQL在线DDL工具 gh-ost的原理解析 简介 gh-ost是一个基于Percona OSC 原理的 MySQL online DDL 工具,它可以在线帮助MySQL用户快速升级表结构、移动数据,同时避免关闭业务及长时间占用MySQL资源等问题。此外,gh-ost的操作具有可回滚性,可以很方便的撤销变更操作。 原理 基本原理 gh-ost的原理与 F…

    database 2023年5月22日
    00
  • DBCC CHECKIDENT 重置数据库标识列从某一数值开始

    当我们在数据库表中使用自增长的标识列时,如果我们不小心删除了表中的一些数据,那么下一个插入的数据行将从被删除的数据行ID编号的下一个数字开始增长,这通常会导致标识列值的空洞,而且可能导致我们的应用程序无法正确地使用表中的数据行。在这种情况下,重置数据库标识列可能是一个不错的选择。在SQL Server中,我们可以使用下面的DBCC CHECKIDENT命令来…

    database 2023年5月21日
    00
  • CentOS 7 安装并配置 MySQL 5.6的步骤详解

    CentOS 7 安装并配置 MySQL 5.6的步骤详解 MySQL是一种流行的关系型数据库管理系统,CentOS 7是一种流行的Linux操作系统。在CentOS 7上安装和配置MySQL 5.6非常简单。在本文中,我们将提供一步步的指南,演示如何在CentOS 7上安装和配置MySQL 5.6。 安装MySQL 5.6 CentOS 7默认使用Mari…

    database 2023年5月22日
    00
  • Go中时间与时区问题的深入讲解

    Go中时间与时区问题的深入讲解 在Go语言中处理时间相关问题非常方便和灵活,但时区问题常常会引起误解和困惑。本文将深入探讨Go中的时间和时区问题,并提供示例和攻略以帮助开发者优雅地处理时间和时区问题。 Go中的时间类型 在Go中时间可以表示为time.Time类型。time.Time类型的零值代表UTC时间的起始时间“0001-01-01 00:00:00 …

    database 2023年5月18日
    00
  • nodejs的10个性能优化技巧

    Node.js的10个性能优化技巧 Node.js的优势之一是其快速的单线程运行模式,但是如果不小心编写了低效的代码,就可能导致应用程序的性能下降。为了避免这种情况,我们提供了以下10个性能优化技巧。 1. 引入适当的模块 在Node.js中,我们可以使用“require”函数引入模块,但是不需要所有的模块都被引入。如果您的代码只需要使用某个模块的一部分内容…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部