数据库的作用是管理数据,那到底怎样才算管理?可以这样理解,如果是货物我们需要有台账,记录物品的情况,然后根据记录对货物进行核对和进出处理等工作。对数据的管理呢,可以看作是对台账的管理,包括创建(制作)、修改、查询,只不过从纸质文件迁移到电子化工具中也就是数据库系统中。每份台账可以看作一个库,多页组成的表就是数据库中的表,其中需要填写的明细账目对应的列就是字段。

在这里简单介绍一下常用软件的安装和运行基本情况,通常我们说的软件都是安装在操作系统之上,每个系统的运行都有其规则(通常涉及一些配置文件以及程序本身),这些规则会说明程序从哪里开始运行,什么样的环境条件(比如需要多少空间环境,需要将数据存到哪里,程序本身存到哪里等,如果考虑系统调优什么的这些会用得比较多)。相信有了这种认识,以后如果有涉及配置文件,性能调优,数据文件等可能就不会陌生也更好理解了。

对于数据库管理系统,我们先认识一下它基础的使用方面,关于权限管理,优化调度等暂时先用默认的设置就好。以下都用mysql进行演示说明(为什么是mysql?它是结构型数据库的代表,1.开源2.轻量3.使用广泛具有代表性,操作简便,如果遇到问题能检索找到相应的解决方案。为什么是结构化的数据库开始?1.结构化更符合规范化的认知,2.对各种范式友好3.如果想做好数据,基本的结构化是规范化的前提,更有助于以后的使用)。
数据库系统(以下简称数据库)中存在库、表、列(字段)、数据类型、数据长度、精度等概念,同时由于我们用汉字,不同于英文,所以对于汉字的存储会有字符集涉及,当前通用utf-8,如今多了表情包,都会选用utf8mb4,关于字符集这里就不展开介绍了,以后有机会再细说,或者感兴趣自己去学习一下。
先真正的安装,并看一下安装成功后的数据库的样子。因为数据库自带的操作工具不友好,这里用navicat(这个工具需要预先安装)进行查看。数据库本身会自带一些功能库(如:information_schema,performance_schema,mysql,sys),这些库我们通常可以查,最好就不要修改了。简单介绍一下(也是我的认知范围内的),information_schema是信息记录表,记录着整个数据库中的表信息,其中有两张表后期可能会常用到,一个是TABLES表,一个是COUMNS表,如果自己新建了库表可以在这里查看到它的说明信息;mysql是数据库系统中自带的一些文件表,关系到数库系统这个软件的一些操作等包括help,各种运算符和规则等;performance_schema主要是一些调度或存储过程,触发器等的配置;sys是数据库整个系统使用的一些配置。下图是安装后的一个截图。供参考:

库文件都是一些数据文件,存储在磁盘中,数据库系统中还有一个重要的东西,叫作引擎,是系统的核心,如SQL语句的解析,执行,各种索引资源调度计算等,此处不多介绍,先知道有这个东西,以后涉及到了再进行深入学习,它是进行数据库系统运算处理的基础。通常情况下用innodb,常规情况下默认也是它。
关于库、表、列相当于是管理树层级的一种方式,范围从大到小。而数据类型、长度、精度是从单个字段值的角度进行的设计。先从我们最好理解的表开始,如下图所示excel表格为例:

多个字段可以组合在一起构成一张表,多张表为了一个项目或者任务业务服务可以组合一个库。了解了这些对后续数据库使用有很大帮助,涉及建库、建表,字段设计等,以及范式要求和数据结构化等。
在结构化数据中,一行表示一条完整数据,每列就是一个字段。每个字段会有自己对应的数据类型(此处做简要说明),比如整数(1、2、3),浮点数(1.3、45.897,会涉及精度,比如两位、五位就是小数点后的位置),字符串(‘三年级’,此处会涉及长度,也就是字符数量限制),日期(‘2023-10-23’日期在mysql中用这样的字符表示),时间(‘15:30:00’)等。每一列的类型必须相同,或者在定义表的时候可以为空(null)。了解数据类型,对于后面ddl语句如建表和后期的数据处理使用等方面都很重要,常见的类型必须都会。因为这些真正会涉及到细节使用的部分了,如清洗数据。
数据库中表字段情况(示例):

暂时想到的基本认识的就这么多信息,下一篇准备唠唠SQL中的ddl如果时间合适就一起带上dml。欢迎探讨评论指正。