mysql的基本类型_mysql 的基本类型

整型

mysql 中存储整数,可以有如下几种

类型长度TINYINT8

SMALLINT16

MEDIUMINT24

INT32

BIGINT64

每种类型存储数据的范围从 −2N−1-2^{N-1}−2N−1 到 2N−1−12^{N-1} - 12N−1−1,其中N是存储空间的位数。

MYSQL 可以为整数类型制定宽度,例如INT(11)。这个对大多数应用都是没有意义的: 它不会限制值得合法范围,只是规定了 MYSQL 的一些交互工具(例如 MYSQL 的命令行客户端)用来显示字符的个数。对于存储和计算来说, INT(1)和INT(20)是相同的。

经过实践(可能是版本问题),并没有像上文说的有命令行客户度显示字符的个数的作用,创建表和查询表的结果如下:

CREATE TABLE `parameters` (

`id` int(4) unsigned NOT NULL,

`title` varchar(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

复制代码

mysql> select * from parameters;

+----------+--------+

| id | title |

+----------+--------+

| 1 | title |

| 1000 | title |

| 10000 | title |

| 10000000 | title |

+----------+--------+

复制代码

又在 stackoverflow查看了此问题, 其中说了 int(M)中的M对实际存储数据的长度并无影响,在展示的时候可能会有影响。如果对此字段增加了zerofill选项,那么不足长度M会使用 0 来进行填充,超过长度的并无影响。所以说在增加了填充选项的时候,int(M)中的 M 才发挥作用,但是其作用仅仅局限于客户端的展示,对实际存储的值并无影响。

CREATE TABLE `new_parameters` (

`id` int(4) unsigned zerofill NOT NULL,

`title` varchar(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8

复制代码

mysql> select * from new_new_parameters;

+-------+-------+

| id | title |

+-------+-------+

| 0001 | title |

| 10000 | title |

+-------+-------+

2 rows in set (0.00 sec)

复制代码

字符串

VARCHAR 类型用于存储可变长的字符串,是最常见的字符串数据类型。它比定长类型更节省空间,因为它仅适用必要的空间(例如,越短的字符串适用越少的空间)。VARCHAR 需要使用 1或 2 个额外的字节记录字符串的长度: 如果列的长度小于或等于 255 字节,则只使用1 字节表示,否则使用 2 个字节表示。这也是很多地方都用VARCHAR(255)的原因。

本文摘选自《高性能MySQL》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值