[TOC]
>[success] ## MySQL 是什么
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。
:-: ![](https://img.kancloud.cn/82/cb/82cbcd0383f52fe94f0bbecabf64195f_300x157.png)
目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,使得很多公司都采用 MySQL 数据库以降低成本。
MySQL 数据库可以称得上是目前运行速度最快的 SQL 语言数据库之一。除了具有许多其他数据库所不具备的功能外,MySQL 数据库还是一种完全免费的产品,用户可以直接通过网络下载 MySQL 数据库,而不必支付任何费用。
>[success] ## MySQL 特点
下面总结了一下 MySQL 具备的特点。
<br>
<br>
>[info] ### 1) 功能强大
MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。
<br>
<br>
>[info] ### 2) 支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
<br>
<br>
>[info] ### 3) 运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
<br>
<br>
>[info] ### 4) 安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
<br>
<br>
>[info] ### 5) 成本低
MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
<br>
<br>
<br>
>[info] ### 6) 支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
<br>
<br>
<br>
>[info] ### 7) 数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
<br>
<br>
<br>
>[info] ### 8) 支持强大的内置函数
很多编程语言中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。
<br>
<br>
>[success] ## 数据库的应用
数据库是计算机应用系统中的一种专门管理数据资源的系统。数据有多种形式,如文字、数码、符号、图形、图像及声音等,数据是所有计算机系统所要处理的对象。我们所熟知的一种处理办法是制作文件,即将处理过程编成程序文件,将所涉及的数据按程序要求组成数据文件,再用程序来调用,数据文件与程序文件保持着一定的关系。
在计算机应用迅速发展的情况下,这种文件式管理方法便显出它的不足。比如,它使得数据通用性差、不便于移植、在不同文件中存储大量重复信息、浪费存储空间、更新不便等。
而数据库系统便能解决上述问题。数据库系统不从具体的应用程序出发,而是立足于数据本身的管理,它将所有数据保存在数据库中,进行科学的组织,并借助于数据库管理系统,以它为中介,与各种应用程序或应用系统接口,使之能方便地使用数据库中的数据。
其实简单地说,数据库就是一组经过计算机整理后的数据,存储在一个或多个文件中,而管理这个数据库的软件就称为数据库管理系统。一般一个数据库系统(Database System)
可以分为数据库(Database)与数据管理系统(Database Management System,DBMS)两个部分。主流的数据库软件有 Oracle、Informix、Sybase、SQL Server、PostgreSQL、MySQL、Access、FoxPro 和 Teradata 等等。
<br>
<br>
<br>
>[success] ## RDBMS 术语
在继续讨论 MySQL 数据库系统之前,先让我们来说明一些关于数据库的术语定义:
* **数据库**(Database):数据库是带有相关数据的表的集合。
* **表**(Table):表是带有数据的矩阵。数据库中的表就像一种简单的电子表格。
* **列**(Column):每一列(数据元素)都包含着同种类型的数据,比如邮编。
* **行**(Row):行(又被称为元组、项或记录)是一组相关数据,比如有关订阅量的数据。
* **冗余**(Redundancy):存储两次数据,以便使系统更快速。
* **主键**(Primary Key):主键是唯一的。同一张表中不允许出现同样两个键值。一个键值只对应着一行。
* **外键**(Foreign Key):用于连接两张表。
* **复合键**(Compound Key):复合键(又称组合键)是一种由多列组成的键,因为一列并不足以确定唯一性。
* **索引**(Index):它在数据库中的作用就像书后的索引一样。
* **引用完整性**(Referential Integrity):用来确保外键一直指向已存在的一行。