MySQL数值类型

本文详细介绍了MySQL支持的各种数据类型,包括数值类型如TINYINT、SMALLINT、MEDIUMINT、INT、FLOAT、DOUBLE和DECIMAL;日期/时间类型如DATE、TIME、YEAR、DATETIME和TIMESTAMP;字符串类型如CHAR、VARCHAR、TINYBLOB、BLOB、TEXT和LONGBLOB。每种类型都附有其大小、范围和用途说明。

一、MySQL常用数据类型有哪些?

mysql支持多种类型,大致可以分为三类:

1、数值

类型大小范围(有符号)范围(无符号)用途
TINYINT1 字节(-128,127)(0,255)小整数值
SMALLINT2 字节(-32 768,32 767)(0,65 535)大整数值
MEDIUMINT3 字节(-8 388 608,8 388 607)(0,16 777 215)大整数值
INT或INTEGER4 字节(-2 147 483 648,2 147 483 647)(0,4 294 967 295)大整数值
FLOAT4 字节(-3.402 823 466 E+38,-1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38)0,(1.175 494 351 E-38,3.402 823 466 E+38)单精度 浮点数值
DOUBLE8 字节(-1.797 693 134 862 315 7 E+308,-2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308)双精度浮点数值
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2依赖于M和D的值依赖于M和D的值小数值

2、日期/时间

类型大小范围格式用途
DATE31000-01-01/9999-12-31YYYY-MM-DD日期值
TIME3‘-838:59:59’/‘838:59:59’HH:MM:SS时间值或持续时间
YEAR11901/2155YYYY年份值
DATETIME81000-01-01 00:00:00/9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS混合日期和时间值
TIMESTAMP41970-01-01 00:00:00/2038 结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07YYYYMMDD HHMMSS混合日期和时间值,时间戳

3、字符串

类型大小用途
CHAR0-255字节定长字符串
VARCHAR0-65535 字节变长字符串
TINYBLOB0-255字节不超过 255 个字符的二进制字符串
TINYTEXT0-255字节短文本字符串
BLOB0-65 535字节二进制形式的长文本数据
TEXT0-65 535字节长文本数据
MEDIUMBLOB0-16 777 215字节二进制形式的中等长度文本数据
MEDIUMTEXT0-16 777 215字节中等长度文本数据
LONGBLOB0-4 294 967 295字节二进制形式的极大文本数据
LONGTEXT0-4 294 967 295字节极大文本数据
### MySQL 数值数据类型及其用法 #### 整数类型 MySQL 支持多种整数类型的定义,每种都有不同的存储需求和范围: - `TINYINT`:非常小的整数,占用1字节。有符号范围是从 -128 到 127;无符号范围是从0到255[^1]。 - `SMALLINT`:较小的整数,占用2字节。有符号范围是从 -32,768 至 32,767;无符号范围是从0至65,535。 - `MEDIUMINT`:中等大小的整数,占用3字节。有符号范围是从 -8,388,608 至 8,388,607;无符号范围是从0至16,777,215。 - `INT` 或者 `INTEGER`:标准整数,占用4字节。有符号范围是从 -2^31 (-2,147,483,648) 至 2^31-1 (2,147,483,647); 无符号范围是从0至2^32-1(4,294,967,295)。 - `BIGINT`:大整数,占用8字节。有符号范围是从 -2^63 至 2^63-1; 无符号范围是从0至2^64-1。 这些类型可以指定为带有一个可选宽度参数 `(M)` 的形式来显示零填充效果,不过这并不影响实际取值范围或者性能表现。 #### 浮点数与定点数类型 对于浮点型数值,提供了两种主要的数据类型用于表示近似值或精确的小数: - `FLOAT(M,D)` 和 `DOUBLE PRECISION(M,D)` :分别用来保存单精度浮点数(通常4字节)以及双精度浮点数(通常是8字节)。这里 M 表示总位数而 D 是指小数部分所占位数。需要注意的是,在某些情况下,由于计算机内部二进制表达方式的原因,这类数值可能会存在舍入误差。 - `DECIMAL` / `NUMERIC`(两者功能相同): 定义固定长度的小数字段,适合金融计算等领域需要高精度的情况。同样采用 `(precision,scale)` 形式的语法结构,其中 precision 指定总的十进制数字数量 scale 则表明小数点后的有效位数目。 当涉及到数据分析时,可以通过调用特定的过程分析器如 `PROCEDURE ANALYSE()` 来获取关于列的最佳建议数据类型,这对于优化表设计特别有用[^3]。 ```sql SELECT * FROM table_name PROCEDURE ANALYSE(); ``` 此命令会返回查询结果的一些统计信息并推荐最优的数据类型给各列。然而要注意调整输入参数以防止不恰当的 ENUM 类型被提议作为替代方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值