数据库中身份证有18位,用什么类型表示

ID 卡是 1 8 位数字,因此使用 char(1 8 ) 可以节省空间。
随后的空格填充是固定操作。

数据库中电话号码和身份证用什么数据类型

嘿嘿,让我来告诉你我曾经陷入的陷阱。
前年的一个项目中,有哥们坚持将电话号码存储为数字类型。
结果如何?后来我想按地区筛选客户时,我很困惑,因为模糊匹配不能直接用在数字类型上。
最后我只好帮他改回来,用Varchar保存。
想想存储这么多数字然后将它们转换为字符串并捕获前三位数字是多么乏味。

还有一个身份证号码。
去年有一个客户系统必须保存为号码。
结果呢?他在身份证号码中间截取了出生日期,使数据变得混乱。
最后只能加上一系列逻辑判断才能正确提取出来。
这次威力也降低了。
因此,对于电话号码和身份证之类的内容,您必须使用 Varchar。
这些事情想都别想计算。
你根本不能那样做。

建立SQL数据库,其中有个身份证的字段,该用什么数据类型。

char(1 8 ) 最适合。
ID号码固定为1 8 位。

Char类型存储固定长度的数据。
可以快速检查数据。

varchar 有两个额外的字节来存储长度。
null 值不占用 varchar 空间。

可以快速将空值插入到varchar中。
字符很慢。

数据字符更新缓慢。
索引构建有很大差异。

改变char类型比较耗时。
varchar 很快。

检索 varchar 稍微快一些。

SQL字符型与数值型是什么

说实话,当我第一次学习SQL时,字符和数字这两种数据类型让我很困惑。
给我印象最深的是帮助企业建立小型客户管理系统。
起初我不明白定长字符和变长字符的区别。

当时我面临一个场景,需要存储身份证号。
最好是1 8 位固定长度,所以最好使用固定长度的字符串。
但事实证明,部分用户填写错误,多了一个字符。
数据库直接通过补空格来处理。
即使是真的,看起来也很尴尬。
查阅资料后发现,长字符串在读取效率上还是有优势的,但是使用太多很容易浪费空间。
我们最终转换为可变长度字符串。
虽然性能测试显示查询速度慢了0.3 毫秒,但存储空间却节省了一半以上。

有趣的是浮点类型。
我以前做过电商项目,在处理定价的时候差点出事。
当时我用FLOAT省了0.9 9 元。
计算的时候突然发现是0.9 8 8 8 后来我发现这是一个准确性问题。
FLOAT本质上是一种二进制表示形式,对小数点后的位数有限制。
最后,使用DECIMAL(1 0,2 ),指定精度和小数位数,金额计算就会准确。
现在回想起来,数据类型的选择确实需要根据实际场景而定,不能掉以轻心。

我对十进制格式并没有特别印象,但我记得当时的一位同事抱怨说使用 DECIMAL 表示货币金额占用了太多空间。
说实话,当时我并不明白这一点。
它比 FLOAT 差吗?然后我发现即使空格比较大,DECIMAL在导出财务报表的时候也能保证小数点对齐,对齐非常重要。

数据类型不仅仅需要选择。
您需要知道为什么选择它们。
例如,年龄在整数类型中很明显,但有时用户会填写“2 8 .5 岁”。
目前,使用浮点类型有点奇怪。
因此,现在在选择类型之前,我总是问自己:这些数据可能具有什么价值?最大值和最小值是多少?有小数吗?用户在填写表单时会犯错误吗?问完这些问题之后,选择就会变得更加清晰。