mysql Tutorial-01-基础
创作目的
以前在学习 mysql 的时候,经常东拼西凑的学习零碎的知识。
完全无法形成完整的知识体系。
这个属于 mysql 核心知识点的梳理,新人可以作为学习的参考,有经验的话也可以作为可查的资料宝典。
mysql install
mysql 安装教程参见以前的文章:
MySQL 5.6 Install, Windows Mysql Install 安装
database mysql install on windows10 WSL
拓展阅读
系统学习教程:
mysql 是什么?
MySQL是最流行且免费的开源关系型数据库管理系统(RDBMS)。
RDBMS系统以表格的形式存储数据,这些表格可能彼此相关。
MySQL使用结构化查询语言(SQL)来存储、管理和检索数据,并控制对数据的访问权限。它是用于开发基于Web的软件应用程序的最佳RDBMS之一。
MySQL是用C和C++编写的。其SQL解析器是用yacc编写的,但它使用了一个自制的词法分析器。
为什么学习MySQL?
MySQL通常比其他关系型数据库更快、更安全、更高效。全球一些增长最快的组织利用MySQL有效地支持其高流量网站、关键业务系统和打包软件。
然而,你是否选择MySQL用于你的应用,完全取决于你的组织资源和目标。通常,MySQL被用于没有大型数据集的小型企业,因为它具有成本效益和简单设置的特点。
为什么学习 mysql 的给出核心理由
学习 MySQL(或任何数据库管理系统)的核心理由包括:
广泛应用:MySQL是世界上最流行的开源关系型数据库管理系统之一,被广泛应用于各种类型的应用程序和网站中,包括企业级应用、网站、电子商务平台等。
数据库基础:MySQL是学习数据库管理系统和SQL语言的良好起点。掌握MySQL可以帮助理解关系型数据库的基本概念、SQL语言的语法和数据操作技术。
工作机会:数据库管理和SQL编程是许多IT职位中的基本技能之一。掌握MySQL可以增加在数据库管理、数据分析、软件开发等领域的就业机会。
开源和免费:MySQL是开源软件,可以免费使用,对于学习和个人项目而言,成本较低,且有庞大的社区支持。
性能和可扩展性:MySQL在处理大规模数据和高并发访问方面表现优异,具有良好的性能和可扩展性,适用于需要高效处理大量数据的应用场景。
和常见数据库的对比表格
与常见数据库的对比表格:
特性 | MySQL | PostgreSQL | SQL Server | Oracle |
---|---|---|---|---|
数据库类型 | 关系型数据库 | 关系型数据库 | 关系型数据库 | 关系型数据库 |
开源/商业 | 开源 | 开源 | 商业 | 商业 |
支持平台 | 跨平台 | 跨平台 | Windows | 跨平台 |
SQL兼容性 | 标准SQL | 标准SQL | 标准SQL | 标准SQL |
数据完整性和约束 | 支持 | 支持 | 支持 | 支持 |
事务支持 | 支持 | 支持 | 支持 | 支持 |
存储过程和触发器 | 支持 | 支持 | 支持 | 支持 |
复制和高可用性 | 支持 | 支持 | 支持 | 支持 |
JSON 数据类型 | 支持(MySQL 5.7+) | 支持(PostgreSQL 9.2+) | 支持(SQL Server 2016+) | 不支持 |
全文检索功能 | 支持(全文索引) | 支持(全文索引) | 支持(全文索引) | 支持(全文索引) |
可扩展性 | 高 | 高 | 中 | 高 |
成熟度和稳定性 | 非常成熟 | 非常成熟 | 非常成熟 | 非常成熟 |
MySQL的特性
MySQL被认为是最流行的关系型数据库之一的主要原因之一是它拥有丰富的特性。让我们一一来看看这些特性。
开源
MySQL是开源的,这意味着任何人都可以下载、使用和修改这个软件。它是免费使用且易于理解的。MySQL的源代码可以被研究,并根据需求进行更改。它使用GPL(GNU通用公共许可证),该许可证定义了关于使用该应用程序的规则和条款。
快速可靠
MySQL以高效地存储数据在内存中,确保数据一致性且不冗余。因此,使用MySQL进行数据访问和操作是快速的。它被认为是速度最快的关系型数据库之一,同时具有更高的生产力。
高性能
MySQL提供了相对较高的性能,而不影响其功能。它还具有非常少的内存泄漏,使其也具有内存效率。
可扩展性
可扩展性指的是系统能够轻松处理小量数据、大量数据、机器集群等的能力。MySQL服务器是为了与大型数据库一起工作而开发的。
数据类型
它包含多种数据类型,如无符号整数、有符号整数、浮点数(FLOAT)、双精度浮点数(DOUBLE)、字符(CHAR)、可变字符(VARCHAR)、文本、二进制大对象(BLOB)、日期、时间、日期时间、时间戳、年等。
字符集
它支持不同的字符集,包括拉丁1(cp1252字符编码)、德语、Ujis、其他Unicode字符集等。
安全
它提供了一个安全的接口,因为它具有一个灵活的密码系统,并确保在访问数据库之前基于主机对其进行验证。连接到服务器时,密码会被加密。
支持大型数据库
它支持大型数据库,可以包含约4000万到5000万条记录,15万到20万个表,最多可达50亿行。
跨平台
MySQL可以在多种操作系统上运行,包括Windows、Linux、macOS等,并支持多种编程语言,如C、C++、Java、Python、Perl、PHP等。
客户端和实用程序
MySQL服务器还附带许多客户端和实用程序程序。这包括命令行程序,如'mysqladmin'和图形程序,如'MySQL Workbench'。MySQL客户端程序用各种语言编写。客户端库(封装在模块中的代码)可以用C或C++编写,并且可以提供给具有C绑定的客户端。
mysql 版本核心特性
以下是一些主要版本的核心特性介绍:
1. MySQL 5.6:
- 增强的性能和可扩展性:引入了InnoDB存储引擎的改进,包括性能和可扩展性方面的优化,如更好的多线程处理、更快的索引操作等。
- 在线DDL操作:引入了更多的在线DDL操作,允许在运行时进行表结构的更改,减少了停机时间。
- NoSQL 支持:通过 Memcached 协议,引入了 NoSQL 风格的访问方式,使得开发者可以使用 Memcached API 直接访问 MySQL 数据库,提高了数据存取的灵活性。
- Geospatial 支持:提供了对地理空间数据的更好支持,包括地理坐标索引、地理函数等。
2. MySQL 5.7:
- JSON 数据类型:引入了 JSON 数据类型,使得 MySQL 可以更方便地存储和操作 JSON 数据。
- 多源复制:提供了多源复制功能,允许从多个主服务器复制数据到一个从服务器,提高了数据复制的灵活性和扩展性。
- 全文索引的升级:改进了全文索引的性能和功能,包括 ngram 支持、全文索引加速等。
- 安全性增强:引入了更多的安全功能,包括密码管理组件、加密连接、更严格的权限管理等。
3. MySQL 8.0:
- Window 函数和分析函数:引入了窗口函数和分析函数,使得复杂的数据分析和计算更加简单和高效。
- Common Table Expressions (CTE):引入了通用表表达式(CTE),允许使用 WITH 关键字定义临时结果集,提高了查询的可读性和灵活性。
- 更好的 JSON 支持:进一步改进了对 JSON 数据类型的支持,包括 JSON 路径表达式、 JSON 文档存储等。
- 在线 DDL 改进:进一步改进了在线DDL操作,提供了更多的在线表结构更改操作。
以上是 MySQL 的一些主要版本的核心特性介绍,每个版本都致力于改进性能、功能和安全性,以满足不断增长的用户需求和应用场景的变化。
适合人群?
MySQL 入门教程适合以下人群学习:
初学者: 如果您对数据库概念和 SQL 查询语言不熟悉,那么 MySQL 入门教程是您学习数据库基础知识的理想选择。MySQL 是一种广泛使用的关系型数据库管理系统,学习 MySQL 可以帮助您建立对数据库基本概念和操作的理解。
软件开发人员: 对于软件开发人员来说,掌握数据库技术是至关重要的。MySQL 入门教程可以帮助软件开发人员学习如何设计和管理数据库,以及如何使用 SQL 查询语言与数据库进行交互。这对于开发 Web 应用、移动应用、桌面应用等各种类型的软件都是必要的。
数据分析师: 数据分析师通常需要处理大量的数据,并从中提取有用的信息。学习 MySQL 可以帮助数据分析师了解如何使用数据库管理系统存储和管理数据,并使用 SQL 查询语言进行数据分析和报告生成。
系统管理员: 系统管理员通常负责安装、配置和维护数据库服务器。MySQL 入门教程可以帮助系统管理员了解 MySQL 数据库的基本架构和管理技术,以及如何进行备份、恢复、优化和监控数据库服务器。
学生和自学者: 如果您对数据库技术感兴趣,或者希望提升自己的技能水平,那么 MySQL 入门教程也适合作为学习的资源。无论您是学生还是自学者,学习 MySQL 都可以为您提供一个深入了解数据库技术的机会。
总的来说,MySQL 入门教程适合任何对数据库技术感兴趣的人群,不论您是初学者还是有一定经验的专业人士,学习 MySQL 都是有益的。
能学到什么?
学习 MySQL 入门教程可以获得以下知识:
数据库基础知识: 您将了解数据库的基本概念,包括什么是数据库、表、字段、行等。您还将学习数据库管理系统(DBMS)的作用和功能。
MySQL 的安装和配置: 您将学习如何在计算机上安装和配置 MySQL 数据库服务器。这包括安装 MySQL 软件、设置数据库服务器参数、创建用户账户等。
SQL 查询语言: SQL(Structured Query Language)是用于与数据库进行交互的标准查询语言。您将学习 SQL 查询语言的基本语法,包括 SELECT、INSERT、UPDATE、DELETE 等语句的使用方法。
数据类型和约束: 您将了解 MySQL 中常见的数据类型,如整数、浮点数、日期时间、字符串等,以及如何在创建表时设置字段的约束条件,如主键、唯一键、外键等。
表的操作: 您将学习如何创建、修改和删除数据库中的表,以及如何向表中插入、更新和删除数据。
查询优化: 您将了解如何编写高效的 SQL 查询语句,以提高查询的性能和效率。这包括使用索引、优化查询语句结构、避免全表扫描等技巧。
数据备份和恢复: 您将学习如何备份和恢复数据库中的数据,以及如何进行数据库的完整性和一致性维护。
用户管理和权限控制: 您将了解如何管理 MySQL 数据库服务器上的用户账户和权限,包括创建、修改和删除用户账户,以及授予和撤销用户的权限。
事务和并发控制: 您将学习数据库事务的概念和特性,以及如何使用事务来确保数据的一致性和完整性。您还将了解并发控制的基本原理和技术。
其他高级特性: 一些 MySQL 入门教程可能还会涉及一些高级特性,如存储过程、触发器、视图等。这些特性可以帮助您更好地组织和管理数据库中的数据。