0
点赞
收藏
分享

微信扫一扫

MySQL支持的数据类型

曾宝月 2022-04-13 阅读 51
数据库

文章目录

1.1数值类型

1.1.1 整数类型

整数类型大小表数范围(有符号)表数范围(无符号)作用
TINYINT1字节-128~1270~255小整数值
SMALLINT2字节-32768~327670~65535大整数值
MEDIUMINT3字节-8388608~83886070~16777215大整数值
INT/INTEGER4字节-2147483648~21474836470~4294967295大整数值
BIGINT8字节-9233372036854775808~92233720368547758070~18446744073709551615极大整数值

注意:

  • INT与INTEGER是同一种数据类型
  • 每一种数据类型的表数范围可以根据所占字符数计算得出
  • 选择数据类型时,要根据实际需求确定数值的范围,从而确定最合适的数据类型。如果选择不当,则可能会出现“Out of range”的错误提示

1.1.2 浮点数和定点数

浮点数类型
浮点数类型大小作用
FLOAT4字节单精度浮点数值
DOUBLE8字节双精度浮点数值
定点数类型
定点数类型大小作用
DECIMAL(M,D)M+2精度较高的小数值

1.1.3 BIT类型

BIT类型大小作用
BIT(M)1~8字节位字段值

注意:在接下来创建表时,数字类型的选择应遵循如下原则:

  • 选择最小的可用类型,如果该字段的值不会超过127,则使用TINYINT比INT效果好
  • 对于完全都是数字的值,即无小数点时,可以选择整数类型,比如年龄
  • 浮点类型用于可能具有的小数部分的数,比如学生成绩
  • 在需要表示金额等货币类型时优先选择DECIMAL数据类型

1.2 日期和时间类型

类型格式0值
TIME‘HH:MM:SS’‘00:00:00’
DATE‘YYYY-MM-DD’‘0000-00-00’
YEAR‘YYYY’‘0000’
DATETIME‘YYYY-MM-DD HH:MM:SS’‘0000-00-00 00:00:00’
TIMESTAMP‘YYYY-MM-DD HH:MM:SS’‘0000-00-00 00:00:00’

注意:

  • 严格模式:STRICT_TRANG_TABLES。该模式下如果插入的数据不合法或者超出范围均会提示错误,插入数据不会成功
  • 非严格模式:该模式下如果插入的数据不合法或者合法但超出范围,只会给出警告,但会插入成功,插入的数据为0值或者边界值
  • MySQL中默认为严格模式,如果想要修改,可以在my.ini配置文件中去掉STRICT_TRANG_TABLES,并重新启动MySQL服务即可

1.2.1TIME类型

TIME类型专门用来存储时间数据,如果不需要记录日期而只需要记录时间,则选择TIEM类型时最合适的。

  • ‘HH:MM:SS’:其中HH表示小时,MM表示分钟,SS表示秒

1.2.2 DATE类型

DATE类型是专门用来存储日期数据的,如果执行要存储日期值而不需要时间部分,则应选择DATE类型。

  • ‘YYYY-MM-DD’:其中YYYY表示年,MM表示月,DD表示日

1.2.3 YEAR类型

YEAR类型只是用来表示年份的数据类型,MySQL中使用YYYY来检索和显示YEAR类型,其取值范围为1901~2155以及0000.

1.2.4 DATETIME类型

DATETIME类型适用于需要同事存储日期与时间的场合

1.2.5 TIMESTAMP类型

TIMESTAMP类型与DATETIME类型想死,都是存储日期与时间的。但取值范围要比DATETIME小。
注意:
TIMESTAMP与DATETIME的不同之处;

  • 数据的取值范围不同,TIMESTAMP类型的取值范围更小
  • 如果对TIMESTAMP类型的字段没有明确赋值,或是被赋予了NNULL值,MySQL会自动将该字段赋值为系统当前的日期月时间
  • TIMESTAMP类型还可以使用CURRENT_TIMESTAMP来获取系统当前时间
  • TIMESTAMP类型有一个显著的特点,那就是时间是根据时区来显示的

1.3 字符串类型

字符串类型大小描述
CHAR(M)0~255字节允许长度为0~M个字符的定长字符串
VARCHAR(M)0~65535字节允许长度为0~M个字符的变长字符串
BINARY(M)0~255字节允许长度为0~M个字符的定长二进制字符串
VARBINARY(M)0~255字节允许长度为0~M个字符的变长二进制字符串
TINYBLOB0~255字节二进制心事的短文本数据(长度为不超过255个字符)
TINYTEXT0~255字节短文本数据
BLOB0~65535字节二进制形式的长文本数据
TEXT0~65535字节长文本数据
MEDIUMBLOB0~16777215字节二进制形式的中等长度文本数据
MEDIUMTEXT0~16777215字节中等长度文本数据
LONGBLOB0~4294967295字节二进制形式的极大文本数据
LONGTEXT0~4294967295字节极大文本数据

1.4 JSON类型

JSON是一种轻量级的数据交换格式,采用了独立于语言的文本格式,类似于XML但是比XML简单,更易读且容易编写,对计算机来说易于解析和生成。

举报

相关推荐

0 条评论