IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Linux_MySQL 数据类型 -> 正文阅读

[大数据]Linux_MySQL 数据类型

1.MySQL数据类型

数据库中类型决定了储存这个数据所占用的大小,以及如何识别这个数据。

①数值类型

数据类型说明
bit(M)位类型,M指定位数,默认值1,范围1 ~ 64
tinyint [unsigned]有符号范围-128 ~ 127,无符号0 ~ 255,默认无符号(char)
smallint [unsigned]有符号范围 -215 ~215 -1,无符号 216 -1(short)
int [unsigned]有符号范围 -231 ~231 -1,无符号 232 -1(int)
bigint [unsigned]有符号范围 -263 ~263 -1,无符号 264 -1(long long)
bool0和1表示假和真
float(M,D)[unsigned]M指定显示长度,D指定小数位数,占用四字节(float)
double(M,D)[unsigned]表示精度比float大,占用八个字节(double)
decimal(M,D)[unsigned]浮点数类型,M指定长度,D表示小数点的位数,精度比double更好一些

tinyint

在这里插入图片描述
当插入的数据大于数据类型的范围时会插入失败。
在这里插入图片描述

MySQL对数据的存储相比于C语言更加严格,MySQL数据类型本质就是一种约束。

bit(M)

在这里插入图片描述
如上图可知,当a的类型是比特时无法正常显示。这时因为此时a是按照二进制储存的。在解析时默认按照ascii表进行显示,10对应的ascii是不可见字符,所以打印无法正常显示。
在这里插入图片描述


小数类型测试

float(M,D)[unsigned]

float(M,D)[unsigned] M指定显示长度,D指定小数位数,占用四字节(float)、

eg:float(4,2)取值范围为:-99.99~99.99
如果输入99.498会被截断,遵循4舍5入原则,变为99.50。
99.994可以插入进去,99.995插入失败
在这里插入图片描述
如果float(4,2)设置成无符号,则取值范围为:0~99.99

decimal(M,D)[unsigned]

decimal(M,D)[unsigned] 浮点数类型,M指定长度,D表示小数点的位数,精度比double更好一些

eg:
decimal(5,2)范围是-999.99~999.99
如果设置无符号0~999.99

相比于float,decimal精确度更高一些。

对比float和decimal的精度
在这里插入图片描述
如上图可知,decimal和float储存相同的浮点数,对比decimal储存精确度更高。

decimal最大小数位是30位,宽度m最大65。float最大精度大约为7位。

②文本、二进制类型

数据类型说明
char(size)固定长度字符串类型,size最大255
varchar(len)可变长度字符串,len的大小与编码形式有关
blob二进制数据
text大文本,不支持全文索引,不支持默认值

char(size)

char(size) 固定长度字符串类型,size最大255

系统直接开辟size大小的空间存储字符串。如果你的长度小于size,剩余的空间就浪费了。

char(2)代表可以存两个字符,包括字母或者汉字。(这个字符需要与C语言区分开,这里一个汉字也是一个字符,数据库的一个字符大小不是一个字节)。
在这里插入图片描述

varchar(len)

varchar(len) 可变长度字符串。

在len个字符范围内,需要多少个字符空间,就开辟多少个,但是不能超过len个。

len的大小与编码方式有关:

  • varchar最大可以存放65535字节的字符串,其中1~3个字节用来记录数据大小。所以有效大小为65532
  • 如果是utf-8(一个字符占用三字节) len最大为65532÷3=21844
  • 如果是gbk(一个字符占用两个字节)len最大为65532÷2=32766

在这里插入图片描述
char与varchar对比
在这里插入图片描述
这里统一采用utf-8的编码格式形式进行说明,varchar需要1到3个字节保存字符串长度(计数)。

③时间日期类型

数据类型说明
date/datetime/timestamp时间类型

date:日期格式年-月-日 占用三个字节
datetime:日期格式 年-月-日 时:分:秒 占用八字节。
timestamp:时间戳,格式与datetime相同,占用四字节。当更新数据时,时间戳会更新成当前时间。

在这里插入图片描述

在这里插入图片描述
在更新数据时timestamp类型时间也会更新
在这里插入图片描述

④enum与set类型

数据类型说明
enum字符串对象,其值来自表创建时在列规定的显示枚举的一个列值,只能从多个取值中选一个
set字符串对象,可以有多个值,这些值来自创建表时所规定,可以从多个值中选多个值

枚举:多选一。集合:多选多

下面通过喜欢的水果表来举例子:

eg:
在这里插入图片描述
总结:

  1. enum取值只能是设定好的字段,并且只能选一个。
  2. set的取值也只能是设定好的字段,但可以选择多个。

其次插入方式还有:
在这里插入图片描述
插入过程中可以采用数字的形式,1和2就像数组下标一样,自动对应枚举类型。1对应男(枚举第一个元素),2对应女。


set也可以采用数字的形式插入。
在这里插入图片描述
在这里插入图片描述
如上图发现,这里3不是对应set的第三个元素,而是前两个元素
在这里插入图片描述
而插入4号时对应的时set的第三个元素

当使用数字的方式插入set类元素时,此时数字不能类比数组下标,而是比特位.这一点与文件权限类似

在这里插入图片描述

在这里插入图片描述


set数据库查询方式:

find_ in_ set查找set类型数据

通常查找数据库的方式:

在这里插入图片描述
但是因为set的数据个数不止一个,所以查询时需要使用find_ in_ set函数

find_in_set(sub,str_list) :如果 sub 在 str_list 中,则返回下标;如果不在,返回0; str_list 用逗号分隔的字符串。

eg:

在这里插入图片描述
所以查所有喜欢吃的水果是苹果(不包含其他水果,严格匹配):
在这里插入图片描述

查找爱吃的水果中有苹果的人(不严格匹配):
在这里插入图片描述

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-04-18 17:49:30  更:2022-04-18 17:49:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 3:08:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码