- Published on
数据库数据类型
- Authors

- Name
- MissTree
数值类型
| 数值类型 | 大小 | 有符号(SIGNED)范围 | 无符号(UNSIGNED)范围 | 描述 |
|---|---|---|---|---|
| TINYINT | 1 byte | (-128, 127) | (0,255) | 小整数值 |
| SMALLINT | 2 bytes | (-32768,32767) | (0,65535) | 大整数值 |
| MEDIUMINT | 3 bytes | (-8388608,8388607) | (0,16777215) | 大整数值 |
| INT或INTEGER | 4 bytes | (-2147483648,2147483647) | (0,4294967295) | 大整数值 |
| BIGINT | 8 bytes | (-2^63,2^63-1) | (0,2^64-1) | 极大整数值 |
| FLOAT | 4 bytes | (-3.402823466 E+38,3.402823466351 E+ 38) | 0和(1.175494351 E-38,3.402823466E+38) | 单精度浮点数值 |
| DOUBLE | 8 bytes | (-1.7976931348623157 +308,1.7976931348623157 E+308) | 0和(2.2250738585072014-308,1.7976931348623157 +308) | 双精度浮点数值 |
| DECIMAL | - | 依赖于M(精度)和D(标度)的值 | 依赖于M(精度)和D(标度)的值 | 小数值(精确定点数) |
字符串类型
| 类型 | 大小 | 描述 |
|---|---|---|
| CHARE | 0-255 bytes | 定长字符串 |
| VARCHAR | 0-65535 bytes | 变长字符串 |
| TINYBLOB | 0-255 bytes | 不超过255个字符的二进制数据 |
| TINYTEXT | 0-255 bytes | 短文本字符串 |
| BLOB | 0-65 535 bytes | 二进制形式的长文本数据 |
| TEXT | 0-65 535 bytes | 长文本数据 |
| MEDIUMBLOB | 0-16 777 215 bytes | 二进制形式的中等长度文本数据 |
| MEDIUMTEXT | 0-16 777 215 bytes | 中等长度文本数据 |
| LONGBLOB | 0-4 294 967 295 bytes | 二进制形式的极大文本数据 |
| LONGTEXT | 0-4 294 967 295 bytes | 极大文本数据 |
对于 chare 和 varchar 类型,在定义字符串长度的时候,若是变量小于定义的长度,chare类型后面会显示空格,varchar类型 mysql 会在存储时删除末尾的空格。例如:在给名字定义类型的时候最好使用 varchar 类型,因为名字长度是不固定的。对于性别来说,最好使用 chare 类型,因为性别只有男和女两种。但是在性能对比上,chare 类型的性能要比 varchar 类型的性能要高,因为长度固定,比较稳定。
对于二进制类型和文本类型,看情况定义,长文本和长二进制数据基本不会在数据库中使用。不好管理和性能较差,像媒体文件一般另外用服务器存储
日期和时间类型
| 类型 | 大小 | 格式 | 范围 | 描述 |
|---|---|---|---|---|
| DATE | 3 bytes | YYYY-MM-DD | 1000-01-01/9999-12-31 | 日期值 |
| TIME | 3 bytes | HH:MM:SS | -838:59:59至838:59:59 | 时间值或持续时间 |
| YEAR | 1 bytes | YYYY | 1901至2155 | 年份值 |
| DATETIME | 8 bytes | YYYY-MM-DD HH:MM:SS | 1000-01-01 00:00:00至9999-12-3123:59:59 | 混合日期和时间值 |
| TIMESTAMP | 4 bytes | YYYY-MM-DD HH:MM:SS | 1970-01-01 00:00:01至2038-01-19 03:14:07 | 混合日期和时间值,时间戳 |