mysql整型存储字节与最大长度设置
来源:互联网 发布:淘宝代理充值怎么做 编辑:程序博客网 时间:2024/06/08 09:07
转载地址:https://www.cnblogs.com/ayanmw/p/3640845.html
分析MySQL数据类型的长度
MySQL有几种数据类型可以限制类型的"长度",有CHAR(Length)、VARCHAR(Length)、TINYINT(Length)、SMALLINT(Length)、MEDIUMINT(Length)、INT(Length)、BIGINT(Length)、FLOAT(Length, Decimals)、DOUBLE(Length, Decimals)和DECIMAL(Length, Decimals)。
然而,这些数据类型的长度,并不是都指数据的大小。具体说就是:
(1)CHAR、VARCAHR的长度是指字符的长度,例如CHAR[3]则只能放字符串"123",如果插入数据"1234",则从高位截取,变为"123"。 VARCAHR同理。
(2)TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT的长度,其实和数据的大小无关!Length指的是显示宽度,举个例子:
mysql> create table test(id int(3) zerofill);Query OK, 0 rows affected (0.09 sec)mysql> insert into test(id) values(1),(1234);Query OK, 2 rows affected (0.06 sec)Records: 2 Duplicates: 0 Warnings: 0mysql> select * from test;+------+| id |+------+| 001 || 1234 |+------+2 rows in set (0.00 sec)
可以看出,id的显示宽度为3,不足的左边补0,数据长度超过的则原样输出。如果没有zerofill,则看不出显示宽度,没有前导零。
(3)FLOAT、DOUBLE和DECIMAL的长度指的是全部数位(包括小数点后面的),例如DECIMAL(4,1)指的是全部位数为4,小数点后1位,如果插入1234,则查询的数据是999.9。过程如下
mysql> alter table test add realnum decimal(4,1);Query OK, 2 rows affected (0.03 sec)Records: 2 Duplicates: 0 Warnings: 0mysql> insert into test(id,realnum) values(2,1234);Query OK, 1 row affected, 1 warning (0.05 sec)mysql> select * from test;+------+---------+| id | realnum |+------+---------+| 001 | NULL || 1234 | NULL || 002 | 999.9 |+------+---------+3 rows in set (0.02 sec)
附录 常见MySQL数据类型(留作备忘)
类 型
大 小
描 述
CAHR(Length)
Length字节
定长字段,长度为0~255个字符
VARCHAR(Length)
String长度+1字节或String长度+2字节
变长字段,长度为0~65 535个字符
TINYTEXT
String长度+1字节
字符串,最大长度为255个字符
TEXT
String长度+2字节
字符串,最大长度为65 535个字符
MEDIUMINT
String长度+3字节
字符串,最大长度为16 777 215个字符
LONGTEXT
String长度+4字节
字符串,最大长度为4 294 967 295个字符
TINYINT(Length)
1字节
范围:-128~127,或者0~255(无符号)
SMALLINT(Length)
2字节
范围:-32 768~32 767,或者0~65 535(无符号)
MEDIUMINT(Length)
3字节
范围:-8 388 608~8 388 607,或者0~16 777 215(无符号)
INT(Length)
4字节
范围:-2 147 483 648~2 147 483 647,或者0~4 294 967 295(无符号)
BIGINT(Length)
8字节
范围:-9 223 372 036 854 775 808~9 223 372 036 854 775 807,或者0~18 446 744 073 709 551 615(无符号)
FLOAT(Length, Decimals)
4字节
具有浮动小数点的较小的数
DOUBLE(Length, Decimals)
8字节
具有浮动小数点的较大的数
DECIMAL(Length, Decimals)
Length+1字节或Length+2字节
存储为字符串的DOUBLE,允许固定的小数点
DATE
3字节
采用YYYY-MM-DD格式
DATETIME
8字节
采用YYYY-MM-DD HH:MM:SS格式
TIMESTAMP
4字节
采用YYYYMMDDHHMMSS格式;可接受的范围终止于2037年
TIME
3字节
采用HH:MM:SS格式
ENUM
1或2字节
Enumeration(枚举)的简写,这意味着每一列都可以具有多个可能的值之一
SET
1、2、3、4或8字节
与ENUM一样,只不过每一列都可以具有多个可能的值
- mysql整型存储字节与最大长度设置
- mysql整型存储字节与最大长度设置
- MySQL 数据类型 整型 长度
- mysql整型长度含义
- mysql存储最大字段数,长度含义
- MySQL 数据类型与存储长度
- 字节存储长度判断
- Mysql 整型类型及长度
- MySQL 整型 长度 ZEROFILL属性
- MySQL 整型长度的含义
- 字符长度与字节长度
- MySql 中int 数据类型 存储长度 与显示长度
- 设置powerDesigner生成mysql的表注释字符最大长度
- mysql 里面 group_concat函数设置最大字符长度
- Mysql中Sql语句最大长度设置方法
- Java整型数组的最大长度到底有多长?
- Java整型数组的最大长度到底有多长?
- 字符串长度与字节个数
- BTrace小结(+houseMD使用)
- 从0开始学习 GITHUB 系列之「初识 GITHUB
- 建造者模式(java实现)
- 微信多域名授权
- openssl-1.1.0f VC编译方法
- mysql整型存储字节与最大长度设置
- IT界最新的重大变革
- centos7 源代码编译安装 go 和 lantern
- java自学笔记6:UML简介+阶段练习
- JAVA流程控制循环结构(while和do{}while()循环结构)
- http状态码
- Autofac官方文档(三)【注册组件之注册概念】
- excel的导出
- 观察者模式(java实现)