大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说MySQL数据库中的数据类型与Java中对应记忆_请列举MySQL中常见的数据类型,希望您对编程的造诣更进一步.
整数类型
标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩展支持了 TINYINT、MEDIUMINT 和 BIGINT
整数类型 | 字节数 | 无符号数的取值范围 | 有符号数的取值范围 |
---|---|---|---|
TINYINT | 1 | (0,255) | (-128,127) |
SMALLINT | 2 | (0,65535) | (-32768,32767) |
MEDIUMINT | 3 | (0,16777215) | (-8388608,8388607) |
INT | 4 | (0,4294967295) | (-2147483648,2147483647) |
INTEGER | 4 | (0,4294967295) | (-2147483648,2147483647) |
BIGINT | 8 | (0,18446744073709551615) | (-9223372036854775808,9223372036854775807) |
浮点数类型和定点数类型
数据表中用浮点数类型和定点数类型来表示小数,浮点数类型包括单精度浮点数(FLOAT)和双精度浮点数(DOUBLE),定点数类型就是 DECIMAL
类型 | 字节数 | 负数的取值范围 | 非负数的取值范围 |
---|---|---|---|
FLOAT | 4 | (-3.402823466E+38,-1.175494351E-38) | 0,(1.175494351E-38,3.402 823466E+38) |
DOUBLE | 4 | (-1.7976931348623157E+308,-2.2250738585072014E-308) | 0,(2.2250738585072014E-308,1.7976931348623157 E+308) |
DECIMAL(M,D) | M+2 | 取决于 M 和 D | 取决于 M 和 D |
FLOAT 和 DOUBLE 类型存储数据时存储的是近似值,DECIMAL 存储的是字符串,因此提供了更高的精度。在金融系统中,表示货币金额的时候会优先考虑 DECIMAL 类型;在一般的价格体系,比如购物平台的商品标价,一般用 FLOAT 类型即可
日期和时间类型
每种日期与时间类型都有一个有效范围如果插入的值超过这个范围,系统就会报错,并将零值插入到数据库
类型 | 字节数 | 取值范围 | 零值 |
---|---|---|---|
YEAR | 1 | 1901 ~ 2155 | 0000 |
DATE | 4 | 1000-01-01 ~ 9999-12-31 | 0000:00:00 |
TIME | 3 | -838:59:59 ~ 838:59:59 | 00-00-00 |
DATETIME | 8 | 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59 | 0000-00-00 00:00:00 |
TIMESTAMP | 4 | 19700101080001 ~ 2038011911407 | 00000000000000 |
字符串类型
1. CHAR 和 VARCHAR 类型
CHAR 类型和 VARCHAR 类型都在创建表时指定了最大长度,CHAR 类型的长度是固定的,其长度可以是 0 ~ 255 的任意值。而 VARCHAR 类型的长度是可变的,其最大值可以取 0 ~ 65535 之间的任意值,VARCHAR 类型实际占用的空间为字符串的实际长度加一,这样可以有效节约系统的空间
2. TEXT 类型
TEXT 类型是一种特殊的字符串类型,各种 TEXT 类型的区别在于允许的长度和存储空间不同
类型 | 允许的长度 | 存储空间 |
---|---|---|
TINYTEXT | 0-255 | 值的长度+2个字节 |
TEXT | 0-65535 | 值的长度+2个字节 |
MEDIUMTEXT | 0-16772150 | 值的长度+3个字节 |
LONGTEXT | 0-4294967295 | 值的长度+4个字节 |
3. ENUM 类型
ENUM 类型又称枚举类型,在创建表时,ENUM 类型的取值范围以列表的形式指定
属性名 ENUM("值1", "值2", ..., "值n")
- 属性名:指字段的名称
- 值n:表示列表中的第 n 个值
ENUM 类型的值只能取列表中的某一个元素,取值列表最多能有 65535 个值。列表中的每个值独有一个顺序排列的编号,MySQL 存入的是这个编号,而不是列表中的值
如果 ENUM 类型加上了 NOT NULL 属性,其默认值为取值列表的第一个元素。如果不加 NOT NULL 属性,ENUM 类型将允许插入 NULL,而且 NULL 为默认值
4. SET 类型
在创建表时,SET 类型的取值范围就以列表的形式指定了
属性名 SET("值1", "值2", ..., "值n")
参数和 ENUM 一致,SET 类型的值可以取列表中的一个或多个元素,取多个元素时,不同元素之间用逗号隔开,SET 类型的值最多只能是由 64 个元素构成的组合
二进制类型
二进制型是存储二进制数据的数据类型
类型 | 取值范围 |
---|---|
BINARY(M) | 字节数为M,允许长度为0~M的定长二进制字符串 |
VARBINARY (M) | 允许长度为0~M的变长二进制字符串,字节数为值的长度加1 |
BIT(M) | M位二进制数据,M最大值为64 |
TINYBLOB | 可变长二进制数据,最多255个字节 |
BLOB | 可变长二进制数据,最多(2^16-1)个字节 |
MEDIUMBLOB | 可变长二进制数据,最多(2^24-1)个字节 |
LONGBLOB | 可变长二进制数据,最多(2^32-1)个字节 |
1. BINARY 和 VARBINARY 类型
BINARY 类型的长度是固定的,不足最长长度的空间有 “