MySQL数据库简介
1、数据库基本概念
1.1 数据库简介
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。所谓“数据库”是以一定方式储存在一起、能予多个用户共享、与应用程序彼此独立的数据集合;一个数据库由多个表空间(Tablespace)构成。
1.2 数据结构模型
数据库类型的区分主要参照的是数据结构模型,而常用的数据结构模型有很多:
- 层次模型
- 网状模型
- 关系模型
- 面向对象模型
- 半结构化模型
1.3 关系型数据库
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列(也就是表格)的形式存储数据,,一组表组成了数据库。通俗来讲这种数据库就是由多张表组成,并且这些表之间存在一定的关系。
关系型数据库的优点:
- 数据以表格的形式存储容易理解
- 支持SQL语言使用方便
- 易于维护
- 事务的一致性。
关系型数据库的缺点:
- 为了维护一致性所付出的巨大代价就是其读写性能比较差;
- 高并发读写效率较低;
- 海量数据的读写效率低;
- 固定的表结构。
关系型数据库举例:MySQL、Oracle、DB2、Microsoft SQL Server、SQLite等。
除了关系型数据库之外的数据库我们统称为:非关系型数据库(NoSQL)
2. 数据库管理系统
数据库管理系统(Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。简单一句话,数据库管理系统是为了我们更方便的使用数据库而诞生的。
管理关系型数据库的系统叫做:关系型数据库管理系统(Relational Database Management System,简称RDBMS)。
MySQL使用关系型数据库管理系统管理数据库。
2.1 RDBMS术语
在我们开始学习MySQL 数据库前,让我们先了解下RDBMS的一些术语:
术语 | 解释 |
---|---|
SQL | Structure Query Language,结构化查询语言 |
数据库 | 数据库是一些关联表的集合。. |
数据表 | 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。 |
列 | 一列(数据元素) 包含了相同的数据, 例如邮政编码的数据。 |
行 | 一行(元组,或记录)是一组相关的数据,例如一条用户订阅的数据。 |
冗余 | 存储两倍数据,冗余可以使系统速度更快。 |
主键 | 主键是唯一的;一个数据表中只能包含一个主键。主键约束的列的值必须是非空 + 唯一的。 |
唯一键约束 | 一个或多个字段的组合,填入的数据必须能在本表中唯一标识本行;允许为空(NULL) |
外键 | 外键用于关联两个表,链接两张表的对应关系。 |
索引 | 使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。 |
3、SQL语句
SQL语句有多种类型:
-
数据查询语言(DQL)
数据查询语言(Data Query Language, DQL)是SQL语言中,负责进行数据查询而不会对数据本身进行修改的语句,这是最基本的SQL语句。SELECT是DQL(也是所有SQL)用得最多的动词,其他DQL常用的保留字有FROM,WHERE,GROUP BY,HAVING和ORDER BY。这些DQL保留字常与其他类型的SQL语句一起使用。 -
数据定义语言(DDL)
数据定义语言 (Data Definition Language, DDL) 是SQL语言集中,负责数据结构定义与数据库对象定义的语言,由CREATE、ALTER与DROP三个语法所组成。 -
数据操纵语言(DML)
数据操纵语言(Data Manipulation Language, DML)是SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。 -
数据控制语言(DCL)
数据控制语言 (Data Control Language) 在SQL语言中,是一种可对数据访问权进行控制的指令,它可以控制特定用户账户对数据表、查看表、预存程序、用户自定义函数等数据库对象的控制权。由GRANT和REVOKE两个指令组成。DCL以控制用户的访问权限为主,GRANT为授权语句,对应的REVOKE是撤销授权语句。 -
指针控制语言(CCL)
它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作。 -
事务处理语言(TPL)
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN TRANSACTION,COMMIT和ROLLBACK。
4、MySQL简介
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。
4.1 MySQL特点
-
Mysql是开源的,所以你不需要支付额外的费用
-
MySQL使用标准的SQL数据语言
-
Mysql是可以定制的,采用了GPL协议,你可以修改源码来开发自己的Mysql系统
-
功能强大
MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。 -
支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。 -
运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。 -
支持面向对象
PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。 -
安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。 -
成本低
MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。 -
支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。 -
数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。 -
支持强大的内置函数
PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。