mysql 列类型概述

1.数值类型

(1)整型

                   mysql 列类型概述

        int系列的数值类型声明时的参数包括 unsigned 、(M)、zerofill

  •    unsigned 表示无符号,即只有正数
  • (M)指定整数值的显示宽度。当和zerofill 配合使用时,表示零填充的位数
  •    zerofill  表示零填充,默认补充的空格用零代替。如果为一个数值列指定zerofill,MySQL自动为该列添加unsigned属性,因为负数一般不需要零填充。

(2)小数型

        浮点型系列的数值类型声明时的参数包括 float(M,D)、decimal(M,D)

  • M叫精度,代表总位数(包括小数点前后所有的位数)
  • D叫标度,代表小数位(小数点后面的位数)
  • 当M<24,M占4个字节,否则占8个字节
  • decimal 同样用来表示小数,他叫定点,是把整数和小数分开存储的,比float更精确

 

2.字符串类型

                 这里主要分析 char varchar text blob

  • char(M) 是定长字符串,其中M表示列长度,取值范围为0~255,对于定长M来说,无论它是否占满M,都会用空格补齐(取数据时再将空格删掉),因此存在数据丢失风险,即如果数据右侧有空格,则取出时不会将空格取出。同时,由于它是定长,查询记录时可以很快确定偏移量,因此效率较高。
  • varchar(M) 是变长字符串,M表示最大列长度,取值范围为0~65535,它不存在用空格填充,字符串本身多大,它就占多大的长度。为了缩短查询的时间,它存储时用一个或两个字节的前缀,表示当前字符串的长度,当M>255时,字节前缀为2个字节,否则为一个字节,vachar速率不及char。
  • text 是文本类型,存储较大的文本段,查询搜索速度较慢,声明text列时,不必给默认值。
  • blob (Binary Large Object) 是二进制类型,它就是使用二进制保存数据,用来存储图像、音频等二进制信息。

3.日期和时间类型

类型 字节数 说明 标准格式

YEAR

1 年份 YYYY

DATE

3 日期 YYYY-MM-DD

TIME

3 时间 HH:MM:SS

TIMESTAMP

4 时间戳

00000000000000

DATETIME

8 日期时间 YYYY-MM-DD HH:MM:SS

        注:TIMESTAMP列的显示格式与DATETIME列相同。换句话说,显示宽度固定在19字符,并且格式为YYYY-MM-DD HH:MM:SS。

        只有将其默认值定义为CURRENT_TIMESTAMP,该列才可以自动更新时间,

        例:

                                              mysql 列类型概述

                                              mysql 列类型概述