初识mysql
数据库是什么
mysql数据库是一种基于网络的服务,它基于client,server模式为用户提供数据存储和组织的服务。
在我们下载了数据库后,在linux下,存在mysql(客户端)和mysqld(服务端),用户在客户端中,输入各种指令,这些指令被送到mysqld服务端服务器中,帮我们对数据库进行操作。
mysql是典型的网络数据库,当然还有非网络数据库如redis
数据库的架构
数据库大概可以分为4层
1).connection pool :该层的主要作用是连接处理,身份验证,安全性等等。
2).核心服务层:在SQL处理数据处理服务前,所有的工作都要在该层完成,包括权限判断, sql解析等等。
3).存储引擎层:该层才是真正开始对数据进行处理的层次,可以完成如数据的存取操作,该层存在许多存储引擎,各有优劣,在MySQL中,最常用的是InnoDB,MyISAM。
4).最后一层为文件系统等OS底层,最终数据库操作的也是OS的底层。
所以数据库实际上是用户级的一个程序。
为什么要有数据库
在OS层面,因存在文件系统,文件的管理似乎已经做的很好了,但是在用户层面,并没有很好的管理,这就导致用户操作数据不够方便。
于是便有了数据库,数据库实际上就是在用户层面,给用户提供了良好的操作数据的方法,我们只需要在数据库的客户端输入一些命令,我们就能得到我们想得到的数据,提高了程序员的开发效率。
我们口语中所说的数据库,一是指数据库软件,如mysql,redis等等,二数据库还可以指被数据库软件组织起来的数据,用户不用在意这些数据是如何组织起来的,我们只需要通过数据库的指令操作即可。
如何使用数据库
1.链接数据库
数据库中指令类型
1).ddl(数据定义语言),该类语言用于定义数据库的数据类型,如database,table…
2).dml(数据操作语言),该类语言用于操作数据类型,如删除,插入…
3).dcl(数据控制语言),该类语言用于控制数据类型,如给数据库设置副本…
数据库组织结构
数据库实际是由数据库文件夹和表文件组成的。
它们属于从属关系,数据库文件夹内可能存在很多表结构。
我们层层分析,首先是目录结构,在数据库的配置文件中,已经指明了这些数据放在那里。
在该目录下,我们的Linux中显示的文件和数据库中使用命令显示的数据库文件的关系。
我们可以发现在Linux系统中,数据库都是一个文件夹,那么我们就可以对文件夹进行操作来影响数据库,但我们十分不建议这么做,因为这会导致很多预料之外的问题。
那么数据库中的表在Linux系统下又是什么结构呢?
我们创建了一个测试数据库,并且在该数据库内创建了一个表,我们发现,表中除了操作问文档外,多了两个文件,一个.frm格式,一个.idb格式,这两个都是Innodb数据库引擎为我们创建的文件,当然不同的引擎也会为我们创建不同格式的文件。
数据库的编码
数据库中存在两种编码。
1).数据库编码集。
数据库编码集,代表了未来将数据存入数据库用的是那种编码。
2).数据库校验集。
数据库校验集,代表了未来我们使用,比较…我们使用的编码。
在每个数据库中,都会存在一个.opt文件,该文件内就存放了当前数据库的数据库编码集和数据库校验集。
实际上在配置文件中,我们也设置了默认的编码集。
数据库的操作
1).创建
2).展示数据库
3).我们要对某个数据库操作时,我们先需要进入某个数据库
3).修改库
4).删除库
表的操作
表是数据库内的资源组织的基本单位,在Linux系统中,所谓表及代表Linux中的普通文件,不同的SQL引擎,会生成不同类型的文件。
1).表的创建
2).展示表
3).修改表
4).删除一个表
总结
1).备份指令可以对数据库和表备份。
2).上述操作只是对数据库和表的属性进行操作。
3).对于数据库的指令,记忆方面,alter代表修改,show代表展示,drop代表删除。