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)!