Mysql常用数据类型存储大小及范围 心已赠人 2024-04-17 15:04 14阅读 0赞 <table> <tbody> <tr> <td colspan="4" style="text-align:center;vertical-align:middle;"><span style="color:#000000;">整数型数据类型</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">类型名称</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">说明</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">存储大小</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#000000;"><span style="color:#000000;">取值范围</span></span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">TINYINT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">很小的正数(一般用于boolean存储)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">1个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">-128~127<br> unsigned:0~255</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">SMALLINT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">小正数</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">2个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">-32768~32767<br> unsigned:0~65535</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">MEDIUMINT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">中等大小的正数</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">3个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">-2^23 ~2^23-1<br> unsigned: 2^24 -1</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">INT(INTEGER)</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">普通大小的正数</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">4个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">-2^31 ~2^31-1<br> unsigned: 2^32 -1</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">BIGINT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;"><span style="color:#000000;">大正数</span><span style="color:#000000;">(</span><span style="color:#000000;">一般用于主键</span><span style="color:#000000;">)</span></span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">8个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">-2^63 ~2^63-1<br> unsigned: 2^64 -1</span></td> </tr> <tr> <td colspan="4" style="text-align:center;vertical-align:middle;"><span style="color:#000000;">小数型数据类型</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">FLOAT(M,N) </span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">M<span style="color:#000000;">表示总共位数,</span><span style="color:#000000;">N</span><span style="color:#000000;">表示小数位数(单精度浮点数)</span></span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">4个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">±1.175494351E – 38</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">DOUBLE(M,N)</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;"><span style="color:#000000;">双精度浮点数</span></span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">8<span style="color:#000000;">个字节</span></span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">±2.2250738585072014E – 308</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">DECIMAL(M,D)</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;"><span style="color:#000000;">压缩的</span><span style="color:#000000;">“</span><span style="color:#000000;">严格</span><span style="color:#000000;">”</span><span style="color:#000000;">定点数</span></span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">M+2<span style="color:#000000;">个字节</span></span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">可变;其值的范围依赖于M 和D</span></td> </tr> <tr> <td colspan="4" style="text-align:center;vertical-align:middle;"><span style="color:#000000;">字符串数据类型</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">CHAR(N)</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;"><span style="color:#000000;">固定长度</span> </span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">N * C(</span><span style="color:#f33b45;">字符存储大小见文末注释1</span><span style="color:#000000;">)</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">0~255</span>字符</td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">VARCHAR(N)</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">可变长度(</span><span style="color:#f33b45;">与CHAR区别见文末注释2</span><span style="color:#000000;">)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">实际存储大小</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">0~65535字节</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">TEXT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">文本</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;"><span style="color:#000000;">实际存储大小</span></span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">0~65535字节</span></td> </tr> <tr> <td style="vertical-align:middle;width:126pt;"><span style="color:#000000;">LONGTEXT</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">长文本</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;"><span style="color:#000000;">实际存储大小</span></span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"><span style="color:#333333;">0~2^32-1字节</span></td> </tr> <tr> <td colspan="4" style="text-align:center;vertical-align:middle;"><span style="color:#000000;">日期数据类型</span></td> </tr> <tr> <td style="text-align:left;vertical-align:middle;width:126pt;"><span style="color:#000000;">DATE</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">存储日期值(yyyy-MM-dd)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">3个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;">1000-01-01~9999-12-31<span style="color:#000000;"> </span></td> </tr> <tr> <td style="text-align:left;vertical-align:middle;width:126pt;"><span style="color:#000000;">TIME</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">存储时分秒(HH:mm:ss)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">3个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;">00:00:00~23:59:59<span style="color:#000000;"> </span></td> </tr> <tr> <td style="text-align:left;vertical-align:middle;"><span style="color:#2f2f2f;">DATETIME</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">存储日期+时间(yyyy-MM-dd HH:mm:ss)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">8个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;"> <p>1000-01-01 00:00:00~</p> <p>9999-12-31 23:59:59</p> </td> </tr> <tr> <td style="text-align:left;vertical-align:middle;width:126pt;"><span style="color:#000000;">TIMESTAMP</span></td> <td style="text-align:left;vertical-align:middle;width:329pt;"><span style="color:#000000;">存储日期+时间,可作时间戳(yyyy-MM-dd HH:mm:ss)</span></td> <td style="vertical-align:middle;width:155pt;"><span style="color:#000000;">4个字节</span></td> <td style="text-align:left;vertical-align:middle;width:138pt;">1970-01-01 00:00:01~<span style="color:#000000;"> </span>2038-01-19 03:14:07</td> </tr> </tbody> </table> 注释1: UTF-8 : 一个英文/数字字符占1个字节,一个中文(含繁体)字符占3个字节。 Unicode: 一个英文/数字字符占2个字节,一个中文(含繁体)字符占2个字节。 符号 : 英文标点占1个字节,中文标点占2个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。 注释2: char:固定长度,最大长度是255字符。适合用在身份证号码、手机号码等定、等长的加密密码等。 varchar:可变长度,最大长度65535字节,其实最多只能存储65532个字节,还有3个字节用于存储长度。 1)char的存取速度优于varchar 2)char(20)表示这个字段最多存20个字符,如果只存了16个字符,那么也会占用20个字符的空间 varchar(20)表示这个字段最多存20个字符,如果只存了16个字符,那么只占用16个字符的空间 3)即使使用Varchar数据类型,也不能够太过于慷慨!比如你只使用到90个字符,VARCHAR(100)与VARCHAR(200),虽然他们用来存储90个字符的数据,其存储空间相同。但是对于内存的消耗是不同的。
还没有评论,来说两句吧...