【100天精通python】Day32:使用python操作数据库_MySQL下载、安装、配置、使用实战

目录

 专栏导读 

1 MySQL概述

2 MySQL下载安装

2.1 下载

 2.2 安装

2.3 配置

2.3.1 服务类型和网络配置:

2.3.2 连接配置:

2.3.3 账户和权限配置:

2.3.4 配置Windows Service :

2.3.5 服务器文件权限配置:

2.3.6 创建数据集示例

3 python 中使用MySQL

3.1 安装PyMySQL

3.2  连接数据库

3.3 创建数据表

3.4 操作MySQL数据表

3.4.1 插入数据:

3.4.2 查询数据:

3.4.3 更新数据:

3.4.4 删除数据:

4 MySQL使用实战


 专栏导读 

专栏订阅地址:https://blog.csdn.net/qq_35831906/category_12375510.html


1 MySQL概述

        MySQL是一款互联网上广泛使用的开源关系型数据库管理系统。它最初由瑞典的MySQL AB公司开发,并于1995年首次发布。如今,MySQL由Oracle公司维护和支持。

MySQL具有很多优点,包括:

1. 开源:MySQL是开源软件,任何人都可以自由地获取、使用和修改它。

2. 跨平台性:MySQL可以在多个操作系统上运行,包括Windows、Linux、macOS等。

3. 灵活性:MySQL可以与许多编程语言集成,如PHP、Java、Python等,使其成为开发Web应用程序的理想选择。

4. 高性能:MySQL被设计为处理大规模数据和高并发请求,具有快速的响应能力和高效的查询引擎。

5. 可扩展性:MySQL可以根据需要进行水平和垂直扩展,以支持更大的数据量和更高的负载。

6. 数据完整性:MySQL支持事务处理,保证数据在并发操作中的一致性和完整性。

        除了以上特点,MySQL还拥有丰富的功能和工具,如索引优化、复制、备份和恢复机制,以及兼容性强的SQL语言等。 

        因为其易于使用、稳定可靠的特性,加上开源的免费许可证,MySQL在Web开发和数据存储方面成为了一种流行的数据库解决方案。 

2 MySQL下载安装

2.1 下载

打开链接:MySQL :: Download MySQL Community Server

如下:

选择MSI Installer :

如下,选择No thanks,just start my download。选择指定文件夹存放即可


 2.2 安装

下载完毕后,右键选择安装,如下 

点击Next: 

选Next——>Typical ——>Install:

 选择Typical:

等待安装: 

 安装完成:


2.3 配置

2.3.1 服务类型和网络配置:

安装点击Finish,进入配置如下:

点击Next——>

 如上图,点击Config Type的下拉框,显示有三种类型:

  • Development Computer:开发机器,MySQL会占用最少量的内存。
  • Server Computer:服务器机器,几个服务器应用会运行在机器上,适用于作为网站或应用的数据库服务器,会占用中等内存。
  • Dedicated Computer:专用机器,机器专门用来运行MySQL数据库服务器,会占用机器的所有可用内存。

        根据自己的用途选择相应的类型配置,我这里为了后面做高并发性能测试便选择“Server Machine”类型。

2.3.2 连接配置:

选择好配置类型后进行连接配置,如下图:

         常用的是TCP/IP连接,勾选该选项框,默认端口号是3306,可在输入框中更改。若数据库只在本机使用,可勾选“Open Firewall port for network access”来打开防火墙,若需要远程调用则不要勾选。
        下面的“Named Pipe”和“Shared Memory”是进程间通信机制,一般不勾选。
        “Show Advanced Options”用于在后续步骤配置高级选项,为尽可能多的了解MySQL的可配置项,这里勾选该选项框。

2.3.3 账户和权限配置:

点击next进入账户配置如下:

 root账户拥有数据库的所有权限,在密码框输入自己设置的密码。数据库在开发和维护过程中为了安全性和便于管理会为不同的用户授予相应操作权限的账户密码。

 点击“Add User”按钮,在弹出的会话框中设置不同权限等级的账户,如下图所示:

 Host表示能连接到该数据库的主机地址,可设置为本地(localhost/127.0.0.1)、一个外部IP(如218.17.224.228)、一个外部网段(如218.17.224.*)或者所有主机(%)。
Role表示该账户的角色,可选择的角色如上,根据需要自行选择。设定密码,点击OK即可。

 可增加删除编辑相关用户。

2.3.4 配置Windows Service :

点击next——>进入windows service


将MySQL服务配置成Windows服务后,MySQL服务会自动随着Windows操作系统的启动而启动,随着操作系统的停止而停止,这也是MySQL官方文档建议的配置。

Windows service Name可设置为默认值,只要与其它服务不同名即可。在Windows系统中基于安全需求,MySQL服务需要在一个给定的账户下运行,选择默认的Standard System Account即可。保持默认配置后点击“next”。

2.3.5 服务器文件权限配置:

 权限配置:  如下:

2.3.6 创建数据集示例

如下:选择create world database,

 点击next:

 进入到这一步骤后点击“Execute”执行配置项,如下图

  点击next,出现如下界面,安装成功,点击Finish。


3 python 中使用MySQL

        由于MySQL 服务器以独立的进程运行, 并通过网络对外服务,故需要支持python的MySQL驱动来连接到MySQL服务器。

        在Python中,有几个常用的第三方库可以用来支持与MySQL数据库的交互和操作。以下是一些主要的支持MySQL的数据库模块:

  1. mysql-connector-python:这是 MySQL 官方提供的 Python 连接库,支持 MySQL 服务器的连接、查询和数据操作。

  2. pymysql:是一个纯 Python 实现的 MySQL 客户端库,与 MySQL 交互时性能较好。

  3. PyMySQL:也是一个支持 MySQL 的库,与 mysql-connector-python 类似,但是它是用纯 Python 编写的。

  4. SQLAlchemy:虽然主要用于 ORM(对象关系映射),但也支持连接 MySQL 数据库,并提供了更高级的查询和操作功能。

  5. MySQLdb:这是 Python 2.x 时代流行的 MySQL 客户端库,虽然已经不再维护,但在一些遗留项目中仍然可能会用到。

        以上这些库都有不同的特点和用法,你可以根据你的项目需求和个人喜好选择合适的库。通常来说,mysql-connector-pythonpymysql 是在 Python 3 中最常用的两个库。使用这些库,你可以轻松地在 Python 中连接、操作和管理 MySQL 数据库。 以下选择PyMySQL进行使用说明。

3.1 安装PyMySQL

        要安装 PyMySQL 库,你可以使用 Python 的包管理工具 pip

        以下是安装 PyMySQL 的步骤:

  1. 打开终端或命令行窗口。

  2. 运行以下命令来安装 PyMySQL:

pip install pymysql

 等待安装完成,你会看到一些输出显示安装的进度和状态。

安装完成后,你可以在 Python 脚本中导入 PyMySQL 进行使用:  

        这样,你就成功安装了 PyMySQL 库,可以在你的 Python 程序中使用它来连接和操作 MySQL 数据库。请注意,确保你的计算机上已经安装了 Python 和 pip,并且你有足够的权限来进行安装。

        如果你使用的是虚拟环境,请在虚拟环境中执行上述步骤。

        安装完成后,你可以按照之前的示例来使用 PyMySQL 连接和操作 MySQL 数据库。

3.2  连接数据库

        使用数据库的第一步是连接数据库。以下介绍如何使用PyMySQL连接数据库。

         使用 PyMySQL 连接数据库非常简单,下面是一个基本的示例,展示了如何连接到 MySQL 数据库并执行一些简单的操作:

import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 执行查询语句
query = "SELECT * FROM users"
cursor.execute(query)# 获取查询结果
rows = cursor.fetchall()
for row in rows:print(row)# 关闭游标和连接
cursor.close()
conn.close()

        在这个示例中,我们首先配置了连接到数据库的参数,然后使用 pymysql.connect() 函数来创建连接对象 conn。接着,我们使用 conn.cursor() 创建游标对象 cursor,然后执行查询语句,获取查询结果并输出。

        这只是一个简单的连接和查询示例。根据你的需求,你可以使用 cursor.execute() 执行其他 SQL 语句,例如插入、更新、删除等操作。不过,在实际应用中,请务必进行错误处理,确保连接和游标正确关闭,并且遵循最佳实践以保障数据库操作的安全性和性能。

3.3 创建数据表

        在 PyMySQL 中,你可以使用执行 SQL 语句的方式来为数据库创建数据表。下面是一个示例,展示了如何使用 PyMySQL 创建一个名为 "users" 的数据表:

import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 创建数据表
create_table_query = """
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY,username VARCHAR(50) NOT NULL,email VARCHAR(100) NOT NULL
)
"""
cursor.execute(create_table_query)# 提交创建表的操作
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()

在这个示例中,我们使用 pymysql.connect() 函数连接到数据库,然后使用 conn.cursor() 创建游标对象。接着,我们使用 cursor.execute() 执行 SQL 语句来创建名为 "users" 的数据表。表的结构在 CREATE TABLE 语句中定义,其中包括列的名称、数据类型和约束。最后,我们使用 conn.commit() 提交创建表的操作,并关闭游标和连接。

请注意,这只是一个示例。在实际应用中,你可能需要更多的列和更复杂的结构。确保你了解数据库的设计原则和约定,以创建适合你的应用的数据表

3.4 操作MySQL数据表

当你连接到 MySQL 数据库后,可以执行多种操作来管理数据表。以下是一些常见的操作示例,包括插入、查询、更新和删除数据表中的数据。

3.4.1 插入数据:
import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 插入数据
insert_query = "INSERT INTO users (username, email) VALUES (%s, %s)"
values = ("alice", "alice@example.com")
cursor.execute(insert_query, values)# 提交插入数据的操作
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()
3.4.2 查询数据:
import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 查询数据
select_query = "SELECT * FROM users"
cursor.execute(select_query)# 获取查询结果
rows = cursor.fetchall()
for row in rows:print(row)# 关闭游标和连接
cursor.close()
conn.close()
3.4.3 更新数据:
import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 更新数据
update_query = "UPDATE users SET email = %s WHERE username = %s"
new_email = "new_email@example.com"
username = "alice"
cursor.execute(update_query, (new_email, username))# 提交更新数据的操作
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()
3.4.4 删除数据:
import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "username","password": "password","database": "mydb"
}# 连接到数据库
conn = pymysql.connect(**db_config)# 创建游标对象
cursor = conn.cursor()# 删除数据
delete_query = "DELETE FROM users WHERE username = %s"
username = "alice"
cursor.execute(delete_query, (username,))# 提交删除数据的操作
conn.commit()# 关闭游标和连接
cursor.close()
conn.close()

        这些示例展示了如何使用 PyMySQL 执行插入、查询、更新和删除数据表中的数据。请注意,在实际应用中,务必进行错误处理,确保连接和游标正确关闭,并遵循最佳实践以保障数据库操作的安全性和性能。

4 MySQL使用实战

        创建一个数据库,然后在该数据库中创建 "books" 表,获取指定数据表中的信息,打印MySQL中books表图书的名称和价格。

以下是一个示例,展示了如何使用 PyMySQL 创建数据库、创建表,以及插入和查询数据:

import pymysql# 配置数据库连接参数
db_config = {"host": "localhost","user": "aaaa",  #your_username"password": "lucky"  #your_password
}def create_database_and_table(cursor):# 创建数据库cursor.execute("CREATE DATABASE IF NOT EXISTS mydb")cursor.execute("USE mydb")# 创建数据表create_table_query = """CREATE TABLE IF NOT EXISTS books (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,price DECIMAL(10, 2) NOT NULL)"""cursor.execute(create_table_query)def insert_sample_data(cursor):# 插入示例数据insert_query = "INSERT INTO books (name, price) VALUES (%s, %s)"values = [("Book A", 19.99), ("Book B", 29.99), ("Book C", 9.99)]cursor.executemany(insert_query, values)def print_books_info(cursor):# 查询图书名称和价格select_query = "SELECT name, price FROM books"cursor.execute(select_query)# 获取查询结果rows = cursor.fetchall()# 打印图书名称和价格for row in rows:book_name, book_price = rowprint(f"Book Name: {book_name}, Price: {book_price}")def main():# 连接到数据库conn = pymysql.connect(**db_config)# 创建游标对象cursor = conn.cursor()try:# 创建数据库和数据表create_database_and_table(cursor)# 插入示例数据insert_sample_data(cursor)conn.commit()# 打印图书信息print_books_info(cursor)finally:# 关闭游标和连接cursor.close()conn.close()if __name__ == "__main__":main()

        在这个示例中,我们首先创建了一个数据库 "mydb",然后在该数据库中创建了 "books" 表。确保你将 "your_username" 和 "your_password" 替换为实际的数据库用户名和密码。在运行代码之前,请确保你已经安装了 PyMySQL 库(通过 pip install pymysql)。 

 输出如下:

 运行以上代码,若出现错误

RuntimeError: 'cryptography' package is required for sha256_password or caching_sha2_password auth methods

表明你的 Python 环境缺少 cryptography 包,而这个包是用于支持 MySQL 数据库的 sha256_passwordcaching_sha2_password 身份验证方法的。要解决这个问题,你可以按照以下步骤来安装 cryptography 包:

  1. 打开终端或命令行窗口。

  2. 运行以下命令来安装 cryptography 包:

    pip install cryptography
    

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

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

相关文章

单片机直驱两相四线步进电机研究

【本文发布于https://blog.csdn.net/Stack_/article/details/132236329,未经允许不得转载,转载须注明出处】 双极性步进电机(两相四线步进电机),原理的东西就先不讲太多了,还没搞清楚,边查资料边…

VMware 16 Pro将电脑里的文件移动到虚拟机中【附带可能出现的问题和解决】

VMware 16 Pro将电脑里的文件移动到虚拟机中 1.使用VM tools 打开VM ware会出现下面的,直接点击安装。 点击下一步 选哪个都行 之后会重启虚拟机,然后就可以使用了。 我没有程序可以打开压缩包,显示我的虚拟机网络没法用,点击…

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典

【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 目录 【软件工程】数据流图/DFD概念符号/流程图分层/数据字典 一、数据流图 ( DFD ) 简介 二、数据流图 ( DFD ) 概念符号 1、数据流 2、加工 ( 核心 ) 3、数据存储 4、外部实体 三、数据流图 ( DFD ) 分层 1、…

【深度学习 | 反向传播】释放反向传播的力量: 让训练神经网络变得简单

🤵‍♂️ 个人主页: AI_magician 📡主页地址: 作者简介:CSDN内容合伙人,全栈领域优质创作者。 👨‍💻景愿:旨在于能和更多的热爱计算机的伙伴一起成长!!&…

阿里云服务器搭建WordPress建站教程基于Windows系统

本教程是使用阿里云服务器镜像系统选择的是Windows操作系统,手动安装WordPress博客网站全过程。本教程介绍如何在Windows操作系统的ECS实例上搭建WordPress网站。 目录 准备工作 搭建WordPress网站 解析WordPress网站域名 准备工作 创建Windows操作系统的ECS实…

BGP协议综合知识(打破水平分割--联邦、反射规则)

反射规则:不优路由不能被传递,自然也不能被反射; RR从一个EBGP邻居处学习到的路由,可以传输给客户端、非客户端,已经本地的其他EBGP邻居;RR从一个客户端学习到的路由,可以传递给本地其他的客户…

通讯协议037——全网独有的OPC HDA知识一之聚合(六)实际时间最小值

本文简单介绍OPC HDA规范的基本概念,更多通信资源请登录网信智汇(wangxinzhihui.com)。 本节旨在详细说明HDA聚合的要求和性能。其目的是使HDA聚合标准化,以便HDA客户端能够可靠地预测聚合计算的结果并理解其含义。如果用户需要聚合中的自定义功能&…

7.3 详解NiN模型--首次使用多层感知机(1x1卷积核)替换掉全连接层的模型

一.前提知识 多层感知机:由一个输入层,一个或多个隐藏层和一个输出层组成。(至少有一个隐藏层,即至少3层) 全连接层:是MLP的一种特殊情况,每个节点都与前一层的所有节点连接,全连接…

分布式数据库的HTAP能统一OLTP和 OLAP吗?

OLAP和OLTP通过ETL衔接。为提升OLAP性能,需在ETL过程进行大量预计算,包括: 数据结构调整业务逻辑处理 好处:可控制OLAP的访问延迟,提升用户体验。但因为要避免抽取数据影响OLTP系统,须在日终的交易低谷期…

java Spring Boot yml多环境配置

我们项目 线上和线下 环境配置不是特别一样 例如 运行的URL 数据库地址 数据库的账号密码 这些经常是不一样的 如果每次上线钱改 也不是特别方便 甚至可能忘记 那么 进入我们代码中 所谓的多环境 就是在不同的环境下配置不同的值 终端还是在application配置文件中 多环境的话…

Add-in Express for Microsoft Office and Delphi Crack

Add-in Express for Microsoft Office and Delphi Crack 适用于Microsoft Office和Delphi VCL的Add-in Express使您能够在几次点击中为Microsoft Office开发专业插件。它生成基于COM的项目,这些项目包含Microsoft Office外接程序或智能标记的所有必要功能&#xff0…

Vue——webpack

webpack 一、Install1.全局安装2.局部安装 二、总结1.打包2.定义脚本3.配置文件定义(webpack.config.js)4.项目重新加载依赖5.webpack打包Css6.style-loader 一、Install 1.全局安装 npm install webpack webpack-cli -g2.局部安装 以项目为单位,一个项…

【STM32】简介

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星T…

音视频 vs2017配置FFmpeg

vs2017 ffmpeg4.2.1 一、首先我把FFmpeg整理了一下&#xff0c;放在C盘 二、新建空项目 三、添加main.cpp&#xff0c;将bin文件夹下dll文件拷贝到cpp目录下 #include<stdio.h> #include<iostream>extern "C" { #include "libavcodec/avcodec.h&…

类与对象(加深)

目录 1.类的6个默认成员函数 2. 构造函数 2.1 概念 2.2 特性 3.析构函数 3.1 概念 3.2 特性 4. 拷贝构造函数 4.1 概念 4.2 特征 5.赋值运算符重载 5.1 运算符重载 5.2 赋值运算符重载 6.const成员 7.取地址及const取地址操作符重载 1.类的6个默认成员函数 如果…

Linux常见面试题,应对面试分享

操作系统基础 1.cpu占⽤率太⾼了怎么办? 排查思路是什么&#xff0c;怎么定位这个问题&#xff0c;处理流程 其他程序: 1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程 2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程 3.询问开发或者⽼⼤,是什么业务在使⽤这个进程…

【Windows API】获取卷标、卷名

1、卷->卷标 使用FindFirstVolume()和FindNextVolume()函数体系&#xff0c;枚举系统所有卷&#xff08;Volume&#xff09;的例子&#xff0c;然后获取卷标、卷类型。这个方式可以枚举出没有驱动器号&#xff08;卷标&#xff09;的卷。 int TestMode1() {HANDLE hVolume…

科技云报道:一波未平一波又起?AI大模型再出邪恶攻击工具

AI大模型的快速向前奔跑&#xff0c;让我们见识到了AI的无限可能&#xff0c;但也展示了AI在虚假信息、深度伪造和网络攻击方面的潜在威胁。 据安全分析平台Netenrich报道&#xff0c;近日&#xff0c;一款名为FraudGPT的AI工具近期在暗网上流通&#xff0c;并被犯罪分子用于编…

毅哥铡特:修改后的Bellmanford最短路径路由动画演示

修改背景&#xff1a;毅哥铡特自带的《routing_bellmanford.cpp》&#xff0c;按路由跳数进行更新路由表&#xff0c;但是&#xff0c;卫星互联网的卫星路由器节点&#xff0c;可能需要考虑传播传输时延&#xff0c;对应的&#xff0c;可能需要按照两个网络节点的距离来更新路由…

Node.js |(四)HTTP协议 | 尚硅谷2023版Node.js零基础视频教程

学习视频&#xff1a;尚硅谷2023版Node.js零基础视频教程&#xff0c;nodejs新手到高手 文章目录 &#x1f4da;HTTP概念&#x1f4da;窥探HTTP报文&#x1f4da;请求报文的组成&#x1f407;HTTP请求行&#x1f407;HTTP请求头&#x1f407;HTTP的请求体 &#x1f4da;响应报文…