自学内容网 自学内容网

MySQL数据库基础

数据库

之前我们虽然学习了数据库的基本操作,但是如果想要了解底层的部分,还是需要理解原理的

为什么要有数据库

一开始我们学习时,数据是存储在内存中的,然后慢慢的到了文件

但是如果想要存储成万上亿的数据,内存和文件其实就不太够用了

先不说够不够用,且说增删改查,改和查其实是最麻烦的

不仅仅需要各种循环封装,而且不同语言想要同时使用,就是十分难受的一件事情

主流的数据库有很多,SQL server、Oracle、MySQL、PostgreSQL、SQLite、H2

各有特色,根据需求选择即可

具体安装和设置这里不多赘述

服务器、数据库、表

我们在安装数据库时,其实安装了两个部分,客户端mysql和服务端mysqld

所有的数据库操作,其实都是服务端完成的,数据内容也存在服务端里

而客户端只是连接到了服务端,然后发出指令

因此原理上来说,在一个客户端,指定ip和port,就可以连接到对应服务器的mysql

简单使用

shell中使用下面的命令登录

mysql -uroot -p

创建数据库

create database helloworld;

使用数据库

use helloworld;

创建数据表

create table student(
  id int,
  name varchar(32),
  gender varchar(2)
);

插入数据

insert into student (id, name, gender) values (1, 'morty', '男')

查询表中的数据

select * from sutdent;

好我们到此结束了,吗?

如果真是这样简单使用,那确实,但是如果想要能把数据库用好,其实也是不容易的

MySQL架构

MySQL是一个可移植的数据库,可以做当前的所有操作系统上运行

mysql基本架构是这样的

这里可以看到,我们本身操作的其实是这个mysql shell和mysql connector

mysql服务器的架构其实是比较复杂的,但是本质上还是基于操作系统的文件管理

sql语言氛围三类

  • DDL:Data Definition Lanuage 数据定义语言,主要是对数据库本身的操作,创建数据库、表
  • DML:Data Manipulation Language 数据操纵语言,也就是对数据本身的增删改查
  • DCL:Data Control Language 数据控制语言,主要是权限和食物的管理

存储引擎

存储引擎主要解决的问题是,如何存储数据,如何给数据建立索引,如何更新查询技术

类似于不同的编译器,虽然C/C++的代码是一样的,但是预处理、编译、汇编、链接这些过程却不尽相同

字符集和校验规则

这里主要区分的是utf8mb3和utf8mb4

在过去的mysql中主要是使用的utf8mb3,但是mysql显示的就是utf8,中mysql8中区分显示了

我们一般通过

create database d1 charset=utf8mb4;

可以设置数据库的字符集,也就是数据按照什么编码存到数据库中

而校验规则主要是区分查的规则,有的规则区分大小写,有的规则不区分,会有一部分的性能差异


原文地址:https://blog.csdn.net/ye_yumo/article/details/142653894

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!