以下分别将 Oracle 和 MySQL 常见的数据类型以表格形式呈现,包含类型、大小、详解及运用场景。
Oracle 数据类型
类别 | 数据类型 | 大小 | 详解 | 运用场景 |
---|---|---|---|---|
数值类型 | NUMBER(p, s) |
最大可存储 38 位精度。存储大小取决于 p 和 s ,最多 22 字节 |
p 表示精度(数字总位数),s 表示小数位数。可存储整数和小数 |
财务数据计算,如货币金额、税率等需要精确计算的场景 |
数值类型 | BINARY_FLOAT |
4 字节 | 单精度浮点数类型,用于存储近似数值 | 科学计算、工程计算等对精度要求不是极高,但需处理大量数据的场景 |
数值类型 | BINARY_DOUBLE |
8 字节 | 双精度浮点数类型,用于存储近似数值 | 科学计算、工程计算等对精度要求不是极高,但需处理大量数据的场景 |
字符类型 | VARCHAR2(size) |
最大 4000 字节(如果使用 CLOB 则可达 128TB) | 可变长度的字符类型,存储的数据长度可小于 size |
存储长度不固定的字符串,如姓名、地址、文章内容等 |
字符类型 | CHAR(size) |
最大 2000 字节 | 固定长度的字符类型,如果存储的数据长度小于 size ,会用空格填充 |
存储长度固定的字符串,如身份证号码、邮政编码、性别等 |
日期和时间类型 | DATE |
7 字节 | 存储日期和时间信息,精确到秒 | 存储各种日期和时间相关的数据,如订单日期、生日、会议时间等 |
日期和时间类型 | TIMESTAMP |
7 - 11 字节(取决于小数秒精度) | 比 DATE 类型更精确,可以存储小数秒 |
需要更高时间精度的场景,如记录事件发生的精确时间、系统操作的时间戳等 |
大对象类型 | CLOB |
最大 128TB | 存储单字节和多字节字符数据的大型对象 | 存储大量文本数据,如文章、书籍内容、日志信息等 |
大对象类型 | BLOB |
最大 128TB | 存储二进制数据的大型对象 | 存储图像、音频、视频等二进制文件 |
MySQL 数据类型
类别 | 数据类型 | 大小 | 详解 | 运用场景 |
---|---|---|---|---|
数值类型 | TINYINT |
1 字节 | 有符号范围 -128 到 127,无符号范围 0 到 255 | 存储小范围整数,如标志位(0 或 1)、小型计数等 |
数值类型 | SMALLINT |
2 字节 | 有符号范围 -32768 到 32767,无符号范围 0 到 65535 | 存储较小范围的整数,如年龄、小型数量统计等 |
数值类型 | MEDIUMINT |
3 字节 | 有符号范围 -8388608 到 8388607,无符号范围 0 到 16777215 | 存储中等范围的整数 |
数值类型 | INT |
4 字节 | 有符号范围 -2147483648 到 2147483647,无符号范围 0 到 4294967295 | 存储常见的整数,如数量、用户 ID、产品 ID 等 |
数值类型 | BIGINT |
8 字节 | 有符号范围 -9223372036854775808 到 9223372036854775807,无符号范围 0 到 18446744073709551615 | 存储极大范围的整数,如大型计数、时间戳等 |
数值类型 | DECIMAL(p, s) |
取决于 p 和 s ,大致为 (p + 2) / 2 字节 |
p 表示精度,s 表示小数位数,用于存储精确的小数 |
财务数据,如商品价格、账户余额等需要精确计算的场景 |
字符类型 | VARCHAR(length) |
长度 + 1 或 2 字节(取决于最大长度是否超过 255) | 可变长度的字符类型 | 存储长度不固定的字符串,如文章标题、评论内容、用户名等 |
字符类型 | CHAR(length) |
length 字节 |
固定长度的字符类型 | 存储长度固定的字符串,如性别('M' 或 'F')、状态码、简短代码等 |
日期和时间类型 | DATE |
3 字节 | 存储日期,格式为 YYYY - MM - DD |
只需要存储日期信息的场景,如出生日期、注册日期、活动日期等 |
日期和时间类型 | DATETIME |
8 字节 | 存储日期和时间,格式为 YYYY - MM - DD HH:MM:SS |
需要同时记录日期和时间的场景,如订单创建时间、登录时间、事件发生时间等 |
日期和时间类型 | TIMESTAMP |
4 字节 | 存储日期和时间,范围比 DATETIME 小,会自动更新为当前时间戳 |
记录数据的最后修改时间,如数据更新时间戳 |
大对象类型 | TEXT |
最大 65535 字节(TINYTEXT 为 255 字节,MEDIUMTEXT 为 16777215 字节,LONGTEXT 为 4294967295 字节) |
存储大量文本数据 | 存储文章内容、长描述、日志等大段文本信息 |
大对象类型 | BLOB |
最大 65535 字节(TINYBLOB 为 255 字节,MEDIUMBLOB 为 16777215 字节,LONGBLOB 为 4294967295 字节) |
存储二进制数据 | 存储图像、音频、视频等二进制文件 |
我的SQL专栏中有对上述参数详细的示例,可移步阅读。