MySQL 数据类型

        本文以MySQL8为例,MySQL支持所有SQL标准 种的 数字数据类型,主要支持数值类型、日期和时间类型、字符串(字符和字节)类型、空间类型和 JSON数据类型。

1.  数值类型

         MySQL数值类型包括整型数值(TINYINTSMALLINT、 MEDIUMINT、INTBIGINT),定点类型(DECIMAL),浮点类型(DOUBLE、FLOAT),位值类型(BIT)。

     1.1 整型类型(精确值)

        MySQL支持 SQL 标准整数类型 INTEGER(或INT)和 SMALLINT。作为标准的扩展,MySQL 还支持整数类型 TINYINTMEDIUMINT和 BIGINT。      

数据类型占用空间(字节)取值范围(有符号)取值范围(无符号)
TINYINT1-128到1270到255
SMALLINT2-32768到327670到65535
MEDIUMINT3-8388608到83886070到16777215
INT4-2147483648到21474836470到4294967295
BIGINT8-9223372036854775808到92233720368547758070到18446744073709551615

    注意:开发中常见写法INT(N),不管N是多少,INT占用的都是4个字节;另外N显示的是宽度,不足的时候补0,超过的无视长度,直接显示数值。必须要设置unsigned zerofill才生效。

       1.2  定点类型(精确值)

      DECIMALNUMERIC类型存储精确的数字数据值 ,在MySQL中,NUMERIC被实现为DECIMAL。它是以二进制格式存储值。可以通过指定精度和小数位数来达到自己想要的数值。例如:

DECIMAL(5,2) 其中5指的是精度,2是比例,可以理解取值范围为-999.99到999.99。

数值类型占用空间(字节)取值范围
DECIMAL对DECIMAL(M,D) ,如果M>D,为M+2;否则为D+2依赖M和D

  1.3 浮点类型(近似值)

      MySQL中对FLOAT(单精度值)使用四个字节,对DOUBLE(双精度值)使用八个字节。

数据类型占用空间(字节)取值范围(有符号)取值范围(无符号)
FLOAT4 -3.402823466 E+38到-1.175 494 351 E-38  ,0,
1.175494351E到383.402823466351 E+38
0,1.175494351E到383.402823466 E+38
DOUBLE8-1.7976931348623157 E+308到2.2250738585072014E-308,0,2.2250738585072014E到3081.7976931348623157E+308)0,2.2250738585072014E到3081.7976931348623157E+308

    1.4  位值类型

      MySQL中BIT数据类型用于存储位值,范围从1到64。

2. 日期和时间类型

      MySQL中日期和时间类型有DATE、TIME、DATETIME、TIMESTAMP、YEAR。

数据类型占用空间(字节)取值范围格式
DATE31000-01-01到9999-12-31YYYY-MM-DD
TIME3-838:59:59到838:59:59HH:MM:SS
YEAR11901到2155YYYY
DATETIME81000-01-01 00:00:00到9999-12-31 23:59:59YYYY-MM-DD HH:MM:SS
TIMESTAMP4

1970-01-01 00:00:00到2038

结束时间是第 2147483647 秒,北京时间 2038-1-19 11:14:07,格林尼治时间 2038年1月19日 凌晨 03:14:07

YYYYMMDD HHMMSS

3. 字符串类型

      MySQL中字符串数据类型有VARCHAR、CHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM、SET。

数据类型占用空间(字节)说明
CHAR0到255定长字符串
VARCHAR0到65535变长字符串
TINYBLOB0到255不超过 255 个字符的二进制字符串
BLOB0到65535二进制形式的长文本数据
TINYTEXT0到255短文本字符串
TEXT0到65535长文本数据
MEDIUMBLOB0到16777215二进制形式的中等长度文本数据
MEDIUMTEXT0到16777215中等长度文本数据
LONGBLOB0到4294967295二进制形式的极大文本数据
LONGTEXT0到4294967295极大文本数据
ENUM1或2枚举类型,只能有一个枚举字符串值取决于枚举值的数目 (最大值为65535)
SET、2、3、4或8一个设置,字符串对象可以有零个或 多个SET成员,取决于集合 成员的数量(最多64个成员)
BINARY(M)M固定长度二进制字符串
VARBINARY(M)M+1可变长度二进制字符串

4. 空间类型

      MySQL 具有对应于 OpenGIS 类的空间数据类型。单值类型GEOMETRY、POINT、LINESTRING、POLYGON,它们的值限制为特定的几何类型。其他集合值包括MULTIPOINT、MULTILINESTRING、MULTIPOLYGON、GEOMETRYCOLLECTION。

5. JSON数据类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值