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

28次阅读

共计 3032 个字符,预计需要花费 8 分钟才能阅读完成。

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 的要求支持表和列上的别名。

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。


上一篇:语法约定

正文完
 0