【MySQL】 穿透学习数据库理论与知识剖析
前言:本节内容讲述一些数据库的基本概念。 第一个部分就是数据库相关的概念, 比如什么是数据库, 如何理解mysqld以及mysql。第二部分理解数据库和表在系统层面的形式。 第三部分就是mysql的一些操作分类。 第四部分就是数据库的插件配置这些。
ps:本节内容都是一些基础概念, 友友们可以放心观看哦。
目录
mysql登录
mysql退出
什么是数据库编辑
见一见数据库
常见的主流数据库
服务器、数据库、表关系
mysql架构
SQL分类
存储引擎
mysql登录
mysql登录支持本地登录, 如下:
mysql -uroot -p; //直接使用root登录, 使用密码登录
mysql 也支持远程登录, 只需要提供对应的mysql所在主机的ip地址和端口号:
mysql -h IP地址 -P 端口号 -u用户名 -p; //登录远端mysql服务, 使用密码登录
mysql退出
mysql退出就是quit
什么是数据库
- mysql它是数据库服务的客户端
- mysqld它是数据库服务的服务器端
- mysql本质:基于C(mysql)S(mysqld)模式的一种网络服务。
- mysql是一套给我们提供数据存取得服务的网络程序。
- 数据库一般指的是, 在磁盘或者内存中存储的特定结构组织的数据 -- 将来在磁盘上存储的一套数据库方案。
- 数据库服务 -- mysqld。
- 一般的文件给我们确实提供了数据的存储功能, 但是数据并没有给我们提供非常好的数据管理能力。
- 数据库本质:对数据内容存储的一套解决方案。用户给数据库字段或者要求, 数据库直接给用户结果。
然后数据库的工作模式就是下图:
见一见数据库
样例:使用mysql建立一个数据库, 建立一张表结构, 插入一些数据。-- 对比一下mysql在linux中是如何表现的。
我们进入/var/lib/mysql, 可以看到里面一开始没有newdatabase文件。
但是我们在mysql中创建一个数据库后, 就能看到, /var/lib/mysql里面多出来了一个newdatabase文件。
所以, 我们就能知道, 其实建立数据库, 本质就是在linux下创建一个目录。
然后我们创建一个表:
use database; //使用某个数据库
create table 表名称(
字段一 数据类型,
字段二 数据类型,
字段三 数据类型,
………………
); //创建表结构
然后我们就能发现/var/lib/mysql/newdatabase下面多出来了一个文件:
所以我们就知道了,在数据库内建立表, 本质就是在linux下创建对应的文件即可!
问题是, 上面这两个动作是谁做的? ——是mysqld服务帮我们做的。
数据库本质其实也是文件!只不过这些文件并不由程序员直接操作,而是由数据库服务帮我们进行操作。
常见的主流数据库
常见的主流数据库其实有我们现在用的MySQL、 SQL server、Oracle、Redis等等。其中, Redis和其他三个又有区分, Redis是内存数据库, 它将数据存储在内存中, 所以有有非常快的读取速度。另外三个是关系型数据库, 基于表格结构, 适合做结构化的存储。
服务器、数据库、表关系
所谓的安装数据库服务器,其实就是在机器上面安装了一个mysqld,也就是数据库管理系统程序。 它以守护进程的形式在后台一直在运行。一次可以管理多个数据库。
这些数据库其实就是上面的DB。一般开发人员对每一个应用会创建一个数据库。
为了保证应用中实体的数据,所以一般会在数据库中创建多个表,用来保存实体中的数据
mysql架构
MySQL是一个可移植的数据库, 其实认识MySQL的架构,其实就是认识mysqld是如何进行服务的。 下面是mysqld的结构:
mysql首先最上层的是客户端, 也就是mysql那个程序。 mysql的客户端其实不只是能用这个程序来充当, 还可以使用c++等语言, 或者图形化界面的工具。
然后下面就是mysqld, 也就是mysqlserver。 它整体是由我们的三层去构成。 第一层叫做链接池, 就是用来网络服务进行连接, 判断用户的身份合法性, 做一些安全管理相关的工作。
第二层就是我们的SQL相关的内容, 这一层用来将上层发来的SQL语句进行词法分析, 语法分析。 SQL语句优化等等工作。 就类似于编译器。
第三层就是进行匹配一个一个具体的存储引擎, 存储引擎就类似于驱动, 这个存储引擎从上层接收我们下达下来的一些经过词法语法分析优化后的语句,然后对它们进行解释,所以, 这一层就是真正的办事的。
SQL分类
- DDL:数据定义语言——用来维护数据的结构, 用来定义表等
- DML:数据操作语言——对表当中的内容进行操作。
- DCL:数据控制语言——负责权限和事物的管理。
存储引擎
存储引擎:数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。
MySQL采用插件式的存储引擎, 支持多种存储引擎。 查看存储引擎的指令是:
show engines
——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!