news 2026/9/30 8:24:01

MySQL的数据类型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL的数据类型
@bit::Shadow
✧(≖ ◡ ≖✿

目录

int类型

bit

浮点数

float

decimal

字符串类型

char

varchar

char VS varchar

日期、时间类型

格式

时间戳一定是自动改变的吗?

enum与set

在set列中怎么插入多个值呢?

插入时的底层

enum

set

举例


类型后置:C/C++中 int age; MySQL中 age int;

注意:整型一般操作是,溢出截断,默认创建时是有符号的。

int类型

类型字节
tinyint1
smallint2
mediumint3
int4
bigint8

bit

存在大小限制[1, 64]

当select时打印:

注意:

1.因为BIT类型在 MySQL 里是按位存储的,显示时按字节补足两位,而不是按你写入的位数显示。

2.显示默认是以16进制形式显示的。

3.无unsigned的bit类型。

浮点数

float double decimal

float

1.截断、四舍五入的规则更加有影响。

通过括号的方式来限定位数。

float(m, l); 代表至少m长度l个小数位。 此长度不包含小数点(符合直觉)

显示与溢出

同样的,double类型也可被定义。

decimal

优化解决了float的精度问题。

常被用于银行、金融机构等需高精度的计算要求。

字符串类型

编码格式对汉字的影响:

gbk:一个汉字两个字节

utf8:一个汉字三个字节!!!

注意:MySQL中以字符作为存储单位。(“1” “a” “好” 等在MySQL下均是一个字符大小)

常用的字符单位是char varchar

char

范围[0,255]字符

char代表定长类型。

varchar

数据库尽量节省空间的体现类型

“变长字符类型”

最大值:utf-8下是21845 GBK下是32766。(65535字节/3 或者 65535字节/2)

特性:

1.当定义varchar(3),却只容纳了“中”,实际上占用了小于3个字符大小。

2.varchar内有额外1~3字节记录实际上使用的空间大小。
这就是为什么虽然上限是21845却只能创建21844大小

注意:表的单行大小也存在限制---65535字节。

char VS varchar

我们应该从两方面入手:“长度易变?” “常用长度大小”

仅易变且长度较大(像游戏用户名)推荐使用varchar。其他情况均建议使用char定长。(当然具体肯定要结合实际来讨论)

日期、时间类型

date datetime datestamp

仅存在三种类型:日期(年月日)、日期时间(年月日时分秒)和时间戳(年月日时分秒)

格式

date:YYYY-MM-DD

datetime:YYYY-MM-DD HH:MM:SS

datestamp:YY-MM-DD HH:MM:SS

举例

insert into 表名 values ('2001-01-01', '1949-09-09 09:09:09', '2025-01-01 12:00:00');

更改

update 表名 set 列名 = 新值 where 定位条件;

时间戳:隶属于当前行,一旦行内数据发生于原本数据不一致的变化,便会自动更改为变化发生时的时间。

注意:

1.英文引号 '' 引入输入内容。

2.特定类型的格式约束。

3.更改时间戳所在行内某属性值与原本值相同时,时间戳不会发生改变。

时间戳一定是自动改变的吗?

不一定,只有当时间戳列属性为:“CURRENT_TIMESTAMP”

与“DEFAULT_GENERATED on update CURRENT_TIMESTAMP”

enum与set

枚举与集合

enum:单选,从预定义列表中选择一个值;

set:多选,从预定义列表中选择零个或多个值;

create table t9_es(gender enum('女', '男', '保密'), hobby set('乒乓球','代码','电脑'));

在set列中怎么插入多个值呢?

位于一个单引号引用内,仅使用,隔开。(不可有空格)

select

插入时的底层

在MySQL中放弃了0作为索引下标第一个的方法,而是看作“真”与“假”的评判。因此以“1”开启头部索引。

实际上enum的选项就是从1开始第一位是1,第二位是2。

set的选项依赖的是“位图结构”位图为1即对应选项激活。

enum

set

set从二进制比特位是“反过来”看的

举例

使用 2, 3分别作enum与set插入




感谢支持,长期连载
欢迎关注

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 8:21:57

大模型落地企业数字化转型:技术选型、架构设计与避坑指南

简介:《大模型与企业数字化转型解决方案》PPT是一份面向企业中高层管理者、数字化转型负责人及技术人员的系统化参考材料,聚焦大模型技术如何落地到企业业务场景,帮助解决转型过程中的技术选型、架构规划与组织协同难题。压缩包内为1个PPT文件…

作者头像 李华
网站建设 2026/9/30 8:21:53

谢希仁《计算机网络》第五版课后题实战推演指南

简介:本资源是《计算机网络》(谢希仁第五版)配套课后习题的完整参考答案,专为高校计算机、通信、电子信息等专业学生及考研备考者设计,旨在帮助读者系统梳理核心概念、厘清易混淆知识点、强化对分组交换原理、网络分类…

作者头像 李华
网站建设 2026/9/30 8:21:26

电商分布式架构设计:服务拆分、高并发与避坑实践

简介:这是一份聚焦电商平台分布式架构设计的方案文档,适用于正在规划系统扩展路径的架构师、技术负责人及后端开发者。文档以电商业务为背景,从架构设计的必要性与前提条件切入,系统梳理客户对在线购物、支付、物流、客服、评价等…

作者头像 李华
网站建设 2026/9/30 8:20:50

工业金属3D打印机价格深度拆解:选型逻辑与成本控制指南

工业金属3D打印机价格,这可能是所有想上金属增材制造项目的人第一眼就被劝退的东西。一套国产设备报价两三百万,进口设备动辄五六百万,甚至上千万,跟桌面级3D打印机完全不是一个物种。我入行这几年,见过不少客户拿着热…

作者头像 李华