0 前言
本文讲解数据库的最基本概念
推荐书籍:《MySQL 必知必会》
需要的软件:MySQL 8.0
1 数据库相关概念及其实战应用
1.1 数据(Data)
在人类世界中,数据可以是
- 数值型数据
- 十进制数
- 非数值型数据
- 图片
- 声音
- 视频
- 文字
- ……
在计算机世界中,数据是二进制数。
将人类世界的信息,映射到计算机世界,将人类世界信息转换成二进制数,并且存储到计算机的过程,就叫数据的存储。
例如,你写一个博客,保存起来,这就是存储数据。
1.2 数据库(Database DB)
1.2.1 概念
数据的存储,需要使用容器,就好比水的存储,需要使用水桶一样,装数据的容器,就是数据库。
在人类世界,装数据的容器,可以是文件柜
数据,就是文件,并且,通常情况下,文件是放在文件夹里的。
这里就引出了几个数据库学科中的重要概念
- 数据库 —— 文件柜
- 表 —— 文件柜里的文件夹
- 数据 —— 文件夹里的资料
这样,我想你能够明白,这几个概念之间的关系了。
值得注意的一点是,他们之间的关系,数据库与数据库,数据库中的表和表,表中的数据和数据,他们之间,都存在各种结构,也就是所谓的数据结构,这一点还是很重要的,但是现在先不谈这个事情。
1.2.2 实战
我们来用MySQL的命令,演示一下。
1.2.2.1 显示数据库
显示数据库:show databases;
它在资源管理器中,就是文件夹,我们来看一下
我展示出了路径,你可以自己找一下,默认C盘,可以看出,数据库名称与文件夹名称之间是对应的。
1.2.2.2 创建数据库
创建数据库:create database <数据库名称>;
我们将数据库的名字命名为FileCabinet
(文件柜)好了。
我们再查看一下数据库
你可以看见文件夹也有了这个
不过,不知道有没有注意到,为什么是小写了?
原因在于:MySQL在windows下,不区分大小写,但是在Linux下区分大小写,所以,为了能够更容易匹配,就全部转换为小写。
1.2.2.3 使用数据库
使用数据库:use <数据库名称>;
这样,你就能够使用这个数据库了,比如可以在里面创建表,再创建文件,等等。
1.2.2.4 显示当前数据库中的表
指令:show tables;
结果显示,这个数据库中,没有表,是空的,这也就是说,文件柜是新生产的,里面啥都没有。
1.2.2.5 在数据库中创建表
语法:create table <表的名字> (表的定义);
这里设计到SQL语言的数据类型,先不用管,只需要知道
- 我们在数据库
filecabinet
中创建了一个表,名字叫student_file
- 表的定义部分,也就是()中的,带表:这个表中的数据,可以具备两个属性,一个是字符类型的name,一个是数字类型的age
1.2.2.6 查看刚刚创建的表
命令:show tables;
我们可以看见,在这个数据库中,我们拥有了一个名字为student_file的表。我们还可以按照上一小节的内容,在该数据库中,创建更多的表。
我们进入资源管理器中,看一下我们创建的表。
在文件夹filecabinet中,创建了一个ibd类型的文件,这也就是我们创建的表对应的文件。
1.2.2.7 表的定义是什么意思?
刚刚我们提到了表的定义,和表的两个属性,name和age,那么,他们到底是什么意思?
举一个例子你就明白了,你在学习工作中,是不是总要填表格?
我们现在创建一个Excel表格,将其命名为student_file。
然后,在表格内,写上一些内容
并明确要求,name一栏,要写字符型数据,age一栏,要写数字,之后让同学们填写。
这样一来
- 张三、李四和王五,写在了name一栏,并且是char类型的数据
- 18、19和20,写在了age一栏,并且是int类型的数据
这也就是说,我们的表student_file
,具备两个属性char类型的name
和int类型的age
,并且可以在里面填写符合标准的信息。
这也就是所谓表定义的意义,它指明了整个表能够填入什么样的数据。
1.2.2.8 其他
后续还有表内数据的填写等等,以后再说。
1.2.3 小结
我们来总结一下本小节的重要内容:数据管理系统、数据库、表和数据,理清他们之间的逻辑关系。
对于一片计算机存储空间,可以创建多个数据库,创建的数据库需要有<名称>,在资源管理器中,表现为创建了多个文件夹。
对于每一个数据库,内部都可以创建多个表,创建的表需要有<名称>和(属性),在资源管理器中,体现为在数据库文件夹内,创建多个文件。
对于每一个表,表内包含了符合其属性的数据,在资源管理器表现为,表对应的文件中的内容。
而DBMS,就是能够方便管理数据库、表、数据的软件。
补充:与计算机组成原理联系,可以将DBMS看成CPU的控制器,掌控着各个器件的运行方式。
1.3 数据库管理系统(Database Management System DBMS)
DBMS,就是方便人类操作数据库的软件,比如MySQL,SQL Server等等,都是数据库管理系统,都是软件,上一小节我们使用的各种指令,就是在MySQL软件上进行的。
还有一个概念:数据库管理员(Database Administrator DBA)
DBA,就是管理数据库管理系统的人,你可以理解为,图书馆管理员,他需要管理整个图书馆的各个书柜,书柜也就是数据库。
1.4 数据库系统(Database System DBS)
重点不是数据库管理系统,而是系统,我们知道很多系统,比如计算机系统,选课系统……谈及系统,必须要谈及其所在的层次,他代表其所在层次领域的全部生态。
例如数据库系统,他就包含
- 数据库管理系统
- 数据库管理员
- 数据库
- 数据
- 用户
等等,整个数据库学科生态的全部内容,及其结构关系,甚至还有包含其与外界的联系,系统是个很复杂的事情,你这样简单理解就可以了。