数据库
什么是数据库
百度百科定义的数据库概念:
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
总结下来数据库其实就是一个软件或者说一类软件,这类软件的功能就是来管理数据的。
那数据库管理的数据,这些数据放在哪里?
答案是保存在硬盘上。为什么?
那首先我们来认识一下一台基本计算机的基本组成
如上图就是我们平常一台计算机的基本组成,也就是冯诺依曼体系结构。我们平常上的数据都保存在存储器中。
所以我们主要来认识一下内存和外存的区别:
内存:存储空间较小、读取速度快、断电后数据不保存、成本较高
外存:存储空间大、读取速度慢、断电后数据保存 、成本低
由以上内存和外存的优缺点我们大概就能知道为什么数据库中的数据保存在硬盘上了。
1. 便宜!!!
2.断电后数据还能保存,能达到持久化存储的功能。
数据库的分类
数据库大体可以分为 关系型数据库 和 非关系型数据库
关系型数据库(RDBMS):
是指采用了关系模型来组织数据的数据库。 简单来说,关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
基于标准的SQL,只是内部一些实现有区别。常用的关系型数据库如:
1. Oracle:甲骨文产品,适合大型项目,适用于做复杂的业务逻辑,如ERP、OA等企业信息系统。收费。
2. MySQL:属于甲骨文,不适合做复杂的业务。开源免费。
3. SQL Server:微软的产品,安装部署在windows server上,适用于中大型项目。收费。
非关系型数据库:
(了解)不规定基于SQL实现。现在更多是指NoSQL数据库,如:
1. 基于键值对(Key-Value):如 memcached、redis
2. 基于文档型:如 mongodb
3. 基于列族:如 hbase
4. 基于图型:如 neo4j
我们现在学习的就是MySQL
原因:免费,而且数据库软件都是差不多的,一通百通,会了一个其他的也就很容易上手。
MySQL服务器
当我们安装好了MySQL后就可以通过MySQL这个软件进行数据的管理了
安装版本使用5.7.x的版本,我们这里使用5.7.27。
首先我们需要知道 MySQL服务器其实是一种 客户端 服务器结构的软件。
首先认识一下几个概念:
客户端:主动发起请求的一方
服务器:被动接受请求的一方
请求:客户端给服务器发送的请求
响应:服务器给客户端返回的数据
我们自己下载的MySQL是客户端和服务器在一个主机上
当客户端和服务器不在一个主机上的是这种情况
更复杂的情况是这种,多个客户端对应一个服务器。这种也是公司里最通常的情况
从以上得知MySQL服务器才是数据库的本体。保存和管理数据都是在服务器端进行操作的。
MySQL管理数据的方式
因为MySQL是关系型数据库。所以里面都是以类似excel表的形式来存储的。
MySQL服务器里面管理着多个数据库,每个数据库里又存放着多个数据表。
结构如下图:
总结:
- 一个数据库中,可以有多个数据表
- 每个数据表中又很多行,每一行称为是一条记录
- 每一行又有很多列,每一列称为是一条记录
SQL分类
什么是SQL
结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
总结:也是一种语言,跟java语言、C语言类似。但是SQL语言是用来对数据库进行操作的一种语言。
- DDL数据定义语言,用来维护存储数据的结构
代表指令: create, drop, alter
- DML数据操纵语言,用来对数据进行操作
代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
- DCL数据控制语言,主要负责权限管理和事务
代表指令: grant,revoke,commit
以上SQL我们主要会在后面学习DDL和DML的操作。