资讯专栏INFORMATION COLUMN

MySQL™ 参考手册(MySQL数据库管理系统概述)

ZweiZhao / 2632人阅读

MySQL数据库管理系统概述

MySQL是最受欢迎的开源SQL数据库管理系统,由Oracle Corporation开发、分发和支持。

什么是MySQL?

MySQL网站(http://www.mysql.com/)提供有关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通用公共许可证)http://www.fsf.org/licenses/来定义在不同情况下你可以和不可以使用该软件的内容,如果你对GPL感到不舒服或需要将MySQL代码嵌入到商业应用程序中,你可以从oracle购买商业许可版本,有关更多信息,请参阅MySQL许可概述(http://www.mysql.com/company/...)。

MySQL数据库服务器非常快速、可靠、可伸缩且易于使用

如果这正是你正在寻找的,那么你应该尝试一下。MySQL Server可以在台式机或笔记本电脑上轻松运行,与其他应用程序、Web服务器等一起运行,几乎不需要注意什么。如果你将整台机器专用于MySQL,则可以调整设置以利用所有可用的内存、CPU功率和I/O容量,MySQL还可以扩展到联网的集群机器。

MySQL Server最初是为了比现有解决方案更快地处理大型数据库而开发的,并且已经成功地在高要求的生产环境中使用了好几年,尽管在不断的开发中,MySQL Server提供了一组丰富而有用的功能,它的连接性、速度和安全性使MySQL Server非常适合访问Internet上的数据库。

MySQL Server适用于客户端/服务器或嵌入式系统

MySQL数据库软件是一个客户端/服务器系统,由支持不同后端的多线程SQL服务器、几个不同的客户端程序和库、管理工具、和广泛的应用程序编程接口(API)组成。

还提供MySQL Server作为嵌入式多线程库,你可以将其链接到你的应用程序,以获得更小、更快、更易于管理的独立产品。

大量贡献的MySQL软件是可用的

MySQL Server有一组与用户紧密合作开发的实用功能,你最喜欢的应用程序或语言很可能支持MySQL数据库服务器。

MySQL的主要特性

本节介绍MySQL数据库软件的一些重要特性,在大多数方面,该路线图适用于所有版本的MySQL,有关在特定于系列的基础上引入MySQL的特性的信息,请参阅相应手册。

内部结构和可移植性

用C和C++编写。

经过广泛的不同编译器测试。

适用于许多不同的平台,请参阅https://www.mysql.com/support...。

为了可移植性,在MySQL 5.5及以上版本中使用CMake,以前的系列使用GNU Automake,Autoconf和Libtool。

使用Purify(商业内存泄漏检测器)以及GPL工具Valgrind(http://developer.kde.org/~sew...)进行测试。

使用具有独立模块的多层服务器设计。

设计为使用内核线程完全多线程,以便在可用时轻松使用多个CPU。

提供事务性和非事务性存储引擎。

使用具有索引压缩的非常快速的B树磁盘表(MyISAM)。

设计为使添加其他存储引擎相对容易,如果要为内部数据库提供SQL接口,这非常有用。

使用非常快速的基于线程的内存分配系统。

使用优化的内嵌循环连接执行非常快速的连接。

实现内存中的哈希表,用作临时表。

使用应尽可能快的高度优化的类库实现SQL函数,通常在查询初始化之后根本没有内存分配。

将服务器作为多带带的程序提供,用于客户端/服务器网络环境,以及作为可嵌入(链接)到独立应用程序的库,此类应用程序可以多带带使用,也可以在没有网络的环境中使用。

数据类型

许多数据类型:1、2、3、4和8字节长的有符号/无符号整数、FLOATDOUBLECHARVARCHARBINARYVARBINARYTEXTBLOBDATETIMEDATETIMETIMESTAMPYEARSETENUM和OpenGIS空间类型.

固定长度和可变长度的字符串类型。

语句和函数

查询的SELECT列表和WHERE子句中提供完整的操作符和函数支持,例如:

mysql> SELECT CONCAT(first_name, " ", last_name)
   -> FROM citizen
   -> WHERE income/dependents > 10000 AND age > 30;

完全支持SQL GROUP BYORDER BY子句,支持组函数(COUNT()AVG()STD()SUM()MAX()MIN()GROUP_CONCAT())。

使用标准SQL和ODBC语法支持LEFT OUTER JOINRIGHT OUTER JOIN

根据标准SQL的要求支持表和列上的别名。

支持DELETEINSERTREPLACEUPDATE以返回已更改(受影响)的行数,或通过在连接到服务器时设置标志来返回匹配的行数。

支持特定于MySQL的SHOW语句,用于检索有关数据库、存储引擎、表和索引的信息,支持INFORMATION_SCHEMA数据库,根据标准SQL实现。

EXPLAIN语句,用于显示优化器如何解析查询。

表名或列名中函数名的独立性。例如,ABS是有效的列名,唯一的限制是,对于函数调用,函数名和它后面的“(”之间不允许有空格。

你可以在同一语句中引用来自不同数据库的表。

安全性

特权和密码系统,非常灵活和安全,可以进行基于主机的验证。

密码安全性是通过加密连接到服务器时的所有密码通信。

可扩展性和限制

支持大型数据库,将MySQL Server与包含5000万条记录的数据库结合使用,使用MySQL服务器的用户有200,000个表和大约5,000,000,000行。

每个表最多支持64个索引,每个索引可以由1到16列或列的一部分组成,InnoDB表的最大索引宽度为767字节或3072字节,MyISAM表的最大索引宽度为1000个字节,索引可以使用CHARVARCHARBLOBTEXT列类型列的前缀。

连接性

客户端可以使用多种协议连接到MySQL Server:

客户端可以在任何平台上使用TCP/IP sockets进行连接。

在Windows系统上,如果在启用named_pipe系统变量的情况下启动服务器,则客户端可以使用命名管道进行连接。如果在启用shared_memory系统变量的情况下启动,Windows服务器也支持共享内存连接,客户端可以使用--protocol=memory选项通过共享内存进行连接。

在Unix系统上,客户端可以使用Unix域socket文件进行连接。

MySQL客户端程序可以用多种语言编写,用C编写的客户端库可用于用C或C++编写的客户端,或者用于提供C绑定的任何语言。

提供适用于C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl的API,使MySQL客户端能够以多种语言编写。

Connector/ODBC(MyODBC)接口为使用ODBC(开放式数据库连接)连接的客户端程序提供MySQL支持。例如,你可以使用MS Access连接到MySQL服务器,客户端可以在Windows或Unix上运行。Connector/ODBC源可用,与许多其他功能一样,支持所有ODBC 2.5功能。

Connector/J接口为使用JDBC连接的Java客户端程序提供MySQL支持,客户端可以在Windows或Unix上运行,Connector/J源可用。

MySQL Connector/NET使开发人员能够轻松创建需要与MySQL进行安全、高性能数据连接的.NET应用程序,它实现了所需的ADO.NET接口,并集成到ADO.NET感知工具中,开发人员可以使用他们选择的.NET语言来构建应用程序,MySQL Connector/NET是一个完全托管的ADO.NET驱动程序,用100%纯C#编写。

本地化

服务器可以以多种语言向客户端提供错误消息。

完全支持几种不同的字符集,包括latin1(cp1252)、germanbig5ujis,几个Unicode字符集等等,例如,表和列名称中允许使用斯堪的纳维亚字符“å”、“ä”和“ö”。

所有数据都保存在所选字符集中。

根据默认字符集和排序规则进行排序和比较,启动MySQL服务器时可以更改此设置,要查看非常高级排序的示例,请查看Czech排序代码,MySQL Server支持许多可在编译时和运行时指定的不同字符集。

可以动态更改服务器时区,并且各个客户端可以指定自己的时区。

客户端和工具

MySQL包括几个客户端和实用程序,这些包括命令行程序,如mysqldumpmysqladmin,以及图形程序,如MySQL Workbench

MySQL Server内置支持SQL语句来检查、优化和修复表,这些语句可以从命令行通过mysqlcheck客户端获得,MySQL还包括myisamchk,这是一个非常快速的命令行实用程序,用于在MyISAM表上执行这些操作。

可以使用--help-?选项调用MySQL程序获得在线帮助。

MySQL的历史

Oracle一开始打算使用mSQL数据库系统,使用他们快速低级(ISAM)例程连接到表,但是,经过一些测试,得出的结论是,mSQL不够快或不够灵活,无法满足需求。这导致了数据库的新SQL接口,但具有与mSQL几乎相同的API接口,此API旨在使编写用于mSQL的第三方代码可以轻松移植到MySQL。

MySQL以联合创始人Monty Widenius的女儿My命名。

MySQL Dolphin(logo)的名称是“Sakila”,它是从“海豚名人”比赛用户建议的大量名字中选出的,获奖名称由非洲斯威士兰的开源软件开发商Ambrose Twebaze提交,根据Ambrose的说法,女性化的名字Sakila源于SiSwati,Swaziland的当地语言,Sakila也是坦桑尼亚阿鲁沙一个小镇的名字,靠近Ambrose的原籍Uganda。


上一篇:语法约定

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/49276.html

相关文章

  • MySQL参考手册(目录)

    MySQL™ 参考手册 此文档分别记录了MySQL 8.0到8.0.19,以及基于NDB 8.0版到8.0.18-ndb-8.0.18的NDB Cluster版本。它可能包括尚未发布的MySQL版本功能的文档,有关已发布的版本的信息,请参阅MySQL 8.0发行说明。 MySQL 8.0的特性。本手册描述的特性没有包含在每个MySQL 8.0版本中,此类特性可能不包含在许可给你的MySQL 8.0...

    habren 评论0 收藏0
  • MySQL参考手册MySQL程序概述

    MySQL程序概述 MySQL安装中有许多不同的程序,本节将对它们进行简要概述,除了NDB集群程序之外,后面的部分提供了每个程序的更详细描述,每个程序的描述都指示其调用语法及其支持的选项。 大多数MySQL发行版都包含所有这些程序,除了那些特定于平台的程序(例如,服务器启动脚本不用于Windows)。RPM发行版更加专门化,一个RPM用于服务器,另一个RPM用于客户机程序,等等。可能你的发行版不包...

    ctriptech 评论0 收藏0
  • MySQL参考手册(优化概述

    优化概述 数据库性能取决于数据库级别的几个因素,比如表、查询和配置设置,这些软件构造导致了硬件级别的CPU和I/O操作,你必须将其最小化并尽可能提高效率。在研究数据库性能时,首先要学习软件方面的高级规则和指导原则,并使用壁钟时间测量性能。 典型用户的目标是从现有的软件和硬件配置中获得最佳的数据库性能,高级用户寻找机会来改进MySQL软件本身,或者开发自己的存储引擎和硬件设备来扩展MySQL生态系统...

    Chao 评论0 收藏0
  • MySQL参考手册(语法约定)

    语法约定 当显示要在特定程序内执行的命令时,命令前面显示的提示符指示要使用哪种命令。例如,shell>表示从你登录的shell执行的命令,root-shell>类似,但应该以root身份执行,mysql>表示从mysql客户端程序执行的语句: shell> type a shell command here root-shell> type a shell command as root here...

    XBaron 评论0 收藏0
  • MySQL参考手册(使用MySQL程序)

    使用MySQL程序 本节描述如何使用MySQL程序。 调用MySQL程序 要从命令行(即从你的shell或命令提示符)调用MySQL程序,请输入程序名称,后跟需要的任何选项或其他参数,以指导程序执行所需的操作。下面的命令显示了一些示例程序调用,shell>表示命令解释器的提示符,这不是你输入的一部分,你看到的特定提示符取决于你的命令解释器,用于sh、ksh或bash典型的提示符是$,用于csh或t...

    Awbeci 评论0 收藏0

发表评论

0条评论

阅读需要支付1元查看
<