mysql数据类型

首先说下 Byte 和 bit

  1字节=8位(1 byte = 8bit) ,最大存储范围就是8个1,2的8次方,也就是255

整型
Int(M);M指宽度,使用默认就行,默认为3,定义宽度没太大意义
  使用zerofill 可以查看到宽度怎样存
  Insert into (num) values(1);
  Num显示是 001
  1.TINYINT 有符号值: -2^7到2^7-1; 无符号值: 0到2^8-1; 1Byte
  2.SMALLINT 有符号值: -2^15到2^15-1; 无符号值: 0到2^16-1; 2Byte
  3.MEDIUMINT 有符号值: -2^23到2^23-1; 无符号值: 0到2^24-1; 3Byte
  4.INT 有符号值: -2^31到2^31-1; 无符号值: 0到2^32-1; 4Byte
  5.BIGINT 有符号值: -2^63到2^63-1; 无符号值: 0到2^64-1; 8Byte

浮点型
  1. FLOAT[(M, D)] 4byte
    (1) M是数字总位数, D是小数点后面的位数
    (2) 单精度浮点数精确到大约7位小数
  2. DOUBLE[(M, D)] 8byte,是双精度浮点数, 一般是FLOAT存储范围的10倍,15个有效位
  3. DECIMAL[(M ,D)] 16byte,28个有效位
    decimal (M,D)
    M:代表总有效位数,系统规定不能大于65;
    D:代表小数位数,系统规定不能大于30;

日期和时间
  1. YEAR: 1字节 1970至2069 格式:2018
  2. TIME: 3字节 格式:09:00:00
  3. DATE: 3字节 1000-1-1至9999-12-31 格式:2018-01-01
  4. TIMESTAMP: 4字节 1970-1-1 00:00:00到2037-12-31 23:59:59
  5. DATETIME: 8字节 1000-1-1 00:00:00至9999-12-31 23:59:59 2018-01-01 00:00:00

字符型
  1. CHAR(M): M个字节, 0 <= M <= 255, 定长类型(未达到指定长度用空格来补齐)
  2. VARCHAR(M): 0 <= M <= 65535, 变长类型,根据编码不同存储个数不一样
  3. TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT分别为1, 2, 3, 4个字节
  4. ENUM('value1', 'value2', ...): 枚举类型, 1或2字节
    sex enum('男','女');非枚举中的值插入时会插入空字符串,显示空值
  5. SET('value1', 'value2', ...): 集合类型(集合的成员做排列组合, 最多64个成员), 1, 2, 3, 4或8字节

以上仅个人观点,如有问题,欢迎纠正!

posted @ 2018-12-06 17:56  昵称还没想好  阅读(171)  评论(0)    收藏  举报