mysql列类型

mysql三大列类型

整型
tinyint(占据空间:1个字节 存储范围  有符号  -128-127   无符号  0-255)
smallint  
mediumint   
int   
bigint


小数型

float(M,D)   浮点型
decimal(M,D)  定点型
 M 叫做“精度”-----》代表“总位数”
 而D是“标度”------》代表小数位(即小数点右边的位数) 

浮点数占多大的空间呢?
答: float 能存 10^38次方,和 10^-38次方 
 如果M<=24, 占4个字节,否则占 8个字节。

 用来表示数学中的小数,除了float
 还有一种decimal是把整数部分,和小数部分,分开存储的
  比float精确。
 
整型列的可选属性

tinyint(M)  unsigned zerofill

M:宽度(在zerofill时才有意义)  指定了就表示有M个位的宽度不够前面用0自动补齐   在zerofill时才有意义

unsigned:无符号类型(不能为负)    浮点型也可以用

zerofill:0填充,(默认就是无符号类型因此声明了0填充就自动默认是无符号类型了)

例:tinyint(5) zerofill  表示如果增的数据不到5位宽度前面用0补到5位。。。。。。


字符型   


 参数(M)是指存的是字符个数能存都少
  
 char 定长类型

    对于char(M)不够N个长度,会自动用空格在尾部补够N个长度,浪费了尾部。
    如果取出来的时候,再把后面的空格去掉(所以,如果内容最后有空格,将会被清除)
    不论够不够指定的长度,实际上都占据N个长度。

varchar 变长类型

   对于varchar(M)不够N个长度,不会自动用空格补齐,
   所以取出来的时候,内容后面有空格不会被清除掉空格。
   但是列内容前,有1-2个字节来标志该列的内容长度(字符长度)
 速度上char比较快一点

char(M) varchar(M) 中的M是限制的字符数,不是字节数

text 文本类型

 可以存储比较大的文本段,搜索速度稍慢
因此如果不是特别大的内容,建议用char和varchar来代替
text不用加默认值加了也没用会报错

 blob 二进制类型

用哪个来存储图像,音频等二进制信息

意义 2进制 0-255都有可能出现
blob在于防止因为字符集的问题,导致信息丢失,
比如:一张图片有0XFF字节,这个ascii字符集认为非法,入库的时候,被过滤了。

日期/时间类型

 date日期类型:  典型格式 1992-08-12
    日期类型    :‘1000-01-01’-》 ‘9999-12-31’

 time时间类型 :典型格式 hh:mm:ss
   时间类型:‘-838:59:59’-》 +838:59:59

datetime日期时间类型 典型格式 ‘1989-05-06 14:32:08’
    日期时间类型 范围 1000-01-01 00:00:00 -> 9999-12-31 23:59:59

year年类型 1个字节 表示1901-2155[还可以存0000年]
 如果输入2位,‘00’-‘69’表示2000-2069
 ’70’-‘99‘  表示 1970-1999年
 如果记的麻烦,输入的时候,输4位。
原文地址:https://www.cnblogs.com/suiyuewuxin/p/5608497.html