MySQL管理与优化(2):数据类型

一个人想着一个人 提交于 2020-03-26 21:35:45

3 月,跳不动了?>>>

数据类型

    1. 整数:

    

  • 若实际值超出对应类型范围,则会出现"Out of range"错误;整数类型通常会指定显示宽度,如int(5),不指定默认int(11), 若实际值不满改宽度则会自动前面补0(zerofill)。

    2.浮点数:

   

   3.定点数类型与位类型:

      

  • 定点数在MySQL中以字符串的形式存储,比浮点数更精确,可用于表示货币等高精度数据。
  • 浮点和定点数都可以(M,D)方式来表示,M表示显示M位数字(整数位+小数位),D位位于小数点后面,M和D又称为精度标度
  • 定点数默认默认精度为(10, 0), 超过精度会报错;而浮点数则根据实际值来显示。
  • 对于BIT(M)位类型,M取值为1~64,默认为1,表示存放的二进制位数,实际值超过范围,则插入失败。

   4.日期时间类型(MySQL5.0):

   

  • 对于TIMESTAMP, 表中第一个TIMESTAMP类型的字段的默认值为CURRENT_TIMESSTAMP, 且一张表中仅有一个字段默认值可以为CURRENT_TIMESSTAMP。
  • TIMESTAMP会与时区相关,存取都会经过本地时区转换,所以不同时区看到的日期时间会不同。
  • 存储时期时间时,对应的转换规则为:

    

    

    

   5.字符串类型(MySQL5.0)

   

1.CHARVARCHAR

  • CHAR长度不可变,范围为0~255, VARCHAR长度可变, 范围为0-65535;
  • 检索数据时,CHAR去除尾部的空格,VARCHAR保留尾部的空格

2.BINARYVARBINARY

  • 类似CHAR与VARCHAR, 但BINARY存储二进制字符串,当插入数据不足指定长度时,右边填充'\0'。

3.ENUM

  • ENUM类型的字段,其值范围在创建表时指定,1~255个成员存储1个字节,255~65535个成员存储2个字节,如:

      

4.SET

  • 与ENUM类型,其成员数为1~64,但其插入数据时,可以一次选多个值,有点checkbox的味道。

其他数据类型可以细查MySQL官方文档:

http://dev.mysql.com/doc/refman/5.7/en/data-types.html

MySQL数据类型及存储要求:

http://dev.mysql.com/doc/refman/5.0/en/storage-requirements.html

不吝指正。



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!