MySQL数据类型详解

MySQL数据类型预览:

整型类型:
具体类型长度(byte)范围说明
tinyint1-128~127  0~255(unsigned)     
smallint2-32768~32767  0~65535(unsigned)     
mediumint3-8388608~8388607  0~16777215(unsigned)     
int4-2147483648~2147483647  0~4294967295(unsigned)     
bigint8-2^63 ~ 2^63-1   0~2^64-1(unsigned)     
decimal(M,D)M+2默认为10 最大65以二进制格式存储值,存储精确的数值数据
numeric(M,D)M+2默认为10 最大65以二进制格式存储值,存储精确的数值数据,在MySQL中,NUMERIC实现为DECIMAL
float(M,D)40~23存储近似数字数据值
double(M,D)824~53存储近似数字数据值
bit(M)51~64用于存储比特值,左侧用零填
字符串类型:
具体类型长度(byte)范围说明
char(M)M0~255固定长度,其他用空格填充
varchar(M)M0~6553565535在所有列中共享长度,utf8编码中长度为21,845
binary(M)M以字节为单位
varbinary(M)M以字节为单位
text(M)0~65535长度为65535字节,存放文本
blob(M)0~65535使用指针方式存储二进制数据
日期类型:
具体类型长度(byte)范围说明
year11901~2155
date4'1000-01-01'~ '9999-12-31'
time3以字节为单位
timestamp4'1970-01-01 00:00:01'~'2038-01-19 03:14:07'timestamp只允许出现一次,取出总是转换为当地时区
datetime8'1000-01-01 00:00:00'~'9999-12-31 23:59:59'
其他类型:
具体类型长度(byte)范围说明
enum1或2个字节0~65535最多可以包含65535个元素
set0~64是一个字符串对象,可以包含零个或多个值

数值类型存储方式:

所有的数值类型,在内存中都转化为二进制数值:
如存储1这个数值,用int类型存储,那么在内存中的存储方式为:
00000000 00000000 00000000 00000001
因为int类型占用4字节,而一字节等于8比特,那么存储长度则为32比特的长度。
如果使用tinyint类型存储,那么在内存中的存储方式为:
00000001

有符号类型:
由于符号要占用掉一个比特位,如果存储-1这个数值,那么在内存中存储方式为:
11111111

负数在内存中都是以补码方式存储的,如-1:
1的原码是00000001,那么取反得到反码:11111110,加一得到补码:11111111

数值类型后面的括号是用来限定显示宽度,仅仅影响显示效果,不会限制存储长度,比较,计算等等

字符串类型存储方式:

cahr和varchar的主要区别:
char类型声明为”定长字符类型”,它严格限定空间长度,括号里限定的是字符的长度,严格存储M个字符,如果不足则以空格不全,如果超过长度,则会报错。
varchar声明为"变长字符串类型",它存储数据时使用额外的字节的bit位来标记某个字节是否存储了数据。在utf8编码中,规定了一个字符占用三个字节,那么它最多存储65536/3=21845个utf8字符
char与varchar存储长度比较:

CHAR(4)需要存储VARCHAR(4)需要存储
'''    '4字节''1个字节
'ab''ab  '4字节'ab'3个字节
'abcd''abcd'4字节'abcd'5个字节
'abcdefgh''abcd'4字节'abcd'5个字节

日期类型存储方式:

日期时间型数据存储时需要使用引号包围,避免和数值类型的数据产生歧义。格式也较为宽松,可以使用任意分隔符来表示

ENUM数据类型:

ENUM是一个字符串对象,可以允许从列表中选择值,定义方式为ENUM(‘value1’,‘value2’…),这些值在表创建时在列规范中显式枚举。它具有以下优点:

1、在列具有有限的可能值集的情况下的紧凑数据存储。您指定为输入值的字符串将自动编码为数字。

2、可读的查询和输出。数字将转换回查询结果中的相应字符串。
在存储是忽略大小写,空格会被截断,同时enum在存储时是通过index方式进行存储
如:ENUM(NULL, ‘’, ‘a’,‘b’,‘c’,’’):

index
NULLNULL
''0
'a'1
'b'2
'c'3
''0
不建议使用enum数据类型,因为它不会在存储保存在适当 TINYINT或 SMALLINT类型,很容易混淆,且在修改类型时会使用copy算法使修改值变得更为复杂

数据类型属性:zerofill:

使用zerofill类型修饰字段后,不足字段显示部分将使用0来代替空格填充,启用zerofill后将自动设置unsigned。zerofill一般只在设置了列的显示宽度后一起使用

"Mstar Bin Tool"是一款专门针对Mstar系列芯片开发的固件处理软件,主要用于智能电视及相关电子设备的系统维护与深度定制。该工具包特别标注了"LETV USB SCRIPT"模块,表明其对乐视品牌设备具有兼容性,能够通过USB通信协议执行固件读写操作。作为一款专业的固件编辑器,它允许技术人员对Mstar芯片的底层二进制文件进行解析、修改与重构,从而实现系统功能的调整、性能优化或故障修复。 工具包中的核心组件包括固件编译环境、设备通信脚本、操作界面及技术文档等。其中"letv_usb_script"是一套针对乐视设备的自动化操作程序,可指导用户完成固件烧录全过程。而"mstar_bin"模块则专门处理芯片的二进制数据文件,支持固件版本的升级、降级或个性化定制。工具采用7-Zip压缩格式封装,用户需先使用解压软件提取文件内容。 操作前需确认目标设备采用Mstar芯片架构并具备完好的USB接口。建议预先备份设备原始固件作为恢复保障。通过编辑器修改固件参数时,可调整系统配置、增删功能模块或修复已知缺陷。执行刷机操作时需严格遵循脚本指示的步骤顺序,保持设备供电稳定,避免中断导致硬件损坏。该工具适用于具备嵌入式系统知识的开发人员或高级用户,在进行设备定制化开发、系统调试或维护修复时使用。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值