Python连接MySQL数据库图文教程,Python连接数据库MySQL入门教程

文章目录

  • 前言
  • 1. 环境准备
    • 1.1安装 Python
    • 1.2选择开发环境
    • 1.3安装 MySQL 数据库
    • 1.4 安装 pymysql 库
  • 2. 连接数据库
  • 3. 数据库基本操作
    • 3.1 创建数据库
    • 3.2 创建表
    • 3.3 插入数据
    • 3.4 查询数据
    • 3.5 更新数据
    • 3.6 删除数据
    • 4. 实际应用案例


前言

本教程旨在为广大初学者和有一定基础的开发者提供一个全面、详细且易于理解的 Python 连接 MySQL 数据库的学习指南。我们将从环境准备开始,逐步引导你完成 MySQL 数据库的安装、Python 相关库的安装,然后详细介绍如何建立数据库连接,以及如何进行数据库的基本操作,如创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等。同时,我们还会通过实际的应用案例,帮助你更好地理解和掌握 Python 与 MySQL 数据库的结合使用,让你能够将所学知识应用到实际项目中。


Python连接MySQL数据库教程
以下是一份全面的 Python 连接 MySQL 数据库教程,包含环境准备、数据库操作基础以及实际应用案例等内容。

1. 环境准备

1.1安装 Python

访问 Python 官方网站,根据你的操作系统(Windows、Mac 或 Linux)下载并安装 Python 3.x 版本。安装时勾选 “Add Python to PATH”,方便在命令行中使用 Python。

Python 3.7安装教程:https://blog.csdn.net/u014164303/article/details/145620847
Python 3.9安装教程:https://blog.csdn.net/u014164303/article/details/145570561
Python 3.11安装教程:https://blog.csdn.net/u014164303/article/details/145549489

1.2选择开发环境

下载 PyCharm 社区版(免费)或专业版(需付费或申请教育版)。安装完成后,打开 PyCharm,创建一个新的项目,在项目设置中选择之前创建的虚拟环境作为项目的 Python 解释器。PyCharm 功能强大,提供代码自动补全、调试等功能,适合开发大型项目。

Pycharm安装教程:https://blog.csdn.net/u014164303/article/details/145674773
PyCharm下载地址:https://pan.quark.cn/s/5756c8cf8b2a

1.3安装 MySQL 数据库

如果你还没有安装 MySQL 数据库,可以从 MySQL 官方网站 下载适合你操作系统的安装程序,然后按照安装向导进行安装。安装完成后,启动 MySQL 服务,并记住你设置的用户名和密码。

mysql 8.0安装教程:https://blog.csdn.net/u014164303/article/details/145493332

1.4 安装 pymysql 库

pymysql 是一个纯 Python 实现的 MySQL 客户端库,使用它可以方便地在 Python 中连接和操作 MySQL 数据库。在命令行中运行以下命令来安装 pymysql:

pip install pymysql

2. 连接数据库

以下是一个简单的 Python 代码示例,展示了如何连接到 MySQL 数据库:

import pymysql# 建立数据库连接
try:conn = pymysql.connect(host='localhost',  # 数据库主机地址,本地数据库一般为 'localhost'user='root',  # 数据库用户名password='your_password',  # 数据库密码,替换为你自己设置的密码database='test_db',  # 要连接的数据库名,如果不存在需要先创建charset='utf8mb4'  # 字符编码)print("数据库连接成功!")
except pymysql.Error as e:print(f"数据库连接失败:{e}")
finally:if conn:conn.close()

3. 数据库基本操作

3.1 创建数据库

如果你需要创建一个新的数据库,可以使用以下代码:

import pymysql# 建立数据库连接,这里不指定具体数据库名
conn = pymysql.connect(host='localhost',user='root',password='your_password',charset='utf8mb4'
)try:# 创建游标对象cursor = conn.cursor()# 执行创建数据库的 SQL 语句cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")print("数据库创建成功!")
except pymysql.Error as e:print(f"数据库创建失败:{e}")
finally:if conn:conn.close()

3.2 创建表

在连接到指定数据库后,可以创建表来存储数据。以下是一个创建用户表的示例:

import pymysql# 建立数据库连接
conn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义创建表的 SQL 语句create_table_sql = """CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT)"""cursor.execute(create_table_sql)print("表创建成功!")
except pymysql.Error as e:print(f"表创建失败:{e}")
finally:if conn:conn.close()

3.3 插入数据

可以向表中插入新的数据记录,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义插入数据的 SQL 语句insert_sql = "INSERT INTO users (name, age) VALUES (%s, %s)"data = ('John', 25)cursor.execute(insert_sql, data)# 提交事务conn.commit()print("数据插入成功!")
except pymysql.Error as e:# 回滚事务conn.rollback()print(f"数据插入失败:{e}")
finally:if conn:conn.close()

3.4 查询数据

可以从表中查询数据,以下是一个简单的查询示例:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义查询数据的 SQL 语句select_sql = "SELECT * FROM users"cursor.execute(select_sql)# 获取查询结果results = cursor.fetchall()for row in results:print(row)
except pymysql.Error as e:print(f"数据查询失败:{e}")
finally:if conn:conn.close()

3.5 更新数据

如果需要修改表中的数据记录,可以使用更新操作,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义更新数据的 SQL 语句update_sql = "UPDATE users SET age = %s WHERE name = %s"new_age = 26name = 'John'cursor.execute(update_sql, (new_age, name))conn.commit()print("数据更新成功!")
except pymysql.Error as e:conn.rollback()print(f"数据更新失败:{e}")
finally:if conn:conn.close()

3.6 删除数据

可以从表中删除指定的数据记录,示例代码如下:

import pymysqlconn = pymysql.connect(host='localhost',user='root',password='your_password',database='test_db',charset='utf8mb4'
)try:cursor = conn.cursor()# 定义删除数据的 SQL 语句delete_sql = "DELETE FROM users WHERE name = %s"name = 'John'cursor.execute(delete_sql, (name,))conn.commit()print("数据删除成功!")
except pymysql.Error as e:conn.rollback()print(f"数据删除失败:{e}")
finally:if conn:conn.close()

4. 实际应用案例

假设你正在开发一个简单的学生信息管理系统,需要使用 Python 连接 MySQL 数据库来存储和管理学生信息。以下是一个完整的示例代码:

import pymysql# 连接数据库
def connect_db():try:conn = pymysql.connect(host='localhost',user='root',password='your_password',database='student_management',charset='utf8mb4')return connexcept pymysql.Error as e:print(f"数据库连接失败:{e}")return None# 创建学生表
def create_table(conn):try:cursor = conn.cursor()create_table_sql = """CREATE TABLE IF NOT EXISTS students (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,age INT,grade VARCHAR(50))"""cursor.execute(create_table_sql)conn.commit()print("学生表创建成功!")except pymysql.Error as e:conn.rollback()print(f"学生表创建失败:{e}")# 插入学生信息
def insert_student(conn, name, age, grade):try:cursor = conn.cursor()insert_sql = "INSERT INTO students (name, age, grade) VALUES (%s, %s, %s)"cursor.execute(insert_sql, (name, age, grade))conn.commit()print("学生信息插入成功!")except pymysql.Error as e:conn.rollback()print(f"学生信息插入失败:{e}")# 查询所有学生信息
def query_all_students(conn):try:cursor = conn.cursor()select_sql = "SELECT * FROM students"cursor.execute(select_sql)results = cursor.fetchall()for row in results:print(row)except pymysql.Error as e:print(f"学生信息查询失败:{e}")# 主函数
def main():conn = connect_db()if conn:create_table(conn)insert_student(conn, 'Alice', 18, 'Grade 12')query_all_students(conn)conn.close()if __name__ == "__main__":main()

通过以上步骤和示例代码,你可以掌握如何使用 Python 连接和操作 MySQL 数据库。在实际应用中,还可以根据具体需求对代码进行扩展和优化。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/23436.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JavaWeb开发入门:从前端到后端的完整流程解析

一、JavaWeb简介 1、C/S 客户端/服务器结构 2、B/S(Browser/Server,浏览器/服务器)结构 二、开发环境搭建 1. 安装Tomcat--一个小型的web容器。 2. 在eclipse中配置tomcat创建项目 三、JavaWeb开发流程 1. 前端页面设计 2. 后端逻辑…

Linux 常见命令全解析

一、文件操作命令 1. ls ls是列出目录内容的命令。简单输入ls,会展示当前目录下的文件和目录列表。想要获取更详细的信息,比如文件权限、所有者、大小、修改时间等,使用ls -l。若要显示所有文件,包括以点(.&#xff…

unordered_set和unordered_map的使用

Hello,今天我来为大家介绍一下前几年才刚刚新出的两个容器——unordered_map和unordered_set,这两个容器属于是map系列和set系列中的一种,和map/set不同的是它们的底层,map/set的底层是红黑树,而unordered_map/unorder…

【每日八股】计算机网络篇(一):概述

OSI 的 7 层网络模型? OSI(Open Systems Interconnection,开放互联系统)是由国际标准化组织(ISO)提出的一种网络通信模型。 自上而下,OSI 可以被分为七层,分别是:应用层…

DeepSeek 提示词:高效的提示词设计

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…

HarmonyOS简

文章为官方教程以及自己的部分理解,用于上下班的查看学习。官方视频教程地址:HarmonyOS应用开发者基础认证-华为开发者学堂 (huawei.com) 应用发开的机遇、挑战和趋势 带来的问题 问题:万物互联,智能设备从几十亿手机拓展到数百…

conda 基本命令

1、查询当前所有的环境 conda env list 2、创建虚拟环境 conda create -n 环境名 [pythonpython版本号] 其中[pythonpython版本号]可以不写 conda create -n test python3.12 我们输入conda env list看到我们的环境创建成功了,但是发现他是创建在我们默认的C盘的…

PythonWeb开发框架—Django之DRF框架的使用详解

1.安装依赖包 pip install djangorestframework 2.配置应用 在settings.py中的INSTALLED_APPS中添加rest_framework应用 3.创建序列化器 序列化器是用来操作models的 第一步:定义models ##models.pyfrom django.db import models# Create your models here.cl…

硬件加速与技术创新双轮驱动:DeepSeek和ChatGPT性能进阶的未来蓝图

🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 ​ Linux网络编程笔记: https://blog.cs…

让子弹飞的DeepSeek火锅诗和《软件方法》

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 我在知乎上面看到了这样的一个问题:DeepSeek写出过哪些惊艳的诗词? 有一位答主讲了他以《让子弹飞》作为素材让DeepSeek写诗的故事:要有风&#xf…

输入搜索、分组展示选项、下拉选取,el-select 实现:即输入关键字检索,返回分组选项,选取跳转到相应内容页 —— VUE 项目-全局模糊检索

后端数据代码写于下一篇:输入搜索、分组展示选项、下拉选取,全局跳转页,el-select 实现 —— 后端数据处理代码,抛砖引玉展思路 【效果图】:分组展示选项 >【提供界面操作体验】 【录制效果视频展示】&#xff1a…

【Linux】初识进程概念与 fork 函数的应用

Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具Linux下进度条冯诺依曼体系与计算机系统架构 进程是操作系统中资源分配和调度的核心单位&#…

【linux】自主shell编写

🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.输出命令行02.获取用户命令字符串03.命令行字符串分割04.执行命令05.细节修改检查是否为内建命令 完整代码: 01.输出命令行 完成对一个shell 的编写,首…

小程序高度问题背景scss

不同的机型&#xff0c;他的比例啥的都会不一样&#xff0c;同样的rpx也会有不同的效果。所以这里选择了取消高度。 <view class"box-border" :style"{padding-top: ${navHeight}px,}"><!-- 已登录 --><view v-if"userStore.userInfo&…

DeepSeek 15天指导手册——从入门到精通 PDF(附下载)

DeepSeek使用教程系列--DeepSeek 15天指导手册——从入门到精通pdf下载&#xff1a; https://pan.baidu.com/s/1PrIo0Xo0h5s6Plcc_smS8w?pwd1234 提取码: 1234 或 https://pan.quark.cn/s/2e8de75027d3 《DeepSeek 15天指导手册——从入门到精通》以系统化学习路径为核心&…

element-ui的组件使用

1. 安装 Element UI&#xff08;在文件夹最上面输入cmd进入dos窗口&#xff0c;然后输入安装指令 npm install element-ui --save&#xff09; 2.在main.js文件全局引入(main.js文件负责 全局注册 )&#xff0c;在该文件注册的所有组件在其他文件都能直接调用&#xff0c;一般…

List的模拟实现(2)

前言 上一节我们讲解了list的基本功能&#xff0c;那么本节我们就结合底层代码来分析list是怎么实现的&#xff0c;那么废话不多说&#xff0c;我们正式进入今天的学习&#xff1a;&#xff09; List的底层结构 我们先来看一下list的底层基本结构&#xff1a; 这里比较奇怪的…

RT-Thread+STM32L475VET6实现红外遥控实验

文章目录 前言一、板载资源介绍二、具体步骤1. 确定红外接收头引脚编号2. 下载infrared软件包3. 配置infrared软件包4. 打开STM32CubeMX进行相关配置4.1 使用外部高速时钟&#xff0c;并修改时钟树4.2 打开定时器16(定时器根据自己需求调整)4.3 打开串口4.4 生成工程 5. 打开HW…

速通HTML

HTML基础 1.快捷键 基于VS Code记录编写过程中常用的快捷键 功能快捷键生成HTML基本骨架!回车保存代码CtrlS在浏览器运行代码AltB注释Ctrl/缩进Tab取消缩进ShiftTab收起侧边栏CtrlB 先保存&#xff0c;再在浏览器运行才能刷新 2.标签 标签作用h1——h6双标签标题标签&#…

WebXR教学 01 基础介绍

什么是WebXR&#xff1f; 定义 XR VR AR Web上使用XR技术的API WebXR 是一组用于在 Web 浏览器中实现虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09;应用的技术标准。它由 W3C 的 Immersive Web 工作组开发&#xff0c;旨在提供跨设备的沉浸式体验…