MySQL的数据类型详解

MySQL的数据类型详解

MySQL支持多种数据类型,这些数据类型用于定义表格中的列,以存储不同的数据。以下是一些常用的MySQL数据类型:

  1. 数值数据类型:
    • TINYINT:用于存储非常小的整数(1字节),其取值范围为:-128到127,无符号的范围是0到2551。
    • SMALLINT:用于存储小整数(2字节),其取值范围为:-32768到32767,无符号的范围是0到655351。
    • MEDIUMINT 中等整数(3字节),取值范围为:-8388608到8388607,无符号的范围是0到16777215。
    • INT:用于存储整数(4字节),其取值范围为:-2147483648到2147483647,无符号的范围是0到4294967295。
    • BIGINT:用于存储大整数(8字节)。其取值范围为:-9223372036854775808到9223372036854775807,无符号的范围是0到184467440737095516151。
    • FLOAT:用于存储单精度浮点数(4字节)。
    • DOUBLE:用于存储双精度浮点数(8字节)。
    • DECIMAL:用于存储精确的小数。存储空间并不是固定的,由精度值M决定,总共占用的存储空间为M+2个字节。
  2. 字符串数据类型:
    • CHAR:用于存储固定长度的字符串,字段长度范围是0到255。
    • VARCHAR:用于存储可变长度的字符串,可以根据存储的实际值来占用空间,创建表的时候指定最大长度,字段长度范围是0到65535。
    • TEXT:用于存储较大的文本数据,字段最大长度为65535个字符,并且通常存储在MyISAM和InnoDB存储引擎的单独的扩展文件中。
    • BINARY:用于存储二进制字符串,一般存储固定长度的二进制数据,最大长度为255个字节,字段使用二进制字符串存储数据,二进制字符串常用来表示图片、文件等二进制数据。
    • VARBINARY:用于存储可以改变长度的二进制字符串,最大长度为 65,535 个字节。
  3. 日期和时间数据类型:
    • DATE:用于存储日期,可以存储从’1000-01-01’到’9999-12-31’的日期值。
    • TIME:用于存储时间,可以存储从00:00:00到23:59:59的时间值。
    • DATETIME:用于存储日期和时间,DATETIME列通常由年、月、日、小时、分钟和秒组成。通常占用8个字节的存储空间,日期范围是1000——9999年,字段默认值为null。
    • TIMESTAMP:用于存储时间戳,常用于表示一个具体的时间戳,存储空间为4字节,时间范围是1970——2038年,字段默认不为空(not null),默认值为当前时间(CURRENT_TIMESTAMP)。
  4. 二进制数据类型:
    • BLOB:用于存储二进制数据,其最大长度为 65,535 个字节,BLOB类型没有固定长度,可以根据实际需要存储任意长度的二进制数据,例如图像、音频、视频等文件。需要注意的是,BLOB 类型的数据在存储和传输时可能会占用较大的空间,因此在设计数据库时需要谨慎使用。
    • TINYBLOB:用于存储非常小的二进制数据,存储 256 字节以下的数据,需要注意的是,将字符串值插入 TINYBLOB 列需要使用单引号将其括起来,以确保值被正确解释为二进制数据。
    • MEDIUMBLOB:用于存储中等大小的二进制数据,允许长度为0~16777215字节。
    • LONGBLOB:用于存储大量的二进制数据,允许长度为0~4294967295字节。
  5. 特殊数据类型:
    • ENUM:用于定义有限的可能值列表。
    • SET:用于定义多个可能的值,可以存储多于一个值。
    • YEAR:用于存储年份,具有特殊的格式。
  6. 枚举类型(ENUM): ENUM 允许您在预定义的集合中指定一个值,例如性别(男,女)。语法如下: ENUM(‘value1’, ‘value2’, ‘value3’, …) [DEFAULT ‘value’] [CHARACTER SET charset] [COLLATE collation]
  7. 集合类型(SET): SET 允许您在预定义的集合中指定一个或多个值,例如一周中的某几天(1-7)。语法如下: SET(‘value1’, ‘value2’, ‘value3’, …) [CHARACTER SET charset] [COLLATE collation]
  8. 年份类型(YEAR): YEAR 有两种格式,分别对应不同的范围和精度。具体如下: YEAR(2):表示年份,范围为 00-99,占用 2 个字节的存储空间。 YEAR(4):表示年份,范围为 1901-2155,占用 4 个字节的存储空间。
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值