MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL 数据库操作指南:学习如何使用 Python 进行增删改查操作

MySQL 知识点

1.1 数据库创建和选择


要在MySQL中创建数据库,可以使用CREATE DATABASE语句:

CREATE DATABASE mydatabase;

这将创建一个名为mydatabase的数据库。

要选择数据库,可以使用USE语句:

USE mydatabase;

这将使我们在后续的操作中使用mydatabase这个数据库。


1.2 数据表创建和修改


要在MySQL中创建数据表,可以使用CREATE TABLE语句:

CREATE TABLE employees (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    age INT,
    salary FLOAT
);

这将创建一个名为employees的数据表,其中包含idnameagesalary四个字段。

要修改数据表,可以使用ALTER TABLE语句。例如,我们可以添加一个新的email字段:

ALTER TABLE employees ADD COLUMN email VARCHAR(100);

这将在employees表中添加一个email字段,类型为VARCHAR(100)


1.3 插入数据


要将数据插入到数据表中,可以使用INSERT INTO语句:

INSERT INTO employees (name, age, salary) VALUES ('李白', 25, 5000);

这将向employees表中插入一条记录,其中包含name为’李白’、age为25、salary为5000的数据。

如果要插入多条数据,可以使用逗号将其分隔开:

INSERT INTO employees (name, age, salary) VALUES ('杜甫', 30, 6000), ('王之涣', 35, 7000);

这将向employees表中插入两条记录。


1.4 查询数据


要从数据表中查询数据,可以使用SELECT语句:

SELECT * FROM employees;

这将返回employees表中的所有记录。

您还可以使用条件、排序和限制结果的语句。例如,以下代码将返回年龄大于30岁的前5个员工,按工资降序排列

SELECT * FROM employees WHERE age > 30 ORDER BY salary DESC LIMIT 5;

1.5 更新和删除数据


要更新数据表中的数据,可以使用UPDATE语句:

UPDATE employees SET salary = 5500 WHERE id = 1;

这将把employees表中id为1的记录的salary字段更新为5500。

要删除数据表中的数据,可以使用DELETE语句:

DELETE FROM employees WHERE id = 2;

这将删除employees表中id为2的记录。


1.6 索引的创建和使用


在MySQL中,索引是用于提高查询效率的重要机制。通过创建合适的索引,可以加快查询速度并减少数据库的负载。下面是创建索引和使用索引的示例代码:

-- 创建索引
CREATE INDEX idx_name ON employees (name);
-- 使用索引查询
SELECT * FROM employees WHERE name = '李白';

示例中,我们使用CREATE INDEX语句创建了一个名为idx_name的索引,该索引针对employees表中的name字段。然后,我们使用SELECT语句查询名字为’李白’的员工信息,由于我们创建了索引,查询速度将会更快。


1.7 外键的使用


MySQL支持外键约束,它们用于维护表与表之间的关系。通过使用外键,可以实现数据的完整性和一致性。下面是创建外键和使用外键的示例代码:


-- 创建外键
ALTER TABLE employees
ADD CONSTRAINT fk_department
FOREIGN KEY (department_id)
REFERENCES departments(id);
-- 使用外键查询
SELECT * FROM employees WHERE department_id = 1;

示例中,我们使用ALTER TABLE语句创建了一个名为fk_department的外键约束,它将employees表中的department_id字段与departments表中的id字段关联起来。然后,我们使用SELECT语句查询department_id为1的员工信息,由于我们创建了外键约束,可以确保查询结果只包含属于部门1的员工。


Python 中使用 MySQL



2.1 连接数据库


要在Python中连接MySQL数据库,需要使用pymysql库。首先,确保已经安装了该库,然后使用以下代码建立连接:


import pymysql
conn = pymysql.connect(host='localhost', user='your_username', password='your_password', database='your_database')

这里的host是MySQL服务器的地址,user是MySQL用户名,password是密码,database是要连接的数据库。


2.2 创建数据库和数据表


在Python中执行SQL语句可以用execute()方法。以下是在Python中创建数据库和数据表的示例代码:

cursor = conn.cursor()
# 创建数据库
cursor.execute("CREATE DATABASE IF NOT EXISTS mydatabase")
# 使用数据库
cursor.execute("USE mydatabase")
# 创建数据表
cursor.execute('''
    CREATE TABLE IF NOT EXISTS employees (
        id INT AUTO_INCREMENT PRIMARY KEY,
        name VARCHAR(100),
        age INT,
        salary FLOAT
    )
''')

首先,我们创建一个游标对象cursor,它用于执行SQL语句。

然后,我们使用cursor.execute()方法执行SQL语句。这里,我们创建了一个名为mydatabase的数据库(如果不存在),然后使用它。

接下来,我们创建了一个名为employees的数据表,其中包含idnameagesalary四个字段。


2.3 插入数据


要在Python中插入数据,可以使用参数化查询,以避免SQL注入攻击。以下是插入数据的示例代码:

# 插入单条数据
sql = "INSERT INTO employees (name, age, salary) VALUES (%s, %s, %s)"
values = ('李白', 25, 5000)
cursor.execute(sql, values)
# 插入多条数据
sql = "INSERT INTO employees (name, age, salary) VALUES (%s, %s, %s)"
values = [
    ('杜甫', 30, 6000),
    ('王之涣', 35, 7000)
]
cursor.executemany(sql, values)
# 提交事务
conn.commit()

在这里,我们使用参数化查询来插入数据。参数化查询使用占位符(%s)来代替具体的值,然后通过传递一个值(或多个值的元组/列表)给execute()方法来填充这些占位符。

对于单条数据,我们将SQL语句和值传递给execute()方法。对于多条数据,我们将SQL语句和值的列表传递给executemany()方法。

然后调用commit()方法提交事务,确保数据被永久保存。


2.4 查询数据


要在Python中查询数据,可以使用execute()方法执行SELECT语句,并使用fetchall()方法获取结果集。下面是查询数据的示例代码:


# 查询数据
cursor.execute("SELECT * FROM employees")
result = cursor.fetchall()
for row in result:
    print(f"ID: {row[0]}, Name: {row[1]}, Age: {row[2]}, Salary: {row[3]}")

在这里,我们使用execute()方法执行SELECT语句。然后,我们使用fetchall()方法获取所有的结果。

之后迭代结果集,并打印每一行的数据。


2.5 更新和删除数据


要在Python中更新和删除数据,可以使用execute()方法执行UPDATEDELETE语句。以下是更新和删除数据的示例代码:


# 更新数据
sql = "UPDATE employees SET salary = %s WHERE id = %s"
values = (5500, 1)
cursor.execute(sql, values)
# 删除数据
sql = "DELETE FROM employees WHERE id = %s"
values = (2,)
cursor.execute(sql, values)
# 提交事务
conn.commit()

代码中,我们使用execute()方法执行UPDATEDELETE语句。

对于更新操作,我们使用参数化查询,并将要更新的值传递给execute()方法。

对于删除操作,我们也使用参数化查询,并将要删除的记录的ID传递给execute()方法。

最后,我们调用commit()方法提交事务,确保更新或删除操作生效。


2.6 关闭连接


如果不需要时,应该关闭与MySQL的连接:


cursor.close()
conn.close()

在这里,我们使用close()方法关闭游标和数据库连接。

这样就完成了Python与MySQL的交互过程。


2.7 数据库备份和恢复


数据库备份和恢复是保护数据安全的关键步骤。在MySQL中,我们可以使用以下命令进行数据库备份和恢复:

-- 备份数据库
mysqldump -u username -p database_name > backup.sql
-- 恢复数据库
mysql -u username -p database_name < backup.sql

示例中,我们使用mysqldump命令将名为database_name的数据库备份到名为backup.sql的文件中。然后,我们可以使用mysql命令从备份文件中恢复数据库。

注意替换username为您的MySQL用户名,database_name为要备份或恢复的数据库名。


完结


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
SQL 关系型数据库 MySQL
SQL命令行退出操作指南:轻松掌握不同数据库环境下的退出技巧
在数据库管理与开发过程中,经常需要通过SQL命令行工具(如MySQL的mysql客户端、PostgreSQL的psql、SQL Server的sqlcmd等)与数据库进行交互
270 59
|
1月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
264 0
|
1月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
38 1
|
1月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
69 5
|
1月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
33 5
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
67 1
|
1月前
|
关系型数据库 MySQL
MySQL表的增删改查(基础篇详细详解)
MySQL表的增删改查(基础篇详细详解)
36 5
|
1月前
|
SQL 存储 安全
SQL查询数据库:基础概念与操作指南
在数字化时代,数据库已成为信息管理的重要工具之一。作为管理和操作数据库的核心语言,SQL(结构化查询语言)已成为数据管理和查询的关键技能。本文将全面介绍SQL查询数据库的基本概念、语句和操作指南,以帮助初学者快速上手,同时为进阶用户提供有价值的参考。一、数据库与SQL简介数据库是一种存储、管理和检索
44 3
|
1月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
1月前
|
数据库连接 Linux 数据库
GBase 8s数据库连接 – Python
GBase 8s数据库连接 – Python
下一篇
无影云桌面