什么是MySQL| 什么是数据库 | 数据库详解
mysql是什么
MySQL 是一款安全、跨平台、高效的,并与 PHP、Java 等主流编程语言紧密结合的数据库系统。该数据库系统是由瑞典的 MySQL AB 公司开发、发布并支持,由 MySQL 的初始开发人员 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符号是一只名为 Sakila 的海豚,代表着 MySQL 数据库的速度、能力、精确和优秀本质。
为什么要使用数据库?
我们之前存储数据的格式:
我们在存储数据都经历的那些阶段:
# 1.文件操作阶段(用文件充当数据库 with open(python))
jason|123|read
jason&123&read
jason*123*read
'''这个阶段每个人在存储数据的时候格式都不同 程序之间无法兼容'''
# 2、软件开发目录规范
db目录下 : 数据存储文件
'''虽然存储的目录规范了,但是每个人存储的数据格式还都不相同 程序之间也无法兼容'''
# 3、数据库阶段
'''规定了文件的存储位置和数据格式,这样就解决了数据无法兼容的问题。解决了各方面的问题。'''
使用数据库的目的:
使用数据库的目的就是为了解决数据不兼容的问题,基于网络使数据在某一个地方以相同的格式统一做一个保存,实现数据共享
举例比喻
# 各自保存各自的数据,彼此不共享
单机游戏: 不需要连接网络就可以玩,在本机储存数据,你的通关记录,账号密码,都存储在本机
优点:不需要链接网络
缺点:限制于在一台计算机玩,如果你计算机坏掉了,在换一台,那这些记录都没有。你注册的账号换一台电脑登录也是没有记录的,还是初始化状态。(其实单机好像不需要注册账号)
# 数据存储全部统一在一个地方完成
联机游戏:不在本地保存数据。所有人基于网络把自己的数据存储到相同的位置,数据存储的格式都相同,访问的格式也相同,所以不管在那台计算机上,登录账号密码就可以访问到我们存储在数据库的信息,这样就实现了兼容问题。
集群的概念
我们想一个问题:上图有没有什么问题?
如果数据库崩了怎么办,服务器着火了,地震了, 机房废了。那这样是不是所有用户的数据都会流失,那这样如果一个游戏玩家辛辛苦苦打了一辈子的江山,结婚了准备卖点小钱,谁知道上线还要做新手任务,那岂不是很不合理。。。。
# 所以有一个集群的概念:多台计算机从事相同的工作.(所以在数据存储时会有多太计算机备份存储,如果一台服务器出现问题,可直接使用另一台服务器。)
数据库其实就是一个可以帮助用户合理的管理数据。帮助用户保存数据,查询数据的一个程序(一个仓库)
MySQL的特点
下面总结了一下 MySQL 具备的特点。
1) 功能强大
MySQL 中提供了多种数据库存储引擎,各引擎各有所长,适用于不同的应用场合,用户可以选择最合适的引擎以得到最高性能,可以处理每天访问量超过数亿的高强度的搜索 Web 站点。MySQL5 支持事务、视图、存储过程、触发器等。
2) 支持跨平台
MySQL 支持至少 20 种以上的开发平台,包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。这使得在任何平台下编写的程序都可以进行移植,而不需要对程序做任何的修改。
3) 运行速度快
高速是 MySQL 的显著特性。在 MySQL 中,使用了极快的 B 树磁盘表(MyISAM)和索引压缩;通过使用优化的单扫描多连接,能够极快地实现连接;SQL 函数使用高度优化的类库实现,运行速度极快。
4) 支持面向对象
PHP 支持混合编程方式。编程方式可分为纯粹面向对象、纯粹面向过程、面句对象与面向过程混合 3 种方式。
5) 安全性高
灵活和安全的权限与密码系统,允许基本主机的验证。连接到服务器时,所有的密码传输均采用加密形式,从而保证了密码的安全。
6) 成本低
MySQL 数据库是一种完全免费的产品,用户可以直接通过网络下载。
7) 支持各种开发语言
MySQL 为各种流行的程序设计语言提供支持,为它们提供了很多的 API 函数,包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 语言等。
8) 数据库存储容量大
MySQL 数据库的最大有效表尺寸通常是由操作系统对文件大小的限制决定的,而不是由 MySQL 内部限制决定的。InnoDB 存储引擎将 InnoDB 表保存在一个表空间内,该表空间可由数个文件创建,表空间的最大容量为 64TB,可以轻松处理拥有上千万条记录的大型数据库。
9) 支持强大的内置函数
PHP 中提供了大量内置函数,几乎涵盖了 Web 应用开发中的所有功能。它内置了数据库连接、文件上传等功能,MySQL 支持大量的扩展库,如 MySQLi 等,可以为快速开发 Web 应用提供便利。
SQL语句的由来:
# 什么是SQL语句?
就是操作数据库软件的命令。
# 为什么要SQL语句
是因为数据库能够支持的语言非常的多 为了避免识别问题
发明了SQL语句 规定只要想使用数据库就统一使用SQL语句操作
解决不同语言操作数据库产生语言不兼容的情况,实现数据兼容问题。
数据库的本质
数据库本质其实就是一款C/S架构的软件
所以我们所以人都可以写一款自己的数据库软件,
只不过我们写的功能不行,没人用呀。。 所以市面上确实有很多公认的数据库的软件
数据库分类(软件介绍):
关系型数据库
# 具有固定的表结构 ,并且表与表之间可以通过外键建立关系。
关系型数据库,是指采用了关系模型来组织数据的数据库。简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
可以看作为excel表格的形式 :有固定的几个字段,下面是数据
# 缺点:性能没有非关系性数据库好 优点:数据统计有严谨性
关系型数据库有哪些:
1、MySQL
MariaDB :和MySQL是同一个作者开发几乎一致(并且有自己的特性),但是开源免费
Oracle :大多数银行使用
PostgreSQL :支持二次开发
sqlserver
sqlite : django框架自带该数据库
db2 .....
非关系型数据库
# 没有固定的表结构,数据存储采用k:v键值对的形式 {k:v} 非结构化的存储。
非关系型数据库有哪些
常用的非关系型数据库:
1、redis :目前最火的缓存数据库 具有很多数据结构,功能强大(大部分公司使用)
2、mongoDB :文档型数据库,适用于敏捷开发(应用在爬虫和大数据领域)
3、memcache :几乎已经被redis淘汰。
这么多数据库虽然名字不一样,但是作者在编写的时候都秉持一个原则,在操作数据的方式方法几乎是差不多的。这样对用户是非常有好的,用户在使用时上手也比较快,这样用户量也会大大增大的。
补充:我们通常将操作关系型的数据库的语句称为SQL语句
通常将操作非关系型的数据库语句称为NoSQL语句、有时候甚至使用NoSQL指代非关系型数据库
数据库可以代之的为:
1、程序
2、数据库管理软件
3、存放数据的某个'文件夹'