【MySQL精通之路】MySQL8.0官方文档中文翻译
本文适合有一点MySQL技术栈基础的朋友阅读。
官方文档地址:
MySQL :: MySQL 8.0 Reference Manual :: 1 General Information
目录
目录
翻译
前言和法律声明
1. 一般信息
1.1 关于本手册
1.2 MySQL数据库管理系统概述
1.2.1 什么是MySQL?
1.2.2 MySQL的主要功能
内部结构和便携性
数据类型
语句和函数
安全
可扩展性和限制
连接性
本土化
客户端和工具
1.2.3 MySQL历史
1.3 MySQL 8.0的新增功能
1.4 MySQL 8.0中添加、弃用或删除的服务器和状态变量及选项
1.5 如何报告Bug或问题
1.6 MySQL符合的标准
翻译
前言和法律声明
这是 MySQL 数据库系统 8.0 版至 8.0.37 版的参考手册。 MySQL 8.0 次要版本之间的差异在本文中参考版本号 (8.0. x) 进行了说明。有关许可证信息,请参阅法律声明。
由于 MySQL 8.0 与以前版本之间存在许多功能和其他差异,因此本手册不适用于旧版本的 MySQL 软件。如果您使用的是早期版本的 MySQL 软件,请参阅相应的手册。例如, MySQL 5.7 参考手册 涵盖了 MySQL 软件版本的 5.7 系列。
如果您使用的是MySQL 8.4,请参阅 MySQL 8.4参考手册。
许可信息 — MySQL 8.0。 本产品可能包含经许可使用的第三方软件。如果您使用的是 MySQL 8.0 商业版本,请参阅MySQL 8.0 商业版本许可证信息用户手册以获取许可信息,包括与此商业版本中可能包含的第三方软件相关的许可信息。如果您使用的是 MySQL 8.0 社区版本,请参阅MySQL 8.0 社区版本许可证信息用户手册以获取许可信息,包括与此社区版本中可能包含的第三方软件相关的许可信息。
许可信息 — MySQL NDB Cluster 8.0。 如果您使用的是 MySQL NDB Cluster 8.0 商业版本,请参阅MySQL NDB Cluster 8.0 商业版本许可证信息用户手册以获取许可信息,包括与此商业版本中可能包含的第三方软件相关的许可信息。如果您使用的是 MySQL NDB Cluster 8.0 社区版本,请参阅MySQL NDB Cluster 8.0 社区版本许可证信息用户手册以获取许可信息,包括与此社区版本中可能包含的第三方软件相关的许可信息。
法律声明
版权所有 © 1997、2024,Oracle 和/或其附属公司。
许可限制
本软件和相关文档根据包含使用和披露限制的许可协议提供,并受知识产权法保护。除非您的许可协议明确允许或法律允许,否则您不得以任何形式使用、复印、复制、翻译、广播、修改、许可、传输、分发、展示、执行、发布或展示任何部分,或以任何方式。除非法律要求互操作性,否则禁止对该软件进行逆向工程、反汇编或反编译。
保修免责声明
本文包含的信息如有更改,恕不另行通知,并且不保证没有错误。如果您发现任何错误,请以书面形式向我们报告。
限制权利通知
如果这是交付给美国政府或代表美国政府许可的任何人的软件、软件文档、数据(如《联邦采购条例》中所定义)或相关文档,则适用以下通知:
美国政府最终用户:Oracle 程序(包括任何操作系统、集成软件、在交付的硬件上嵌入、安装或激活的任何程序以及此类程序的修改)以及交付给美国政府最终或由美国政府最终访问的 Oracle 计算机文档或其他 Oracle 数据用户是根据适用的联邦采购法规和机构特定补充法规的“商业计算机软件”、“商业计算机软件文档”或“有限权利数据”。因此,i) Oracle 程序(包括任何操作系统、集成软件、嵌入、安装或激活的任何程序)的使用、复制、复制、发布、显示、披露、修改、衍生作品的准备和/或改编交付的硬件以及此类程序的修改)、ii) Oracle 计算机文档和/或 iii) 其他 Oracle 数据均受适用合同中包含的许可中指定的权利和限制的约束。管理美国政府使用 Oracle 云服务的条款由此类服务的适用合同定义。美国政府没有被授予其他权利。
危险应用注意事项
该软件或硬件是为各种信息管理应用程序的通用而开发的。它不是为任何本质上危险的应用而开发或打算使用的,包括可能造成人身伤害风险的应用。如果您在危险应用中使用本软件或硬件,则您有责任采取所有适当的故障安全、备份、冗余和其他措施来确保其安全使用。 Oracle Corporation 及其附属公司对因在危险应用中使用本软件或硬件而造成的任何损害不承担任何责任。
商标声明
Oracle、Java、MySQL 和 NetSuite 是 Oracle 和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。
Intel 和 Intel Inside 是英特尔公司的商标或注册商标。所有 SPARC 商标均经许可使用,并且是 SPARC International, Inc. 的商标或注册商标。AMD、Epyc 和 AMD 徽标是 Advanced Micro Devices 的商标或注册商标。 UNIX 是 The Open Group 的注册商标。
第三方内容、产品和服务免责声明
该软件或硬件和文档可以提供对第三方内容、产品和服务的访问或有关第三方内容、产品和服务的信息。除非您与 Oracle 之间的适用协议中另有规定,否则 Oracle Corporation 及其附属公司对第三方内容、产品和服务不承担任何责任,并明确拒绝提供任何类型的保证。 Oracle Corporation 及其附属公司对因您访问或使用第三方内容、产品或服务而产生的任何损失、成本或损害不承担任何责任,除非您与 Oracle 之间的适用协议中有规定。
本文档的使用
本文档不是根据 GPL 许可证分发的。使用本文档须遵守以下条款:
您可以创建本文档的打印副本,仅供您个人使用。只要不以任何方式更改或编辑实际内容,就允许转换为其他格式。您不得以任何形式或在任何媒体上发布或分发本文档,除非您以类似于 Oracle 分发文档的方式(即通过软件在网站上以电子方式下载)或通过 CD 分发文档-ROM 或类似介质,但前提是文档与同一介质上的软件一起传播。任何其他使用,例如传播印刷版或在其他出版物中全部或部分使用本文档,都需要获得 Oracle 授权代表的事先书面同意。 Oracle 和/或其附属公司保留上文未明确授予的对本文档的任何及所有权利。
1. 一般信息
1.1 关于本手册
MySQL 软件提供了非常快速、多线程、多用户且强大的 SQL(结构化查询语言)数据库服务器。 MySQL Server 旨在用于关键任务、重负载生产系统以及嵌入到大规模部署的软件中。 Oracle 是 Oracle Corporation 和/或其附属公司的注册商标。 MySQL 是 Oracle Corporation 和/或其附属公司的商标,未经 Oracle 明确书面授权,客户不得使用。其他名称可能是其各自所有者的商标。
MySQL 软件是双重许可的。用户可以选择根据 GNU 通用公共许可证 ( Various Licenses and Comments about Them- GNU Project - Free Software Foundation )的条款使用 MySQL 软件作为开源产品,也可以从 Oracle 购买标准商业许可证。有关我们的许可政策的更多信息, 请参阅 http://www.mysql.com/company/legal/licensing/ 。
以下列表描述了本手册中特别令人感兴趣的一些部分:
-
有关 MySQL 数据库服务器功能的讨论,请参见 第 1.2.2 节“MySQL 的主要功能”。
-
有关 MySQL 新功能的概述,请参阅 第 1.3 节“MySQL 8.0 中的新增功能”。有关每个版本中的更改的信息,请参阅 发行说明。
-
有关安装说明,请参阅第 2 章,安装 MySQL。有关升级 MySQL 的信息,请参阅 第 3 章,升级 MySQL。
-
有关 MySQL 数据库服务器的教程介绍,请参阅 第 5 章,教程。
-
有关配置和管理 MySQL 服务器的信息,请参阅第 7 章,MySQL 服务器管理。
-
有关 MySQL 安全性的信息,请参阅 第 8 章,安全性。
-
有关设置复制服务器的信息,请参阅 第 19 章,复制。
-
有关 MySQL Enterprise(具有高级功能和管理工具的商业 MySQL 版本)的信息,请参阅 第 32 章,MySQL 企业版。
-
有关 MySQL 数据库服务器及其功能的一些常见问题的解答,请参阅 附录 A,MySQL 8.0 常见问题解答。
-
有关新功能和错误修复的历史记录,请参阅 发行说明。
1.2 MySQL数据库管理系统概述
1.2.1 什么是MySQL?
MySQL 是最流行的开源 SQL 数据库管理系统,由 Oracle 公司开发、分发和支持。
MySQL 网站 ( MySQL ) 提供有关 MySQL 软件的最新信息。
-
MySQL 是一个数据库管理系统。
数据库是数据的结构化集合。它可以是任何东西,从简单的购物清单到图片库或公司网络中的大量信息。要添加、访问和处理计算机数据库中存储的数据,您需要一个数据库管理系统,例如 MySQL Server。由于计算机非常擅长处理大量数据,因此数据库管理系统作为独立实用程序或其他应用程序的一部分,在计算中发挥着核心作用。
-
MySQL 数据库是关系型数据库。
关系数据库将数据存储在单独的表中,而不是将所有数据放在一个大库房中。数据库结构被组织成针对速度进行优化的物理文件。具有数据库、表、视图、行和列等对象的逻辑模型提供了灵活的编程环境。您可以设置规则来管理不同数据字段之间的关系,例如一对一、一对多、唯一、必需或可选,以及 不同表之间的“指针” 。数据库强制执行这些规则,因此使用设计良好的数据库,您的应用程序永远不会看到不一致、重复、孤立、过时或丢失的数据。
“ MySQL ” 的SQL部分代表 “结构化查询语言”。 SQL 是用于访问数据库的最常见的标准化语言。根据您的编程环境,您可以直接输入 SQL(例如,生成报告)、将 SQL 语句嵌入到用其他语言编写的代码中,或者使用隐藏 SQL 语法的特定于语言的 API。
SQL 由 ANSI/ISO SQL 标准定义。 SQL 标准自 1986 年以来一直在发展,并且存在多个版本。本手册中,“ SQL-92 ”指 1992 年发布的标准,“ SQL:1999 ”指 1999 年发布的标准,“ SQL:2003 ”指该标准的当前版本。我们使用短语 “ SQL 标准”来表示 SQL 标准在任何时间的当前版本。
-
MySQL 软件是开源的。
开源意味着任何人都可以使用和修改该软件。任何人都可以从互联网上下载MySQL软件并使用它,而无需支付任何费用。如果您愿意,您可以研究源代码并更改它以满足您的需要。 MySQL 软件使用 GPL(GNU 通用公共许可证)Various Licenses and Comments about Them- GNU Project - Free Software Foundation来定义在不同情况下您可以使用该软件执行哪些操作,不可以执行哪些操作。如果您对 GPL 感到不舒服或者需要将 MySQL 代码嵌入到商业应用程序中,您可以从我们这里购买商业许可版本。有关详细信息,请参阅 MySQL 许可概述 ( MySQL :: Legal Policies )。
-
MySQL 数据库服务器非常快速、可靠、可扩展且易于使用。
如果这就是您正在寻找的,您应该尝试一下。 MySQL Server 可以在台式机或笔记本电脑上与其他应用程序、Web 服务器等一起舒适地运行,几乎不需要或不需要关注。如果您将整台机器专用于 MySQL,则可以调整设置以利用所有可用的内存、CPU 功率和 I/O 容量。 MySQL 还可以扩展到联网的机器集群。
MySQL Server 最初开发的目的是为了比现有解决方案更快地处理大型数据库,并且已在高要求的生产环境中成功使用多年。尽管在不断发展,MySQL Server 如今提供了一组丰富且有用的功能。其连接性、速度和安全性使 MySQL Server 非常适合访问 Internet 上的数据库。
-
MySQL 服务器工作在客户端/服务器或嵌入式系统中。
MySQL 数据库软件是一个客户端/服务器系统,由支持不同后端的多线程 SQL 服务器、多个不同的客户端程序和库、管理工具以及广泛的应用程序编程接口 (API) 组成。
我们还提供 MySQL Server 作为嵌入式多线程库,您可以将其链接到您的应用程序中以获得更小、更快、更易于管理的独立产品。
-
有大量贡献的 MySQL 软件可供使用。
MySQL Server 拥有一组与我们的用户密切合作开发的实用功能。您最喜欢的应用程序或语言很可能支持 MySQL 数据库服务器。
-
MySQL HeatWave 。
MySQL HeatWave 是一项完全托管的数据库服务,由 HeatWave 内存查询加速器提供支持。它是唯一一款在一个 MySQL 数据库中将事务、跨数据仓库和数据湖的实时分析以及机器学习结合在一起的云服务;没有 ETL 重复的复杂性、延迟、风险和成本。它可在 OCI、AWS 和 Azure 上使用。了解更多信息: MySQL HeatWave Database Service | Oracle。
1.2.2 MySQL的主要功能
本节介绍 MySQL 数据库软件的一些重要特性。在大多数方面,该路线图适用于 MySQL 的所有版本。有关特定于系列的 MySQL 中引入的功能的信息,请参阅 相应手册的 “简而言之”部分:
-
MySQL 8.4:自 MySQL 8.0 以来 MySQL 8.4 的新增内容
-
MySQL 8.0:第 1.3 节,“MySQL 8.0 中的新增功能”
-
MySQL 5.7:MySQL 5.7 中的新增功能
内部结构和便携性
-
用 C 和 C++ 编写。
-
使用各种不同的编译器进行了测试。
-
适用于许多不同的平台。请参阅 MySQL :: Supported Platforms: MySQL Database。
-
为了可移植性,使用CMake配置。
-
使用 Purify(商业内存泄漏检测器)以及 Valgrind(一种 GPL 工具)进行测试 ( Valgrind Home )。
-
采用多层服务器设计,模块独立。
-
设计为使用内核线程的完全多线程,以便轻松使用多个 CPU(如果可用)。
-
提供事务性和非事务性存储引擎。
-
使用非常快的 B 树磁盘表 ( MyISAM) 和索引压缩。
-
旨在使添加其他存储引擎相对容易。如果您想为内部数据库提供 SQL 接口,这非常有用。
-
使用非常快速的基于线程的内存分配系统。
-
使用优化的嵌套循环连接执行非常快速的连接。
-
实现内存中的哈希表,用作临时表。
-
使用高度优化的类库实现 SQL 函数,该类库应该尽可能快。通常,查询初始化后根本没有内存分配。
-
将服务器作为单独的程序提供,以便在客户端/服务器网络环境中使用。
数据类型
-
许多数据 类型 : 有 符号/ 无符号 整数 1、2、3、4 和 8字节 长 FLOAT、、、、、、、、、、、、、、、、、、、、、、 和 OpenGIS 空间 类型 。请参阅第 13 章,数据类型。 DOUBLECHARVARCHARBINARYVARBINARYTEXTBLOBDATETIMEDATETIMETIMESTAMPYEARSETENUM
-
固定长度和可变长度字符串类型。
语句和函数
-
SELECT查询列表和 WHERE子句 中的完整运算符和函数支持 。例如:
mysql> SELECT CONCAT(first_name, ' ', last_name) -> FROM citizen -> WHERE income/dependents > 10000 AND age > 30;
-
完全支持 SQLGROUP BY和 ORDER BY子句。支持群组功能(COUNT()、 AVG()、 STD()、 SUM()、 MAX()、 MIN()和 GROUP_CONCAT())。
-
支持标准 SQLLEFT OUTER JOIN和 RIGHT OUTER JOINODBC 语法。
-
根据标准 SQL 的要求,支持表和列的别名。
-
支持DELETE、 INSERT、 REPLACE和 UPDATE返回已更改(受影响)的行数,或者通过在连接到服务器时设置标志来返回匹配的行数。
-
支持特定于 MySQL 的SHOW 语句,用于检索有关数据库、存储引擎、表和索引的信息。支持 INFORMATION_SCHEMA数据库,按照标准SQL实现。
-
EXPLAIN显示优化器如何解析查询的语句 。
-
函数名称独立于表或列名称。例如,ABS是有效的列名称。唯一的限制是,对于函数调用,函数名称与其后面的“ (”之间不允许有空格 。请参见 第 11.3 节“关键字和保留字”。
-
您可以在同一条语句中引用不同数据库中的表。
安全
-
权限和密码系统非常灵活和安全,并且支持基于主机的验证。
-
通过在连接到服务器时对所有密码流量进行加密来确保密码安全。
可扩展性和限制
-
支持大型数据库。我们使用 MySQL Server 和包含 5000 万条记录的数据库。我们还知道使用 MySQL Server 的用户有 200,000 个表和大约 5,000,000,000 行。
-
每个表最多支持 64 个索引。每个索引可以由 1 到 16 列或部分列组成。表的最大索引宽度InnoDB为 767 字节或 3072 字节。请参见第 17.22 节“InnoDB 限制”。表的最大索引宽度 MyISAM为 1000 字节。请参见 第 18.2 节“MyISAM 存储引擎”。索引可以使用CHAR、 VARCHAR、 BLOB或 TEXT列类型的列前缀。
连接性
-
客户端可以使用多种协议连接到 MySQL 服务器:
-
客户端可以在任何平台上使用 TCP/IP 套接字进行连接。
-
在 Windows 系统上,如果服务器在 named_pipe启用系统变量的情况下启动,则客户端可以使用命名管道进行连接。如果在启用系统变量的情况下启动,Windows 服务器还支持共享内存连接 shared_memory。客户端可以使用该选项通过共享内存进行连接 --protocol=memory。
-
在 Unix 系统上,客户端可以使用 Unix 域套接字文件进行连接。
-
MySQL 客户端程序可以用多种语言编写。用 C 编写的客户端库可用于用 C 或 C++ 编写的客户端,或者任何提供 C 绑定的语言。
-
提供 C、C++、Eiffel、Java、Perl、PHP、Python、Ruby 和 Tcl 的 API,使 MySQL 客户端能够用多种语言编写。请参阅第 31 章,连接器和 API。
-
Connector/ODBC (MyODBC) 接口为使用 ODBC(开放数据库连接)连接的客户端程序提供 MySQL 支持。例如,您可以使用 MS Access 连接到 MySQL 服务器。客户端可以在 Windows 或 Unix 上运行。连接器/ODBC 源可用。支持所有 ODBC 2.5 函数以及许多其他函数。请参阅 MySQL 连接器/ODBC 开发人员指南。
-
Connector/J 接口为使用 JDBC 连接的 Java 客户端程序提供 MySQL 支持。客户端可以在 Windows 或 Unix 上运行。连接器/J 源可用。请参阅 MySQL Connector/J 开发人员指南。
-
MySQL Connector/NET 使开发人员能够轻松创建需要与 MySQL 进行安全、高性能数据连接的 .NET 应用程序。它实现所需的 ADO.NET 接口并集成到 ADO.NET 感知工具中。开发人员可以使用他们选择的 .NET 语言构建应用程序。 MySQL Connector/NET 是一个完全托管的 ADO.NET 驱动程序,用 100% 纯 C# 编写。请参阅 MySQL 连接器/NET 开发人员指南。
本土化
-
服务器可以用多种语言向客户端提供错误消息。请参见第 12.12 节“设置错误消息语言”。
-
完全支持多种不同的字符集,包括 ( cp1252 latin1)、、、、german多种 Unicode 字符集等。例如,表名和列名中允许使用 斯堪的纳维亚字符“ ”、 “ ”和 “ ” 。big5ujisåäö
-
所有数据都保存在所选字符集中。
-
排序和比较是根据默认的字符集和校对规则进行的。当 MySQL 服务器启动时可以更改此设置(请参见 第 12.3.2 节“服务器字符集和排序规则”)。要查看非常高级的排序示例,请查看捷克语排序代码。 MySQL Server 支持许多不同的字符集,可以在编译时和运行时指定。
-
服务器时区可以动态更改,各个客户端可以指定自己的时区。请参见 第 7.1.15 节,“MySQL 服务器时区支持”。
客户端和工具
-
MySQL 包括多个客户端和实用程序。其中包括命令行程序(例如 mysqldump和 mysqladmin),以及图形程序(例如 MySQL Workbench)。
-
MySQL Server 内置支持 SQL 语句来检查、优化和修复表。这些语句可通过mysqlcheck客户端从命令行获得 。 MySQL 还包括 myisamchk,这是一个非常快速的命令行实用程序,用于在MyISAM 表上执行这些操作。请参阅第 6 章,MySQL 程序。
-
可以使用--help 或-?选项调用 MySQL 程序以获得在线帮助。
1.2.3 MySQL历史
我们一开始的目的是使用 mSQL数据库系统通过我们自己的快速低级 (ISAM) 例程连接到我们的表。然而,经过一些测试后,我们得出的结论是,它mSQL 不够快或不够灵活,无法满足我们的需求。这为我们的数据库带来了一个新的 SQL 接口,但 API 接口与mSQL.此 API 旨在使为使用而编写的第三方代码 mSQL能够轻松移植以与 MySQL 一起使用。
MySQL 以联合创始人 Monty Widenius 的女儿 My 命名。
MySQL Dolphin(我们的徽标)的名称是“ Sakila ” ,它是从我们的“命名海豚”竞赛 中用户建议的大量名称列表中选出的。获奖名称由来自非洲埃斯瓦蒂尼(前斯威士兰)的开源软件开发人员 Ambrose Twebaze 提交。据安布罗斯介绍,女性名字 Sakila 的根源在于斯威士兰当地语言 SiSwati。萨基拉也是坦桑尼亚阿鲁沙的一个小镇的名字,靠近安布罗斯的原籍国乌干达。
1.3 MySQL 8.0的新增功能
博主PS:MySQL的新增功能大概有70多项这里我另外起一个博客
【MySQL精通之路】MySQL8.0新增功能-CSDN博客
1.4 MySQL 8.0中添加、弃用或删除的服务器和状态变量及选项
本节列出了MySQL 8.0中首次添加、已弃用或已删除的服务器变量、状态变量和选项。
【MySQL精通之路】MySQL 8.0中添加、弃用或删除的服务器和状态变量及选项-CSDN博客
1.5 如何报告Bug或问题
【MySQL精通之路】如何报告Bug或问题-CSDN博客
1.6 MySQL符合的标准
-
-
-
-
-
-
-
-
-
-
-