当前位置: 首页 > article >正文

如何使用 Python 连接 MySQL 数据库?什么是 ORM(对象关系映射),如何使用

数据库是现代软件开发中的核心部分,而 Python 作为一种流行的编程语言,广泛应用于数据处理和分析工作。通常我们需要通过 Python 连接数据库并执行一些常见的操作,如插入、查询、更新和删除数据。在实际开发中,MySQL 是非常常用的一种数据库管理系统。

本文将介绍如何使用 Python 连接 MySQL 数据库,并解释如何通过 ORM(对象关系映射)这种方式来简化数据库操作,提升开发效率。
在这里插入图片描述

一、MySQL 数据库简介

1.1 什么是 MySQL?

MySQL 是一种开源的关系型数据库管理系统(RDBMS),使用结构化查询语言(SQL)进行数据库操作。它支持多用户、多线程,可以处理大规模的数据集。MySQL 在许多应用场景中都得到了广泛使用,特别是在 Web 开发中。

特点

  • 开源,支持多种操作系统。
  • 支持大规模数据存储和快速数据访问。
  • 具有强大的安全性和灵活性。
  • 拥有广泛的社区支持和丰富的文档资源。

1.2 数据库的基本操作

在数据库中,数据通常以表的形式存储。每个表由若干行(记录)和列(字段)组成,表之间可以通过外键建立联系。SQL 提供了对这些表进行操作的标准语句,主要包括:

  • 插入:将数据插入表中。
  • 查询:从表中获取数据。
  • 更新:修改表中的数据。
  • 删除:删除表中的数据。

二、使用 Python 连接 MySQL 数据库

在 Python 中,我们可以使用多种库来连接 MySQL 数据库。常用的库包括 MySQL ConnectorPyMySQLSQLAlchemy 等。下面以 MySQL Connector 为例,详细讲解如何连接 MySQL 数据库并执行基本的数据库操作。

2.1 安装 MySQL Connector

MySQL Connector 是官方提供的一个用于连接 MySQL 数据库的 Python 库。在安装这个库之前,确保已经安装了 Python 和 MySQL 数据库。如果还没有安装,可以通过以下命令进行安装:

pip install mysql-connector-python

2.2 连接数据库

要连接 MySQL 数据库,首先需要提供一些必要的配置信息,如数据库的地址、用户名、密码等。通过 mysql.connector 模块中的 connect 方法,我们可以创建与数据库的连接。

import mysql.connector

# 连接到 MySQL 数据库
db_connection = mysql.connector.connect(
    host="localhost",   # 数据库主机地址
    user="yourusername", # 用户名
    password="yourpassword", # 密码
    database="yourdatabase"  # 数据库名称
)

# 检查连接是否成功
if db_connection.is_connected():
    print("成功连接到数据库")

2.3 执行 SQL 查询

建立连接后,接下来我们可以使用 SQL 语句对数据库进行操作。为了执行 SQL 语句,我们需要创建一个 游标对象(cursor)。游标用于执行 SQL 语句,并在必要时返回结果。

# 创建游标对象
cursor = db_connection.cursor()

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

# 获取查询结果
result = cursor.fetchall()

# 输出结果
for row in result:
    print(row)

2.4 插入数据

通过 execute 方法可以执行各种 SQL 语句,比如插入数据。以下是一个插入数据的示例:

# 插入数据
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
values = ("John", "john@example.com")

cursor.execute(sql, values)

# 提交事务
db_connection.commit()

print(f"插入了 {cursor.rowcount} 条数据")

2.5 更新和删除数据

更新和删除操作与插入数据的方式类似。我们只需要修改 SQL 语句即可:

  • 更新数据
sql = "UPDATE users SET email = %s WHERE name = %s"
values = ("newemail@example.com", "John")

cursor.execute(sql, values)
db_connection.commit()

print(f"更新了 {cursor.rowcount} 条数据")
  • 删除数据
sql = "DELETE FROM users WHERE name = %s"
values = ("John",)

cursor.execute(sql, values)
db_connection.commit()

print(f"删除了 {cursor.rowcount} 条数据")

2.6 关闭连接

在完成数据库操作后,记得关闭游标和数据库连接:

# 关闭游标
cursor.close()

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

三、什么是 ORM(对象关系映射)?

在传统的数据库操作中,开发者需要编写大量的 SQL 语句,并手动将数据从关系型数据库的表映射到 Python 中的对象。这个过程不仅繁琐,还容易出错。因此,为了简化数据库操作,ORM(对象关系映射)技术应运而生。

3.1 ORM 的定义

ORM(Object-Relational Mapping,对象关系映射)是一种将编程语言中的对象与关系型数据库中的表相互映射的技术。ORM 使得开发者无需直接编写 SQL 语句,而是通过操作编程语言中的对象,来实现对数据库的操作。

通过 ORM,表中的每一行数据可以映射为一个对象,表的列对应对象的属性,数据库的操作(插入、更新、删除等)可以通过对对象的方法调用来完成。

3.2 ORM 的优点

使用 ORM 的主要优点如下:

  • 提高开发效率:使用 ORM 后,开发者可以直接操作对象,而不需要编写繁琐的 SQL 语句。
  • 可维护性强:代码更简洁、清晰,减少了编写 SQL 语句的出错机会。
  • 数据库无关性:很多 ORM 框架支持多种数据库(如 MySQL、PostgreSQL、SQLite 等),因此项目迁移数据库时,只需要修改 ORM 配置即可。

3.3 Python 中常见的 ORM 库

Python 中最流行的 ORM 库是 SQLAlchemyDjango ORM。其中,SQLAlchemy 是一个独立的 ORM 库,适用于各种项目,而 Django ORM 则是 Django 框架内置的 ORM,适用于 Django 项目。

3.3.1 SQLAlchemy 示例

我们以 SQLAlchemy 为例,演示如何使用 ORM 来操作数据库。

首先,需要安装 SQLAlchemy:

pip install sqlalchemy

然后,我们可以定义数据库模型,模型类对应数据库中的表,模型的属性对应表的列。

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 创建数据库引擎
engine = create_engine('mysql+mysqlconnector://username:password@localhost:3306/yourdatabase')

# 创建基类
Base = declarative_base()

# 定义一个用户表的模型
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    email = Column(String(100))

# 创建表
Base.metadata.create_all(engine)

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 插入数据
new_user = User(name="Alice", email="alice@example.com")
session.add(new_user)
session.commit()

# 查询数据
users = session.query(User).all()
for user in users:
    print(user.name, user.email)

通过 SQLAlchemy,插入、查询、更新、删除等操作都可以通过面向对象的方式来完成,而无需直接编写 SQL 语句。

3.3.2 Django ORM 示例

如果你使用 Django 框架开发 Web 应用,可以直接使用 Django 内置的 ORM。Django ORM 的基本用法与 SQLAlchemy 类似,也是通过定义模型类来操作数据库。

在 Django 中,你可以通过定义模型来创建数据库表,然后使用模型对象来操作数据。

# 在 models.py 中定义模型
from django.db import models

class User(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

# 创建表
python manage.py migrate

# 插入数据
user = User(name="Bob", email="bob@example.com")
user.save()

# 查询数据
users = User.objects.all()
for user in users:
    print(user.name, user.email)

Django ORM 提供了丰富的查询 API,可以很方便地对数据库进行增删改查操作。

四、总结

在本文中,我们介绍了如何使用 Python 连接 MySQL 数据库,并执行基本的数据库操作。通过 mysql.connector,我们可以轻松实现数据的插入、查询、更新和删除。此外,我们还讨论了 ORM(对象关系映射)技术,ORM 使得开发者能够通过操作对象来与

数据库交互,简化了数据库操作,提升了开发效率。

在实际项目中,选择何种方式与数据库交互需要根据具体的需求和项目规模。如果项目比较简单,可以直接使用 SQL 语句进行操作;而在更复杂的项目中,ORM 则能极大地提高开发效率和代码的可维护性。


http://www.kler.cn/news/314438.html

相关文章:

  • fasterRCNN模型实现飞机类目标检测
  • 果蔬识别系统架构+流程图
  • Hadoop的安装
  • JVM 调优篇7 调优案例2-元空间的优化解决
  • 使用Diskgenius系统迁移
  • 分页插件、代码生成器
  • C#中DataGridView 的 CellPainting 事件的e.Handled = true
  • 银河麒麟V10系统崩溃后的处理
  • 富文本编辑器wangEdittor使用入门
  • string类的模拟实现以及oj题
  • Linux·权限与工具-git与gdb
  • Puppet 部署应用(Puppet deployment application)
  • 《他们的奇妙时光》圆满收官,葛秋谷新型霸总获好评
  • 初始Vitis——ZYNQ学习笔记1
  • 探索微软Copilot Agents:如何通过Wave 2 AI彻底改变工作方式
  • 伊犁linux 创建yum 源过程
  • Java面向对象编程
  • Ubuntu设置笔记本电脑合盖时不挂起
  • el-select组件:选择某个选项触发查询
  • 基于R语言的统计分析基础:使用键盘输入数据
  • charles抓包flutter
  • 数据结构之线性表——LeetCode:328. 奇偶链表,86. 分隔链表,24. 两两交换链表中的节点
  • 基于React+JsonServer+Antddesign的读书笔记管理系统
  • 4.使用 VSCode 过程中的英语积累 - View 菜单(每一次重点积累 5 个单词)
  • 微软AI核电计划
  • SpringBoot 项目启动时指定外部配置文件
  • 【Android 13源码分析】WindowContainer窗口层级-4-Layer树
  • Android通知显示framework流程解析
  • Python中的魔法:栈与队列的奇妙之旅
  • 大语言模型的发展-OPENBMB