数据类型

时间

mysql中时间类型包括:date、dateTime、time、timeStamp、year,对于时间的使用只需要根据需求选择对应的类型即可,只是需要注意以下几点
1、几种时间类型可以精确到秒后最多6位
2、time的范围为'-838:59:59.000000' to '838:59:59.000000','11:12' means '11:12:00',1112 means 00:11:12 
3、timeStamp有时间范围限制1970-01-01 00:00:01.000000至2038-01-19 03:14:07.999999
4、year保存两位时: 70-99 表示 1970-1999   00-69 表示 2000-2069.

数字

mysql中的数字类型包括:integer(int)、smallInt、decimal(dec|fixed)、numeric
1、boolean类型相当于tinyInt(1)的变种,在mysql中true==1 false==0,但是if判断时非0则为true
2、整数类型根据表示范围分为了以下几种
   2.1 tinyInt(8) 有符号范围为-128~127,无符号范围为0~255,以下类型类似区分有无符号表示不同范围
   2.2 smallInt(16)
   2.3 mediumInt(24)
   2.4 int(32)
   2.5 bigInt(64)
3、浮点类型(m,d)
   3.1 float(32) 单精度浮点数
   3.2 double(64) 双精度浮点数
4、小数类型: decimal(m,d)主要用于金额的保存m代表数字的个数包括小数位最大65

字符类型

1、char与varchar
  char 最大字节数为255,内容不足给定长度时会填充空格保存,取出时去除,除非PAD_CHAR_TO_FULL_LENGTH被设置为启用'char判断相等时会去重空格,但是like不会
  varchar最大65535长度,该长度为字符数,根据编码的不同转换为不同的最大值(比如utf的最大值为21844),由于是变长所以需要储存长度在不大于255时使用一个子节否则两个子节
2、binary与varbinary
  二进制形式下的char与varchar
3、blob
  tinyblob使用一字节保存长度,最大255子节,
  blob使用两字节保存长度,最大2^16-1
  mediumBlob使用三字节保存长度,最大2^24-1
  longBlob使用四字节保存长度,最大2^32-1
4、text
  blob的非二进制的类型
5、enum
  枚举类型,创建表时约定范围
6、set
  集合类型,创建表示给定范围

字符串需要注意字符编码,包括存储编码与排序编码,如果设置优先级为列 > 表 > 数据库 > 服务

存储无 存储有
排序无 都是用默认 排序使用存储默认
排序有 存储使用排序的主编码 使用给定的

对于char、varchar、text如果编码为binary就会转换为对应的bianary、varbinary、blob,enum与set不会有变化

posted @ 2021-02-22 14:54  犬犬呀  阅读(37)  评论(0编辑  收藏  举报