数据库的字段类型与TypeScript 中的数据类型的对应关系---数据库字段int对应number,数据库字段varchar对应string


前端与数据库交互时,通常需要将数据库的字段类型与 TypeScript 中的数据类型进行对应。不同数据库(如MySQL、PostgreSQL、MongoDB 等)有不同的数据类型,而 TypeScript的类型系统也有它自己的一套规则。
下面是常见数据库类型与 TypeScript 类型的对应关系。

省流

  • 小写字母版本
数据库类型TypeScript 类型
varchar, textstring
charstring
enumstring
int, integernumber
bigintbigint
decimal, numericnumber
float, doublenumber
datestring (iso 8601 format)
datetime, timestampstring (iso 8601 format)
timestring (hh:mm:ss format)
yearnumber
booleanboolean
tinyint(1)boolean
blob, binarybuffer
varbinarybuffer
jsonrecord<string, any> 或 object
uuidstring
  • 大写字母版本
数据库类型TypeScript 类型
VARCHAR, TEXTstring
CHARstring
ENUMstring
INT, INTEGERnumber
BIGINTbigint
DECIMAL, NUMERICnumber
FLOAT, DOUBLEnumber
DATEstring (ISO 8601 format)
DATETIME, TIMESTAMPstring (ISO 8601 format)
TIMEstring (HH:mm:ss format)
YEARnumber
BOOLEANboolean
TINYINT(1)boolean
BLOB, BINARYBuffer
VARBINARYBuffer
JSONRecord<string, any> 或 object
UUIDstring

详细对应关系

  • 字符串类型
数据库类型TypeScript 类型详情
varchar, textstring存储文本或字符串数据
charstring固定长度的字符串,通常在数据库中用于存储短文本,如邮政编码、状态码等
enumstring存储预定义的枚举值
  • 数字类型
数据库类型TypeScript 类型详情
int, integernumber用于存储整数类型数据
bigintbigint用于存储大整数类型数据,超出了 number 范围的整数
decimal, numericnumber用于存储带有小数部分的数字,通常用于金额等精确数值
float, doublenumber用于存储浮动小数点数,精度较低的浮动类型
  • 日期和时间类型
数据库类型TypeScript 类型详情
datestring (iso 8601 format)存储文本或字符串数据
datetime, timestampstring (iso 8601 format)日期,通常存储为字符串格式,YYYY-MM-DD
timestring (hh:mm:ss format)日期和时间,通常为 YYYY-MM-DDTHH:mm:ssZ 格式
yearnumber时间类型,表示时分秒
  • 布尔类型
数据库类型TypeScript 类型详情
booleanboolean存储 TRUE 或 FALSE 的布尔值
tinyint(1)boolean在一些数据库中,TINYINT(1) 被用作布尔值的表示方式
  • 二进制数据类型
数据库类型TypeScript 类型详情
blob, binarybuffer存储二进制数据,通常是图片、文件等
varbinarybuffer存储变长的二进制数据
  • JSON 类型
数据库类型TypeScript 类型详情
jsonrecord<string, any> 或 object用于存储 JSON 格式的数据(通常是一个对象)
  • UUID 类型
数据库类型TypeScript 类型详情
uuidstring存储 UUID 字符串,通常用于唯一标识符

注意与总结

  • 日期格式:在数据库中,日期和时间通常是以字符串的形式存储(例如 ISO 8601 格式),在 TypeScript 中,我们通常将它们表示为 string 类型。如果需要进行日期计算或操作,可以考虑使用 Date 类型,或者使用日期库(如 moment.js 或 date-fns)。

  • 精度问题:数据库中的 FLOAT 和 DOUBLE 类型可能会有精度问题,如果需要非常高的精度,考虑使用 DECIMAL 或 NUMERIC 类型。同时,TypeScript 中的 number 可能不适用于非常精确的数值计算,在这种情况下,推荐使用 BigDecimal 或 BigInt(对于整数)。

  • 类型转换:某些数据库会使用不同的方式表示布尔值(例如,MySQL 中 TINYINT(1)),这可能需要在程序中进行转换。在 TypeScript 中,boolean 类型对应的是 true 或 false。

  • 在 TypeScript 中,使用 number 来表示大多数数字类型(整数和浮动数值),而使用 string 来表示文本和日期类型。

  • 数据库中存储的 JSON 数据可以使用 Record<string, any> 或 object 来表示。

  • 特殊类型(如 UUID 和 BLOB)通常映射为 string 和 Buffer 类型。

  • 使用合适的类型确保数据结构和类型的正确性有助于避免运行时错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值