如何在SQL中创建地址变量?用什么类型存储混合文字数字的地址?
SQL存储混合文字与数字的客户地址适用字段类型
针对包含中文/字母、数字、特殊符号的混合地址内容,不同场景下可选的SQL字段类型如下:
- 绝大多数场景优先选
VARCHAR类型:属于可变长度字符串类型,天然支持混合存储各类字符、数字、符号。你可以根据业务需要调整字段长度上限,国内民用地址通常设置VARCHAR(200)就足够覆盖省、市、区、街道、门牌号、单元室号全量内容,相比固定长度的CHAR类型更节省存储空间。 - 如果使用MySQL、PostgreSQL这类支持字符集配置的数据库,建议给
VARCHAR字段指定utf8mb4字符集,比如VARCHAR(200) CHARSET utf8mb4,可以避免生僻地名、特殊符号出现乱码问题。 - 若业务需要存储长度不确定的地址(比如跨国长地址、带额外备注的地址),可以选用
TEXT类型,无需提前设置长度上限,唯一缺点是部分数据库中TEXT类型无法直接创建普通索引,查询效率略低于固定长度上限的VARCHAR类型。
避坑提示:不要使用固定长度的
CHAR类型存储地址,地址长度差异极大的场景下会浪费大量存储空间;也不需要拆分地址中的数字和文字分开存,反而会额外增加业务读写逻辑的复杂度。
内容的提问来源于stack exchange,提问作者Archit Chawla
相关产品推荐
相关产品推荐

