【MySQL】1.MySQL基础

1.0 数据库基本概念

想要理解数据库的概念,首先要了解数据库为何存在,它存在的价值是什么?
在之前的学习中,我们通常用文件来存储数据, 但是文件存储数据拥有以下几个缺点。
1.文件的安全性无法保证
2.文件不利于数据查询和管理
3.文件不利于存储海量数据
4.文件在程序中控制不方便
为了解决上述问题,专家们设计出更加利于管理数据的应用层软件–数据库,使用它可以更加有效快捷的管理数据。所以数据库是需要我们自己安装,其底层一定是直接或者间接的访问OS的文件接口

在这里插入图片描述
查看数据库服务器链接状况
指令:netstat -nltp 查看是否链接上MySQL服务器
在这里插入图片描述

1.1 主流数据库介绍

SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目。
Oracle (部分银行使用): 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL。
MySQL (主流):世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务。主要用在电商,SNS,论
坛。对简单的SQL处理效果好。

PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可
以免费使用,修改和分发。
SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它的设
计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可
能只需要几百K的内存就够了。
H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中。

2.0 MySQL数据库架构

2.1 MySQL软件分层

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、Mac 和Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体系结构的一致性

可移植性在代码层面理解:例如一段程序想要在三十二位和六十四位机器都可以跑,则需要通过条件编译将三十二位和六十四位有区别的部分代码使用条件编译的手段穷举出来,让不同机器得到自己需要的代码,将无用代码去掉

在这里插入图片描述
第一层:Connection Pool 链接池,MySQL服务器采用多线程技术,服务器创建好线程等待客户端网络链接
第二层:词法语法分析,对用户传来的SQL语句进行分析,然后去调用指定接口处理数据
第三层: 存储引擎,对磁盘中的特定文件数据进行访问操作,管理数据

2.1 MySQL存储引擎

MySQL的核心是插件式存储引擎,支持多种存储引擎
存储引擎是数据库管理系统如何存储数据,如何位存储的数据建立索引和如何更新、查询数据等技术的实现方法

我们可以通过不同的接口调用不同的存储引擎帮我们存储数据。其设计理念和Linux文件管理类似,我们只需要将每个存储引擎中封装一系列函数指针,通过接口调用不同存储引擎就可以使用不同的形势来存储数据

查看存储引擎
指令: show engines(+\G选项可以改变打印方式)
在这里插入图片描述

2.2 SQL语句分类

DDL【data definition language】 数据定义语言,用来维护存储数据的结构 代表指令:create, drop, alter
DML【data manipulation language】 数据操纵语言,用来对数据进行操作 代表指令: insert,delete,update
DML中又单独分了一个DQL,数据查询语言,代表指令: select
DCL【Data Control Language】 数据控制语言,主要负责权限管理和事务 代表指令: grant,revoke,commit

猜你喜欢

转载自blog.csdn.net/m0_69442905/article/details/128129587