Python筑基之旅-MySQL数据库(一)

news2025/1/17 22:55:25

目录

一、MySQL数据库

1、简介

2、优点

2-1、开源和免费

2-2、高性能

2-3、可扩展性

2-4、易用性

2-5、灵活性

2-6、安全性和稳定性

2-7、丰富的功能

2-8、结合其他工具和服务

2-9、良好的兼容性和移植性

3、缺点

3-1、对大数据的支持有限        

3-2、缺乏全文索引

3-3、缺乏地理空间数据支持

3-4、存储引擎的局限性

3-5、配置和管理复杂性

3-6、安全性问题

4、应用

4-1、Web应用开发

4-1-1、动态网站

4-1-2、内容管理系统(CMS)

4-2、企业应用

4-2-1、企业资源规划(ERP)

4-2-2、客户关系管理(CRM)

4-3、数据分析与数据挖掘

4-3-1、数据仓库

4-3-2、数据挖掘与机器学习

4-4、游戏开发

4-4-1、在线游戏

4-4-2、游戏统计与分析

4-5、移动应用开发

4-5-1、后端数据存储

4-5-2、用户认证与授权

4-6、物联网(IoT)

4-6-1、设备数据存储

4-7、电子商务

4-7-1、购物车与订单管理

4-7-2、库存管理与物流跟踪

4-8、金融与银行业

4-8-1、账户管理

4-8-2、风险管理

5、安装及配置

5-1、版本选择

5-2、下载MySQL 8.0

5-3、安装MySQL 8.0

5-4、配置MySQL 8.0

二、推荐阅读 

1、Python函数之旅

2、Python算法之旅

3、博客个人主页

一、MySQL数据库

1、简介

        MySQL是一个关系型数据库管理系统(Relational Database Management System,RDBMS),由瑞典MySQL AB公司开发,现在属于Oracle旗下产品,是最流行的关系型数据库管理系统之一,尤其在WEB应用方面,它是最好的RDBMS应用软件之一。

2、优点

2-1、开源和免费

        MySQL是一个开源项目,这意味着任何人都可以查看、修改和使用其源代码,它提供了免费的社区版,为开发者和初创企业提供了低成本的解决方案。

2-2、高性能

        MySQL经过优化,能够处理大量的数据和高并发的访问请求,它支持多种存储引擎,如InnoDB(支持事务处理和外键)、MyISAM(高性能全文搜索)等,可以根据不同的应用需求选择合适的存储引擎。

2-3、可扩展性

        MySQL支持分布式架构,可以通过分库分表、读写分离等方式实现水平扩展,它还提供了集群和复制功能,可以确保数据的高可用性和容错性。

2-4、易用性

        MySQL提供了丰富的文档和社区支持,使得学习和使用变得相对容易,它使用SQL语言作为查询语言,与大多数关系型数据库管理系统兼容。

2-5、灵活性

        MySQL支持多种操作系统,包括Linux、Windows、macOS等,它提供了多种编程语言的API和连接器,如Java、Python、PHP等,方便开发者集成到各种应用中。

2-6、安全性和稳定性

        MySQL提供了强大的用户权限和访问控制功能,可以保护数据的安全性,它还提供了数据加密、审计日志等安全特性,确保数据的完整性和可审计性,MySQL经过长时间的测试和优化,具有出色的稳定性和可靠性。

2-7、丰富的功能

        MySQL支持存储过程、触发器、视图等高级功能,使得开发者能够更灵活地操作数据,它还提供了全文搜索、地理空间数据支持、JSON处理等功能,满足不同应用的需求。

2-8、结合其他工具和服务

        MySQL可以与许多流行的开发工具、框架和服务集成,如Docker、Kubernetes、AWS RDS等,这使得开发者能够更轻松地构建、部署和管理MySQL应用。

2-9、良好的兼容性和移植性

        MySQL与其他关系型数据库管理系统(如Oracle、SQL Server等)在SQL语法和功能上具有较高的兼容性,这使得开发者能够更容易地将应用从其他数据库迁移到MySQL上。

        总之,MySQL数据库的开源性、高性能、可扩展性、易用性、灵活性、安全性和稳定性等特点使其成为众多开发者和企业的首选关系型数据库管理系统。

3、缺点

3-1、对大数据的支持有限        

        相比于一些专门为大数据设计的数据库系统(如Hadoop、Spark等),MySQL在处理超大规模数据集时可能会遇到性能瓶颈。

3-2、缺乏全文索引

        在早期的版本中,MySQL的MyISAM存储引擎支持全文索引,但InnoDB存储引擎默认不支持。虽然可以通过第三方插件或搜索引擎(如Elasticsearch)来实现全文搜索,但这会增加额外的复杂性和成本。

3-3、缺乏地理空间数据支持

        MySQL对地理空间数据的支持相对较弱,如果需要处理与地理位置相关的数据,可能需要使用专门的GIS数据库系统或扩展MySQL的功能。

3-4、存储引擎的局限性

        虽然MySQL支持多种存储引擎,但每种存储引擎都有其局限性。例如,InnoDB存储引擎支持事务和行级锁定,但在某些情况下可能会比MyISAM慢;MyISAM不支持事务和行级锁定,但在某些只读或大量读取的场景下可能表现更好。

3-5、配置和管理复杂性

        MySQL的配置和管理相对复杂,需要一定的专业知识和技能,对于初学者来说,可能需要花费更多的时间来学习和掌握。

3-6、安全性问题

        虽然MySQL提供了多种安全功能和权限控制机制,但在某些情况下仍然可能存在安全漏洞或风险,因此,需要定期更新和修补MySQL的安全漏洞,并加强密码管理和访问控制。

4、应用

        MySQL数据库的应用场景非常广泛,几乎涵盖了所有需要存储、管理和查询数据的领域,其常见的应用场景有:

4-1、Web应用开发
4-1-1、动态网站

        MySQL常用于构建动态网站和Web应用程序,如博客、电子商务网站、社交媒体平台等,它可以通过与PHP、Python、Java等后端语言配合,实现用户注册、登录、商品展示、订单管理等功能。

4-1-2、内容管理系统(CMS)

        许多内容管理系统(如WordPress、Drupal、Joomla等)使用MySQL作为其后端数据库,用于存储和管理网站内容、用户数据等。

4-2、企业应用
4-2-1、企业资源规划(ERP)

        ERP系统用于管理企业的各种资源,如财务、人力资源、供应链等,MySQL可以用于存储和查询ERP系统中的数据。

4-2-2、客户关系管理(CRM)

        CRM系统用于管理企业与客户的关系,包括客户信息、销售机会、客户服务等,MySQL可以提供强大的数据存储和查询功能,支持CRM系统的各种业务需求。

4-3、数据分析与数据挖掘
4-3-1、数据仓库

        MySQL可以用于构建数据仓库,将来自不同数据源的数据整合到一个统一的存储库中,方便进行数据分析和数据挖掘。

4-3-2、数据挖掘与机器学习

        虽然MySQL本身不是一个专门用于数据挖掘和机器学习的工具,但它可以作为数据存储和预处理的一部分,与数据挖掘和机器学习算法结合使用。

4-4、游戏开发
4-4-1、在线游戏

        MySQL常用于在线游戏的服务器后端,用于存储和管理游戏数据,如玩家信息、游戏进度、排行榜等。

4-4-2、游戏统计与分析

        通过MySQL存储游戏数据,开发者可以进行游戏统计和分析,了解玩家的行为和喜好,优化游戏体验。

4-5、移动应用开发
4-5-1、后端数据存储

        许多移动应用需要与后端服务器进行交互,MySQL可以作为后端服务器的数据库,存储和管理移动应用的数据。

4-5-2、用户认证与授权

        MySQL可以用于实现移动应用的用户认证和授权功能,确保用户数据的安全性和隐私性。

4-6、物联网(IoT)
4-6-1、设备数据存储

        随着物联网技术的发展,越来越多的设备需要连接到互联网并传输数据,MySQL可以用于存储这些设备的数据,方便进行实时监控和数据分析。

4-7、电子商务
4-7-1、购物车与订单管理

        MySQL可以存储和管理用户的购物车信息、订单详情等,支持电子商务网站的交易流程。

4-7-2、库存管理与物流跟踪

        通过MySQL存储库存信息和物流数据,可以实现库存的实时监控和物流的跟踪管理。

4-8、金融与银行业
4-8-1、账户管理

        MySQL可以存储和管理客户的账户信息、交易记录等,支持金融和银行业务的正常运行。

4-8-2、风险管理

        通过MySQL存储和分析客户的风险数据,银行可以更好地评估和管理风险。

        总之,上述只是MySQL数据库的一些常见应用场景,实际上它的应用领域远不止这些。随着技术的不断发展和业务的不断扩展,MySQL的应用场景也在不断扩大。

5、安装及配置

5-1、版本选择

        版本信息:mysql-installer-community-8.0.37.0

5-2、下载MySQL 8.0

5-2-1、下载地址:MySQL官网下载地址     ,打开mysql-installer-community-8.0.37.0下载页面,选择Microsoft Windows平台,然后根据自身的平台选择32位或者64位安装包,在这里选择32位,单击右侧【Download】按钮。

 5-2-2、单击【Download】按钮后,进入下载界面:

5-2-3、点击【No thanks,just start my download】链接,会弹出【新建下载任务】界面,如下图:

 5-2-4、单击【下载】按钮后,开始文件下载,如下图:

        毕竟这是从境外网站下载,很多时候会限流,但千万不要一直等,可以尝试删除下载链接后,重新单击【Download】下载即可。

5-2-3、在刚刚设置的下载位置【E:\360Downloads】,找到安装文件,如下图:

5-3、安装MySQL 8.0

        MySQL下载完成后,找到下载文件,鼠标左键双击进行安装,具体步骤如下:

5-3-1、双击下载的mysql-installer-community-8.0.37.0.msi文件,开始安装向导。

5-3-2、打开【Choosing a Setup Type】(安装类型选择)界面,共列出了4种安装类型,分别是:Server only(仅作为服务器)、Client only(仅作为客户端)、Full(完全安装)和Custom(自定义安装),我们选择【Custom】(自定义安装)单选按钮,单击【Next>】(下一步)按钮,如下图所示:

5-3-3、在【Select Products】(选择产品) 窗口,依次选择:【MySQL Server 8.0.37 - x64】、【Samples and Examples 8.0.37 - x86】(注:这是我的需求,请根据自身需求增减调整即可)后,单击【→】按钮添加。

若需要更改产品安装路径的,可以在【Products To Be Installed】界面选中产品,单击【Advanced Options】超链接,进入下图中:

 5-3-4、单击【Next>】(下一步)按钮,进入【Installation】(准备安装对话框):

5-3-5、开始安装MySQL相关产品,安装完成后,在【Status】(状态)列表下将显示Complete(安装完成) ,如下图:

5-3-6、 单击【Next>】(下一步)按钮,进入:

5-4、配置MySQL 8.0

        MySQL安装完毕后,需要对服务器进行相关配置。具体配置步骤如下:

5-4-1、在5-3-6节的最后一步中,单击【Next>】(下一步)按钮,将进入【Product Configuration】(产品信息窗口),如下图:

 5-4-2、单击【Next>】(下一步)按钮,将进入【Type and Networking】(服务器类型配置)窗口,采用默认设置,如下图:

        其中,【Config Type】选项用于设置服务器的类型,单击该选项右侧的下拉箭头,即可看到3个选项,如下图:

        3个选项的具体含义如下:

 ※ Development Computer(开发机):该选项代表典型个人用桌面工作站,假定机器上运行着多个桌面应用程序,将MySQL服务器配置成使用最少得系统资源。

Server Machine(服务器):该选项代表服务器,MySQL服务器可以同其他应用程序一起运行,如Web和Email服务器,MySQL服务器配置成使用适当比例的系统资源。

Dedicated Machine(专用服务器):该选项代表只运行MySQL服务的服务器,假定没有其他运行程序,MySQL服务器配置成使用100%的系统资源。

5-4-3、单击【Next>】(下一步)按钮,进入【Authentication Method】(设置授权方式)窗口:

        其中,有两个单选按钮,说明如下:

第1个单选按钮:MySQL 8.0 提供的新的授权方式,采用SHA256基础的加密方法。

第2个单选按钮:传统授权方法(保留了对5.x版本的兼容性)。

        这里,我们选择第二个单选按钮。

5-4-4、单击【Next>】(下一步)按钮,打开设置服务器的密码窗口,如下图:

5-4-5、单击【Add User】(新增用户)按钮后,弹出【MySQL User Account】窗口,如下图:

5-4-6、单击【Next>】(下一步)按钮,打开【Windows Service】窗口,我们可以去掉版本号,保留服务器名称为"MySQL",如下图:

5-4-7、 单击【Next>】(下一步)按钮,打开【Server File Permissions】(服务器文件权限)界面,如下图:

5-4-8、 单击【Next>】(下一步)按钮,打开【Apply Configuration】(应用配置)界面,如下图:

5-4-9、单击【Execute】(执行)按钮,即可完成服务器的配置,如下图:

5-4-10、单击【Finish】 (完成)按钮,打开【Connect To Server】(连接到服务器)界面,如下图:

5-4-11、单击【Next>】(下一步)按钮,打开【Apply Configuration】(应用配置)窗口,如下图:

        单击【Execute】(执行)按钮后,完成配置应用操作。如下图: 

5-4-12、单击【Finish】 (完成)按钮,打开【Product Configuration】(产品配置)界面,如下图:

5-4-13、单击【Next>】(下一步)按钮,进入【Installation Complete】(安装完成)界面,如下图:

        点击【Finish】(完成)按钮,即可完成MySQL数据库的配置操作。 

5-4-14、按键盘组合键【Ctrl+Alt+Del】,打开【任务管理器】窗口,如下图: 

        MySQL服务进程mysqld.exe已经启动了,说明我们已经在Windows 10操作系统环境下成功安装了MySQL数据库。

说明:因每个人的系统环境不一样,安装过程中,难免会遇到这样或那样的问题,在此就不一一展开分析,若有需要提供支持,请加本人微信沟通及交流。 

二、推荐阅读 

1、Python函数之旅

2、Python算法之旅

3、博客个人主页

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OSPF路由聚合

原理概述 与RIP不同,OSPF不支持自动路由聚合,仅支持手动路由聚合。OSPF的路由聚合有两种机制:区域间路由聚合和外部路由聚合。区域间路由聚合必须配置在ABR路由器上,指的是ABR在把与自己直接相连区域(Area&#xff09…

运营美区TikTok小店常见问题汇总,你中了几个?

大家好,我是IPdodo的小编,专注于分享出海网络解决方案,致力于为TikTok运营人提供解决视频0播放、直播间卡顿、不进人甚至封号等问题的跨境网络专线。目前已经帮助数千位用户成功开启跨境业务。 今天,将针对美区TikTok小店的常见问…

树莓派学习笔记——树莓派的三种GPIO编码方式

1、板载编码(Board pin numbering): 板载编码是树莓派上的一种GPIO引脚编号方式,它指的是按照引脚在树莓派主板上的物理位置来编号。这种方式对于初学者来说可能比较直观,因为它允许你直接根据引脚在板上的位置来编程。 2、BCM编…

CasaOS系统玩客云安装内网穿透工具实现无公网IP远程访问

文章目录 前言1. CasaOS系统介绍2. 内网穿透安装3. 创建远程连接公网地址4. 创建固定公网地址远程访问 前言 2月底,玩客云APP正式停止运营,不再提供上传、云添加功能。3月初,有用户进行了测试,局域网内的各种服务还能继续使用&am…

“手撕”String类+练习题

一、什么是String类 简单讲:是一个类!创建字符串和字符串方法的类。 用 圈起来的叫字符,比如:a,b....里面只能有一个char类型的字符。 用" "圈起来的叫字符串,比如:"abc"..里面可以连…

2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新

v2.0.4更新 v2.0.4更新 2024年5月20日优雅草蜻蜓API大数据服务中心v2.0.4更新-增加ai绘画接口增加淘宝联想词接口底部增加联系方式 更新日志 底部增加联系方式 增加ai绘画接口 增加淘宝联想词接口 增加用户中心充值提示 用户中心内页颜色改版完成 截图 部分具体更新接口信…

Python 渗透测试:Redis 数据库 弱密码测试.(6379端口)

什么是 Redis 数据库 Redis (Remote Dictionary Server) 是一个开源的、内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等&#xff0…

9、QT—SQLite使用小记

前言 开发平台:Win10 64位 开发环境:Qt Creator 13.0.0 构建环境:Qt 5.15.2 MSVC2019 64位 sqlite版本:sqlite3 文章目录 一、Sqlite是什么二、sqlite使用步骤2.1 下载2.2 安装2.3 使用 三、Qt集成sqlite33.1 关键问题3.2 封装sql…

JAVA开发 基础Jaccard来计算两个字符串之间的重复率

计算两个字符串之间的重复率 Jaccard实现代码基于最长公共子序列来计算两个字符串之间的重复率 Jaccard Jaccard方法,也称为Jaccard相似度或Jaccard相似系数,是一种用于衡量两个集合相似程度的指标。其逻辑基于集合之间的交集与并集的关系来衡量它们的相…

5.23-

回顾 I0多路复用的原理? 程序首先向操作系统发起一个IO多路复用请求,告诉操作系统需要监视哪些IO通道。这些IO通道可以包括网络套接字、文件描述符等操作系统随后会将这些IO通道放入一个队列中,并在某个IO通道就绪时(如数据到达、文件可读…

Aws EC2 + Aws Cli + Terraform

1 什么是 Terraform? Terraform 是由 HashiCorp 创建的“基础架构即代码”(Infrastructure-as-Code,IaC)开源工具。Terraform 的配置语言是 HashiCorp Configuration Language(HCL),用来替代更加冗长的 JSON 和 XML 等…

7---Linux调试器gdb及拓展知识

一、先决知识补充: 1.1为什么测试人员需要测试的版本必须是release版本而不是debug版本? release版本是用户使用到的版本,release版本能够提供更真实的性能表现、完整的代码逻辑、安全性、稳定性以及用户体验。测试release版本可以确保用户…

基于深度学习PET/CT放射学的预后价值:未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 | 文献速递-深度学习结合影像组学

Title 题目 Prognostic Value of Deep Learning PET/CT-BasedRadiomics: Potential Role for Future IndividualInduction Chemotherapy in AdvancedNasopharyngeal Carcinoma 基于深度学习PET/CT放射学的预后价值:未来在晚期鼻咽癌个体化诱导化疗中的潜在作用 0…

Android 逆向学习【2】——APK基本结构

APK安装在安卓机器上的,相当于就是windows的exe文件 APK实际上是个压缩包 只要是压缩的东西 .jar也是压缩包 里面是.class(java编译后的一些东西) APK是Android Package的缩写,即Android安装包。而apk文件其实就是一个压缩包,我们可以将apk文件的后…

【McCabe度量法】方法详解和软考历年真题

🔎嘿,这里是慰慰👩🏻‍🎓,会发各种类型的文章,智能专业,从事前端🐾 🎉如果有帮助的话,就点个赞叭,让我开心一下!&#x1f…

slam14讲(第9,10讲 后端)

slam14讲(第9,10讲 后端) 后端分类基于滤波器的后端线性系统和卡尔曼滤波非线性系统和扩展卡尔曼滤波 BA优化H矩阵的稀疏性和边缘化H矩阵求解的总结 位姿图优化公式推导 基于滑动窗口的后端个人见解旧关键帧的边缘化 后端分类 基于滤波器的后…

Linux-文件或目录权限

在使用 ll 时,可以查看文件夹内容的详细信息,信息的第1位表示类型,具体信息如下: 类型说明-普通文件d文件夹b块设备文件c字符设备文件p管道文件s套接口文件 第2-10位表示权限, 举例:rwxr-xr-x 类型说明r…

Golang | Leetcode Golang题解之第97题交错字符串

题目&#xff1a; 题解&#xff1a; func isInterleave(s1 string, s2 string, s3 string) bool {n, m, t : len(s1), len(s2), len(s3)if (n m) ! t {return false}f : make([]bool, m 1)f[0] truefor i : 0; i < n; i {for j : 0; j < m; j {p : i j - 1if i >…

mysql误删后使用binlog恢复数据

1 预期效果 使用 binlog 恢复数据的预期效果是将误删的数据还原到误删之前的状态&#xff0c;以减少或消除数据丢失的影响。通过正确解析和执行 binlog 中的操作记录&#xff0c;可以重新执行误删操作之后的插入、更新或删除操作&#xff0c;从而恢复被误删的数据。 数据恢复&…

二.Flowable自带Demo(Flowable-UI)体验

问题反馈 如有问题可通过微信公众号“假装正经的程序员”反馈 Flowable-UI是什么 Flowable-UI是flowable自带的一套供开发人员体验的系统&#xff0c;它通过后台的UI建模&#xff0c;让开发人员了解Flowable的工作流程&#xff0c;同时它部署简单&#xff0c;只需要将对应的w…