MySQL的常用数据类型


数据类型

MySQL中常用的数据类型包括四种:数值类型、字符串类型、二进制类型和日期时间类型。二进制类型主要用于存储图片、音频、视频等二进制内容,但在实际使用中不会直接在数据库中存储二进制内容。

字符串类型

MySQL字符串分为char、varchar和text三种类型,每一种类型都有长度限制,若写入数据超过长度则无法写入。

  • char:定长字符串,默认长度为1,最大长度255。当写入字符数小于指定长度时,多余部分会使用空格填充,所以适合存储很短或长度相近的字符串,避免空间浪费。
  • varchar:变长字符串,varchar会根据字符串实际长度占用存储空间。varchar是字符串类型中使用最为广泛的数据类型。
  • text:文本类型,存储小于65535个字符的文本内容。通常用于存储新闻、博客、笔记等文本内容。

数值类型

数值类型分为整型数值与浮点型数值两类。整型数值可使用关键词unsigned修饰(例如:int unsigned)表示此字段只能存储非负整数,称为无符号整数。

1、整数类型:

  • int:4字节整数。表示范围为−231 ~ 231−1,无符号整数表示范围为0 ~ 232−1。
  • tinyint:1字节整数。表示范围为−128 ~ 127,无符号整数表示范围为0 ~ 255。
  • smallint:2字节整数。表示范围为−32768 ~ 32767,无符号整数表示范围为0 ~ 65535。
  • mediumint:3字节整数。表示范围为−223 ~ 223−1,无符号整数表示范围为0 ~ 224−1。
  • bigint:8字节整数。表示范围为−263 ~ 263−1,无符号整数表示范围为0 ~ 264−1。

2、浮点数类型:

  • float:4字节单精度浮点数。定义float类型数据时通常会指定数字最大位数及小数点后的位数。
  • double:8字节双精度浮点数。定义double类型数据时通常会指定数字最大位数及小数点后的位数。
  • decimal:用于存储精确的小数值,避免浮点数的精度损失问题。decimal类型数据同样需要指定数字最大位数及小数点后的位数。

日期时间类型

日期时间类型分为date、time、datetime、timestamp和year五种类型,可以表示年份、日期、时间和日期时间。

  • year:存储四位数字的年份。表示的年份范围为1901 ~ 2155。
  • date:3字节日期。表示的日期范围为1000−01−01 ~ 9999−12−31。
  • time:3字节时间。表示的时间范围为−838:59:59 ~ 838:59:59。
  • datetime:8字节日期时间。表示的范围为1000−01−01 00:00:00 ~ 9999−12−31 23:59:59。
  • timestamp:4字节时间戳,表示的范围为1970−01−01 00:00:01 ~ 2038−01−19 03:14:07。

枚举类型

当需要某个字段只接受预定义的值时,可以使用枚举enum类型:enum(选项1,选项2,...),例如性别字段可使用枚举类型enum('男','女'),只接受'男'和'女'两个值。

使用示例

1、数据表的字段类型通常在创建表时定义。

mysql

2、对已存在的表可使用alter语句的modify指令修改字段类型。

mysql

发表评论

评论数量:0