【MySQL】基础知识

发布于:2025-05-16 ⋅ 阅读:(16) ⋅ 点赞:(0)

MySQL(一)基础知识

MySQL

一、结构

1.客户端 

2.服务器

分布式系统

二、存储

1.空间

1.1内存

1.1.1速度

1.1.2稳定性

1.1.3大小

1.1.4使用 

1.2硬盘

1.2.1速度

1.2.2稳定性

1.2.3大小

1.2.4【Java学习】反射-CSDN博客

2.体系

表-数据库-服务器

3.特点

3.1唯一性

if not exists

3.2轻巧性

三、编码

1.utf8

2.utf8mb4

3.unicode

4.gbk

四、类型

1.数值类型

1.1整数

1.1.1BIN[(M)]

1.1.2TINYINT

1.1.3SMALLINT

1.1.4INT

1.1.5BIGINT

1.2浮点数

1.2.1IEE754标准

1.2.1.1FOLAT(M,D)

1.2.1.2DOUBLE

1.2.2准确标准

1.2.2.1DECIMAL(M,D)

1.2.2.2NUMERIC(M,D)

2.字符串类型

2.1文本数据

2.1.1VARCHAR(SIZE)

2.1.2TEXT

2.1.3MEDIUMTEXT

2.2二进制数据

BLOB

3.日期类型

3.1TIMESTAMP

3.2DATETIME


MySQL

MySQL是一个 客户端-服务器结构的 程序,服务器 是真正的 保存和管理数据的 本体,是用来组织数据的 关系型数据库


一、结构

1.客户端 

客户端 通过网络 进行通信 向服务器 主动传递数据 主动发起请求


2.服务器

服务器 永不停机等待着被接收到请求 处理数据 为客户端返回数据响应,一个服务器 为多个客户端 提供服务的


分布式系统

机器处理数据时,一台机器 能即刻应对处理着的数据量 是有限的,当要及时处理的数据量过多 一台机器无法应时处理完时,需要由多个机器 同时一起分开着 来处理完,就构成了 多个机器下的 分布式系统,机器之间 也成 服务器与客户端关系地 传递处理返回数据,会发生既作服务器 也作客户端的机器,也会出现 只为一个机器客户端服务的 服务器机器


二、存储

1.空间

存储空间 分为 内存 硬盘
 


1.1内存
1.1.1速度

内存里 操作数据的速度快


1.1.2稳定性

内存里 存储数据的稳定性差程序重启 或主机断电 存储的数据就丢失了


1.1.3大小

价格昂贵 买到来用的内存小


1.1.4使用 

有的数据库 为了追求速度的最大化 选择了 用内存来存储数据,如redis


1.2硬盘
1.2.1速度

硬盘里 操作数据的速度慢


1.2.2稳定性

硬盘里 存储数据的稳定性高,数据持久地保存


1.2.3大小

价格便宜 买到来用的硬盘大


1.2.4使用 

绝大多数数据库 需要 稳定持久地 存储大量数据,选择 操作速度慢些的硬盘 来存储


2.体系

表-数据库-服务器

几个 放一起集合 就构成了 一个数据库每个表 都是属于在 它所属的 一个数据库中的一个服务器 存储管理着 许多数据库


3.特点

3.1唯一性

服务器都是 不重复唯一性地 高效存储数据库建库检索时 发现此库已存在有的,会立马终止程序 来阻止建库的发生

if not exists

因为到后面建库时 可能出现 此时要去创建使之存在有的库 不确定是否前面已经存在、且一次要创建的库特别多 也不方便一个个往前去查,直接加if not exists 将它们未存在的创建、已存在的不创建 最后都一定执行成功地 将它们创建得都存在有


3.2轻巧性

一般不会在数据库中 存储很大的数据,如二进制数据的 音乐、图片、视频,很大的数据 单单遍历路过 都要花费很长的时间,何况对它 增删查改操作,它的存在 会大大影响到 数据库的增删查改的效率,所以都是将很大的数据 存储在专门的目录中,在数据库中 存储它的路径


三、编码

数据在底层都是 转化成码的形式 来存储的参照不同的字符集数据编成的 就不一样码内容 字节量就不一样


1.utf8

utf8字符集,没有固定编成的 码的规格大小变长式的编码 将世界上所有的语言文字 都有对应的编码,汉字占3个字节,mysql中默认用的是utf8的残本,没有对 复杂的中文字符emoji表情 编码的部分,在创建库的时候可以指定字符集为完整的utf8:

create database if not exists test1 charset utf8;

2.utf8mb4

后面mysql对其进行补充完整的 utf8mb4字符集则才是utf8的完全体


3.unicode

unicode是 只对字符进行编码的 字符集,对多个字符合并的字符串 没有字符边界意识 将其调整合并编码,还是将字符串视为一个字符,判断为不存在 而无法编码,而utf8其实是 unicode补充了对字符串合并编码的 升级版


4.gbk

windows使用的的是 gbk字符集,汉字占2个字节


四、类型

1.数值类型

1.1整数

n位的二进制数有符号下 数值的范围为-2^(n-1) ~ 2^(n-1) - 1无符号下 数值的范围为0 ~ 2^(n) - 1


1.1.1BIN[(M)]

BIN[(M)] ,用来存放 M位的二进制数,M范围1~64,存储数值范围0~2^(M)-1M默认为1,存放一个 0或1 用来表示真假,对应Java的Boolean类型


1.1.2TINYINT

TINYINT 1字节的大小,对应Java的Byte类型


1.1.3SMALLINT

SMALLINT 2字节的大小,对应Java的Short类型


1.1.4INT

INT 4字节的大小,对应Java的Integer类型


1.1.5BIGINT

BIGINT 8字节的大小,对应Java的Long类型


1.2浮点数
1.2.1IEE754标准

在IEE754标准下 会丢失精度 存在一定误差浮点数 去进行大小的比较 是很危险的0.1 + 0.2 != 0.3


1.2.1.1FOLAT(M,D)

FOLAT(M,D),存放 M个数字位数D个小数位数单精度浮点数,4字节的大小,对应Java的Float类型


1.2.1.2DOUBLE

DOUBLE,8字节的大小,对应Java的Double类型


1.2.2准确标准
1.2.2.1DECIMAL(M,D)

DECIMAL(M,D),存放精确数值双精度浮点数,精度提高,但运算的速度减慢占的空间变大,对应Java的BigDecimal类型


1.2.2.2NUMERIC(M,D)

NUMERIC(M,D)是 和DECIMAL一样的类型


2.字符串类型

2.1文本数据

文本数据 存储的是 码表上存在的 字符数据,一个汉字是一个字符,但是可能对应多个字节的大小


2.1.1VARCHAR(SIZE)

VARCHAR(SIZE) 动态按需 最大开辟SIZE个字符的空间 去存储,是可变长度的字符串最大可存储0~65535字节的空间,对应Java的String类型


2.1.2TEXT

TEXT 存储0~65535字节空间的 长文本数据,对应Java的String类型


2.1.3MEDIUMTEXT

MEDIUMTEXT 存储0~16777215字节空间的 长文本数据,对应Java的String类型


2.2二进制数据

对于码表上 查找不到不存在的数据 就是二进制数据

BLOB

BLOB 存储0~65535字节空间的 二进制数据,对于Java的byte[]类型


3.日期类型

日期类型 用来存储 1970年1月1日0时0分0秒基准时刻当前时刻秒数/毫秒数/微妙数之差时间戳


3.1TIMESTAMP

TIMESTAMP的大小为4个字节,现在用来存储秒级时间戳 都快不够了,可以存储1970~2038年的时间戳,对应Java的Java.util.DateJava.sql.Timestamp类型


3.2DATETIME

DATETIME的大小为8个字节,可以存储1000~9999年的时间戳,对应Java的Java.util.DateJava.sql.Timestamp类型


网站公告

今日签到

点亮在社区的每一天
去签到