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指的是显⽰宽度,举个例⼦:[cpp]
1. mysql> create table test(id int(3) zerofill);
调查研究报告2. Query OK, 0 rows affected (0.09 c)
3.
4. mysql> inrt into test(id) values(1),(1234);
5. Query OK, 2 rows affected (0.06 c)
6. Records: 2 Duplicates: 0 Warnings: 0
7.
8. mysql> lect * from test;
9. +------+
10. | id |
带鱼有人工养殖的吗11. +------+
12. | 001 |仿的四字词语
13. | 1234 |
14. +------+
15. 2 rows in t (0.00 c)
可以看出,id的显⽰宽度为3,不⾜的左边补0,数据长度超过的则原样输出。如果没有zerofill,则看不出显⽰宽度,没有前导零。
(3)FLOAT、DOUBLE和DECIMAL的长度指的是全部数位(包括⼩数点后⾯的),例如DECIMAL(4,1)指的是全部位数为4,⼩数点后1位,如果插⼊1234,则查询的数据是999.9。过程如下
冰糖雪梨银耳[cpp]
1. mysql> alter table test add realnum decimal(4,1);
2. Query OK, 2 rows affected (0.03 c)
3. Records: 2 Duplicates: 0 Warnings: 0
4.巴金的激流三部曲
5. mysql> inrt into test(id,realnum) values(2,1234);
6. Query OK, 1 row affected, 1 warning (0.05 c)
7.
8. mysql> lect * from test;
9. +------+---------+
10. | id | realnum |
11. +------+---------+
12. | 001 | NULL |
13. | 1234 | NULL |
14. | 002 | 999.9 |
15. +------+---------+
16. 3 rows in t (0.02 c)
附录 常见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,允许固定的⼩数点
DATE3字节采⽤YYYY-MM-DD格式
DATETIME8字节采⽤YYYY-MM-DD HH:MM:SS格式
TIMESTAMP4字节采⽤YYYYMMDDHHMMSS格式;可接受的范围终⽌于2037年
TIME3字节采⽤HH:MM:SS格式
ENUM1或2字节Enumeration(枚举)的简写,这意味着每⼀列都可以具有多个可能的值之⼀SET1、2、3、4或8字节与ENUM⼀样,只不过每⼀列都可以具有多个可能的值朗读诗歌