首页 > 技术文章 > mysql 数据类型

bigcome 2018-11-14 09:27 原文

1.数值类型

  整数类型:

MySQL数据类型 含义(有符号)
tinyint(m) 1个字节  范围(-128~127)
smallint(m) 2个字节  范围(-32768~32767)
mediumint(m) 3个字节  范围(-8388608~8388607)
int(m) 4个字节  范围(-2147483648~2147483647)
bigint(m) 8个字节  范围(+-9.22*10的18次方)

     取值范围如果加了unsigned,则最大值翻倍,如tinyint unsigned的取值范围为(0~256)

     int(m)里的m是表示SELECT查询结果集中的显示宽度,并不影响实际的取值范围,没有影响到显示的宽度,不知道这个m有什么用

    默认m为11,zerofill 建表时参数,不够可以用0补充

  浮点类型:

    MySQL数据类型                   含义

       float(m,d)               单精度浮点型 8位精度(4字节) m总个数,d小数位
      double(m,d)             双精度浮点型 16位精度(8字节) m总个数,d小数位

  定点类型:

    以字符串形式存放,适合表示货币精度高的数据

    (M,D)默认整数10,小数0

    比浮点数更精确

  BIT位类型:

    查询时需要转换成bin()、hex()

    

2.日期时间类型

  MySQL数据类型         含义

  date           日期 '2008-12-2'
  time           时间 '12:25:36'
  datetime         日期时间 '2008-12-2 22:06:44'
  timestamp        自动存储记录修改时间    受时区影响  最大到2038年

 

3.字符串类型

  CHAR和VARCHAR类型:

    CHAR

      列的长度固定为创建表时声明的长度。长度可以为从0到255的任何值。当保存CHAR值时,在它们的右边填充空格以达到指定的长度。

      当检索到CHAR值时,尾部的空格被删除掉,所以,我们在存储时字符串右边不能有空格。在存储或检索过程中不进行大小写转换。

    VARCHAR

      值保存时只保存需要的字符数,另加一个字节来记录长度(如果列声明的长度超过255,则使用两个字节)。

         VARCHAR值保存时不进行填充。当值保存和检索时尾部的空格仍保留,符合标准SQL。

  BINARY和VARBINARY类型:

    存储的是二进制串

  text和blob:

  ENUM:

    选一

  SET:

    选多 64

    

 

推荐阅读