手机号是用bigint还是用varchar存储

本文探讨了bigint和int数据类型的存储范围,以及varchar用于存储手机号的原因,包括其动态内存分配、长度限制和在处理手机号特殊格式上的优势。同时提及了在32位应用中bigint可能遇到的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、数字类型存储范围
bigint

从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。 19位数字

对于无符号 BIGINT 类型,取值范围为 0 到 18446744073709551615。20位数字。

int

一个正常大小整数。有符号的范围是-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)10位数字,无符号的范围是0到4294967295。10位数字 一位大小为 4 个字节。

2、varchar数据存储范围
使用动态内存分配来存储数据,上限为 0 到 65535 位之间的定义限制

使用varchar类型存储手机号的原因。

1.话号码的长度最多为十五 (15) 位,根据国际电信联盟,字符串类型 CHAR、VARCHAR 或 TINYTEXT 是最佳考虑因素

2.字符串可以通过LINK去匹配,查询很方便。

3.字符串可以去匹配尾号或者首号。

4.在32位的某些应用中,bigint太大,会溢出,要进行各种转换,很麻烦。

5.手机号可能有-(座机),用int存不了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值