首页 > 数据库 >软件测试|使用PyMySQL访问MySQL数据库的详细指南

软件测试|使用PyMySQL访问MySQL数据库的详细指南

时间:2023-09-15 12:13:09浏览次数:56  
标签:students 数据库 sql db PyMySQL cursor connect MySQL 软件测试

在这里插入图片描述

简介

PyMySQL是Python中流行的MySQL数据库驱动程序,它提供了便捷的方法来连接、查询和更新MySQL数据库。本文将为您提供使用PyMySQL访问MySQL数据库的详细指南,包括安装PyMySQL、连接数据库、执行查询和更新操作等。

获取更多技术资料,请点击!

环境准备

在开始之前,您需要确保已经安装了PyMySQL库。可以使用pip命令进行安装:

pip install pymysql

连接到数据库

首先需要建立与MySQL数据库的连接。使用PyMySQL库的示例代码如下:

pymysql.connect(
    host = 'localhost',
    port = 3306,
    user = 'root',
    password = '123456',
    db ='students',
    charset = 'utf8'
)

调用connect 方法生成一个 connect 对象, 通过这个对象来访问数据库

connect 方法的主要参数

  • user,访问数据库的用户
  • password,访问数据库的密码
  • host,Mysql 数据库服务所在的主机
  • port,Mysql 数据库服务的端口号,默认值为 3306
  • db,数据库名
  • charset,字符编码

connect 对象

  • 使用 connect() 方法与数据库连接成功后,connect() 方法返回一个 connect() 对象
  • 与数据库进行通信时, 向 connect 对象发送 SQL 查询命令, 并 connect 对象接收 SQL 查询结果

常用方法

  • close(), 关闭数据库连接
  • commit(),提交当前事务
  • rollback(),取消当前事务
  • cursor(),创建一个游标对象用于执行 SQL 查询命令

cursor 对象

cursor 对象用于执行 SQL 命令和得到 SQL 查询结果

常用方法

  • close(),关闭游标对象
  • execute(),执行一个数据库查询或命令
  • fetchone(),返回结果集的下一行
  • fetchall(),返回结果集中所有行

创建数据库

我们创建一个名为students的库,并创建一个名为students的表,包含idnameage三个字段,代码如下:

db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='1234567890',
    db='students',
    charset='utf8'
)

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

sql = """SET character_set_database=utf8;
SET character_set_server=utf8;
DROP DATABASE IF EXISTS students;
CREATE DATABASE students;
USE school;"""
lists = sql.split("\n")
for i in lists:
    cursor.execute(i)

create_sql = """
CREATE TABLE students(
    id VARCHAR(32),
    name VARCHAR(32),
    age INT
);
"""
cursor.execute(create_sql)
insert_sql = """
INSERT INTO students(id, name, age) VALUES ('202301', '穆勒', '18');
"""
cursor.execute(insert_sql)
db.commit()
db.close()

查询数据

查询数据之前,我们先要与数据库进行连接,一旦建立了数据库连接,就可以执行各种查询操作。

db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='1234567890',
    db='students',
    charset='utf8'
)

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

fetchall匹配

返回全部匹配结果

sql = "select * from students;"

rows = cursor.execute(sql)

# 记录数
print("there are %d students" % rows)

# 可迭代对象
students = cursor.fetchall()
# 循环输出
for i in students:
    print(i)


# 输出结果
there are 1 students
('202301', '穆勒', 18)

fetchone匹配

返回一条记录

# 查询数据 - fetchone
sql = "select * from students;"

rows = cursor.execute(sql)

# 根据记录数循环
for i in range(rows):
    student = cursor.fetchone()
    print(student)


# 输出结果
('202301', '穆勒', 18)

fetchmany匹配

可以自定义返回多少条记录数

# 查询数据 - fetchmany
sql = "select * from students;"

rows = cursor.execute(sql)

# 可迭代对象
students = cursor.fetchmany(3)

# 循环结果集
for i in students:
    print(i)


# 输出结果
('202301', '穆勒', 18)

插入数据

db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='1234567890',
    db='students',
    charset='utf8'
)

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

# 增加数据
id = 202302
name = "基米希"
age = 24

sql = 'insert into students(id,name,age) VALUES("%s", "%s", %d)' % (id, name, age)

# 执行 insert sql
rows = cursor.execute(sql)

# 查看 insert 语句返回结果,其实就是执行成功了多少条数据
print('Insert %d students' % rows)

# 只有调用了 commit 方法才能将数据落盘,即提交 insert 操作
db.commit()


# 输出结果
Insert 1 students

修改数据

db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='1234567890',
    db='students',
    charset='utf8'
)

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

# 更新数据
id = 202302
name = "基米希"
age = 16

sql = 'UPDATE students SET name="%s", age=%d WHERE sno="%s"' % (name, age, id)

# 执行 update sql
rows = cursor.execute(sql)

# 返回成功修改记录的条数
print('update %d students' % rows)

# 调用 commit,才会将 update 操作提交
db.commit()


# 输出结果
update 1 students

删除数据

db = pymysql.connect(
    host='localhost',
    port=3306,
    user='root',
    password='1234567890',
    db='students',
    charset='utf8'
)

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

# 更新数据
sno = 202302
name = "小菠萝"
age = 14

sql = 'DELETE FROM students'

# 执行 delete sql
rows = cursor.execute(sql)

# 返回成功修改记录的条数
print('delete %d students' % rows)

# 调用 commit,才会将 delete 操作提交
db.commit()


# 输出结果
delete 2 students

总结

本文介绍了使用PyMySQL操作MySQL数据库的详细步骤。从安装PyMySQL开始,连接数据库,执行查询和增加修改删除操作,这些都是使用PyMySQL访问MySQL数据库所需的关键步骤。希望本文能够帮助您使用PyMySQL轻松地操作MySQL数据库,并实现您的数据存储和检索需求。

标签:students,数据库,sql,db,PyMySQL,cursor,connect,MySQL,软件测试
From: https://www.cnblogs.com/hogwarts/p/17704734.html

相关文章

  • 软件测试|深入学习 Docker Logs
    简介Docker是一种流行的容器化技术,它能够帮助用户将应用程序及其依赖项打包成一个可移植的容器。Dockerlogs是Docker提供的用于管理容器日志的命令,本文将深入学习Dockerlogs的使用和管理,帮助用户更好地监测和解决容器问题。DockerLogs命令dockerlogs命令是Docker......
  • 软件测试|Docker Kill/Pause/Unpause命令详细使用指南
    简介Docker是一种流行的容器化平台,提供了各种命令和功能来管理和操作容器。本文将详细介绍Docker中的三个重要命令:kill、pause和unpause。我们将深入了解它们的作用、用法和示例,帮助您更好地理解和使用这些命令。什么是DockerKill/Pause/Unpause命令?Docker提供了几个与容器生......
  • 软件测试|Docker exec命令详细使用指南
    简介Dockerexec命令是Docker提供的一个强大工具,用于在正在运行的容器中执行命令。本文将详细介绍Dockerexec命令的用法和示例,帮助大家更好地理解和使用这个命令。Docker是一种流行的容器化平台,允许我们在容器中运行应用程序。有时候,在容器内执行命令可以帮助我们调试、排查问......
  • MySQL索引详解(Hash、AVL、红黑树、B、B+)
    MySQL索引详解|JavaGuide(Java面试+学习指南)索引介绍索引是一种用于快速查询和检索数据的数据结构,其本质可以看成是一种排序好的数据结构。索引的作用就相当于书的目录。打个比方:我们在查字典的时候,如果没有目录,那我们就只能一页一页的去找我们需要查的那个字,速度很慢。......
  • MySQL长文本字段的选取
    某个字段需要存储长文本类型的数据,长度可变,范围不清.varchar最多能存储多大长度呢?何种情况下用text更好?<1>.先将content字段设为varchar(255),则此字段只能最多存储255个字符数packagemainimport"fmt"funcmain(){ varstrstring fori:=1;i<=255;i++{ ......
  • 软件测试|Python Selenium 库安装使用指南
    简介Selenium是一个用于自动化浏览器操作的强大工具,它可以模拟用户在浏览器中的行为,例如点击、填写表单、导航等。在本指南中,我们将详细介绍如何安装和使用Python的Selenium库。安装Selenium库使用以下命令可以通过pip安装Selenium库:pipinstallselenium安装WebDriver......
  • 软件测试|好用的pycharm插件推荐(四)——Translation
    前言在我们的日常工作中,经常会遇到需要查看各个第三方库源码的问题,在很多情况下,我们的英语能力不能够满足我们完全读懂源码,所以我们就需要借助翻译工具来帮助我们理解第三方库的源码,如果我们将源码复制再使用其他工具翻译,会显得比较繁琐,如果有一个直接翻译的插件能够使用的话,就会方......
  • Asp.net的项目SqlServer数据库迁移到MySql
    1、环境Windows10+VS2015+.Net4.5.2+MySql5.72、准备   1)、NavicatPremium15(用于数据库转换,其它版本的亦可)   2)、Vs2015   3)、安装mysql-connector-net-6.9.9.msi   4)、安装mysql-for-visualstudio-1.2.6.msi3、数据库转换  1)、打开nav......
  • mysql 字段前两位替换成其他字符 mysql字符替换函数
    一、字符串处理函数1、REPLACE()字符串替换语法:REPLACE(str,old_str,new_str);含义:将str中的old_str替换为new_str字符串。注意:当搜索要替换的文本时,MySQL使用区分大小写匹配来执行要替换的字符串搜索。示例:将"helloworld!"中hello字符串替换为hi。SELECTREPLACE('hel......
  • MySQL 分表查询
    分表是一种数据库分割技术,用于将大表拆分成多个小表,以提高数据库的性能和可管理性。在MySQL中,可以使用多种方法进行分表,例如基于范围、哈希或列表等。下面将详细介绍MySQL如何分表以及分表后如何进行数据查询。基于哈希的分表基于哈希的分表是一种将数据分散到多个子表中的数据......