MySql基础

        本篇将主要讲解 MySql 中的一些基础知识,其中主要包括什么是数据库、mysql 以及 mysqld,然后介绍了数据库的创建;服务器、数据库和表之间的关系;接着介绍了 MySql 的架构,以及 SQL 语句的分类。目录如下:

目录

1. 什么是数据库

2. 数据库的创建

3. 服务器、数据库、表之间的关系

4. MySql 架构

5. SQL 语句分类

1. 什么是数据库

        数据库本质来说是一种基于 Client(mysql)、Server(mysqld) 的网络服务,其中 mysql 是数据库服务的客户端mysqld 是数据库服务的服务器端。如下图:

        如上图所示,mysqld 是基于 tcp 协议的一种网络服务,端口号为 3306。但是我们还是需要区分好 mysql、mysqld 以及数据库的的性质:

        mysql:一套给我们提供数据存取服务的网络程序(也就是我们直接进行操作的一个前端程序)。

        数据库:数据库一般指的是,在磁盘或者内存中存储的特定结构组织的数据在磁盘中存储的一套数据库方案

        mysqld:提供数据库服务服务器(从 mysql 中发来指令,从数据库中拿出数据,然后计算输出)。

        如下:

        在平时我们所使用的普通文件系统中,并没有提供很好的数据管理功能,仅仅只是提供了数据的存储功能,当我们想要增加删除查找和修改数据的时候会比较麻烦,所以数据库的诞生就很好的解决了这一问题,我们只需要给数据库我们的要求,数据库就可以给我们有关数据的结果。其中,文件保存数据有以下几个缺点:

        1. 文件的安全性问题;

        2. 文件不利于数据查询和管理;

        3. 文件不利于存储海量数据;

        4. 文件在程序中控制不方便。

2. 数据库的创建

        对于查看数据库中的文件,我们可以使用 show databases 命令查看数据库中对应的数据文件,并且我们的数据库其实是在系统中的一个目录,如下:

        当我们打开我们的数据库的时候,我们在 /var/lib/mysql 目录下的文件中也查看到了对应的文件,当我们使用 create database db_name 命令时就是创建数据库文件,如下:

        所以建立数据库,本质就是在 Linux 系统下创建一个目录文件,只不过这些文件并不由程序猿直接操作,而是由数据库服务(mysqld、mysql)帮我们进行操作。

        那么我们如何在数据库中存储对应的数据呢?

        我们在对应的数据库文件下创建对应的表,然后就可以在表中存储对应的数据,如下所示:

        我们先使用 use db_name 中进入到对应的数据库,然后使用创建表的命令创建对应的表。当我们在数据库中创建出对应的表之后,在 Linux 下对应的目录中也出现了对应的文件,所以在数据库中创建表本质就是在 Linux 下创建对应的文件即可。接着我们使用插入命令在数据库的表中插入了一些数据(关于这些命令会在之后的文章中给出详细的用法)

3. 服务器、数据库、表之间的关系

        我们所谓的安装数据库服务器,只是在机器上安装了一个数据管理系统程序,这个管理程序可以管理多个数据库,一般开发人员会针对每个应用创建一个数据库

        为了保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。

        数据库服务器、数据库和表的关系如下:

        另外,关于数据库的逻辑存储和物理存储之间的区别:

        对于逻辑存储而言,数据库存储数据是使用行列二维形式的表存储数据的,每一次插入都是直接插入一行。

        而对于物理存储而言,数据库存储数据就是直接存储的二进制数据。

4. MySql 架构

        MySql 是一个可移植的数据库,几乎能在当前所有的操作系统中运行(当然最主流的是在 Linux 下),虽然 MySql 在各种系统底层实现方面各有不同,但是 MySql 基本上能保证在各个平台上的物理体系结构的一致性,如下就是关于 MySql 的架构图(图片来源:一文搞懂MySQL体系架构!!-CSDN博客):

        对于以上图来说,第一层给我们做一些认证的功能,用户登录等等之类的认证,第二层则是对来自 mysql 的语句进行词法语法分析(必要时做一些优化),然后下发给第三层,第三层就是各种各样的存储引擎,可以帮我们访问指定的数据库、指定的文件,对我们的表结构进行增删查改,最底层则是我们的物理存储系统,存储对应的二进制文件。

5. SQL 语句分类

        在 MySql 中的命令语句中也有着对应的分类,其中分别位 DDL,DCL,DML,如下:
        DDL(data definition language)数据定义语言,用来维护存储数据的结构,也就是创建、销毁和修改存储数据的命令,如:create、drop、alter

        DML(data manipulation language)数据操纵语言,用来对数据进行操作的语言,也就是对数据进行插入、删除、更新的命令,如:insert、delete、updata

        DCL(data control language)数据控制语言,主要负责权限管理和事务代表的指令,如:grant,revoke,commit。

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值