MySQL 数据(字段)类型
16lz
2021-01-22
MySQL 数据(字段)类型
在创建表的时候,要明确定义字段对应的数据类型。MySQL 主要的数据类型分为数值类型、字符串(文本)类型、时间日期类型和其他类型几类。
数值类型
类型 | 说明 | 例子 |
---|---|---|
tinyint | 存储范围:-128至127或0至255 | tinyint(1) |
smallint | 存储范围:-32768至32767或0至65535 | smallint(3) |
mediumint | 存储范围:- 8388608至8388607或0至16777215 | mediumint(5) |
int | 存储范围:- 2147483648至2147483647或0至4294967295 | int(10) |
bigint | 存储范围:- 9223372036854775808至9223372036854775807或0至18446744073709551615 | bigint(10) |
float | 最小非零值:±1.175494351E – 38,同double一样适用于精度要求高的场合 | float(3,1) |
double | 最小非零值:±2.2250738585072014E - 308 | double(10,5) |
decimal | 取值范围可变,以来括号内的显示尺寸和小数点位数而定,适用于对精度要求不高但准确度要求非常高的场合 | decimal(10,2) |
补充说明
- 在 int(integer) 系列中,只能存储整型值,且可以在后面用括号指定显示的尺寸(M),如果不指定则会默认分配。如果实际值的显示宽度大于设定值,将会显示实际值而不会截断以适应显示尺寸。如 smallint(3) 中的 3 即为显示尺寸,即显示三位的数值(不包括 - 号)
- int 类型可以指定 UNSIGNED 属性,即无符号(非负),所以存储范围有两种
- 在 float、double 及 decimal 类型中,不能指定 UNSIGNED 属性,其显示尺寸包含了小数点精度(D),即 float(3,1) 保存范围为 -99.9 至 99.9
- decimal 必须指定显示尺寸(M)和小数点精度(D),float 和 double 都是可选的
- 在可能涵盖取值范围的基础上,尽可能选择较小的类型以提高效率和节约存储空间,如年龄,就选择 tinyint(3) 。该原则对于字符类型同样适用
字符串(文本)类型
类型 | 说明 | 例子 |
---|---|---|
char | 支持固定长度的字符串, 最大长度是 255 个字符 | char(100) |
varchar | 支持可变长度的字符串, 最大长度是 65535 个字符 | varchar(1000) |
tinytext | 支持可变长度的字符串,最大长度是 255 个字符 | tinytext |
text blob |
支持可变长度的字符串,最大长度是 65535 个字符 | text |
mediumtext mediumblob |
支持可变长度的字符串,最大长度是 16777215 个字符 | mediumtext |
longtext longblob |
支持可变长度的字符串,最大长度是 4294967295 个字符 | longtext |
enum | 枚举类型,可存储最多65535 个成员,常用于取值是有限而且固定的场合 | enmu("男","女") |
set | 集合类型,可存储最多64个成员 | set("value1","value2", ...) |
补充说明
char 和 varchar需要指定长度,不同的是,char 存储时总是按照指定的长度储存,而 varchar 则根据实际字符串长度再加上一个字节分配空间。
时间日期类型
类型 | 说明 | 例子 |
---|---|---|
date | YYYY-MM-DD 格式表示的日期值 | date |
time | hh:mm:ss 格式表示的时间值 | time |
datetime | YYYY-MM-DD hh:mm:ss 格式表示的日期和时间值 | datetime |
timestamp | YYYYMMDDhhmmss 格式表示的时间戳值 | timestamp |
year | YYYY 格式表示的年份值 | year |
更多相关文章
- mysqli_query中的最大查询长度。
- 如何使用PDO从MySQL获取正确的数据类型?
- MySQL查询优化系列讲座之数据类型与效率
- 在平台上获取,可移植,更大和更快(无符号)的整数类型
- js 不同类型var的boolean运算验证
- 输入类型=日期的日期显示为dd-mm-yyyy格式
- JavaScript数据类型的一些注意点(2)
- WebKit "拒绝设置不安全的标题'内容长度' "
- javascript中的属性类型