MYSQL数据类型

常用的数据类型有:
  • 整型              (int)
  • 位类型           (bit)
  • 浮点型           (float, double, real)
  • 定点数           (decimal, numeric)
  • 日期时间类型 (date, time, datetime, year)
  • 字符串         (char, varchar, text)
  • 二进制           (Blob, binaly)
  • 枚举               (enum)
 
 
 
1、数值型
 
整数型:tinyint(1)   int(4)   bitint(8)   都占4字节内存,
              可选属性:unsigned(无符号类型)  signed(有符号类型)
                                M:宽度(一般不指定)
                                zerofill: 0填充
 
浮点型:float(4)  double(8)
              通常FLOAT(3, 2)表示数据长度为3,  3中包括小数点后两位,所以(3,2)表示的数据最大值为9.99
注意:整型数要注意存储范围,浮点型数要注意使用精度
 
2、定点型 (推荐)
 
DECIMAL:在MYSQL中以字符串形式存放,比浮点数更精确,占用字节数为:DECIMAL(M, D) M+2个字节
DECIMAL(M,D)中,M的取值范围为0~65,D的取值范围为0~30,且有D<=M,M默认是10,D默认是0
NUMERIC等价于DECIMAL
 
3、日期和时间类型
 
 
注意:
  •    date,  datetime类型的数据,允许`不严格`语法,例如'98-12-31 11:30:45'  与 '98.12.31 11+30+45'是等价的
  •    YYYYMMDD等没有间隔符的字符串,'19970523'或'970523'可以被解释为'1997-05-23',但'971332'是不合法的, 因为其中包含了不合法的日期,将自动转换为'0000-00-00'
  •    如果日,月,时分秒的值小于10,'1997-01-03 01:02:03'  和 ' 1997-1-3 1:2:3'等价
  • 一般存注册时间,商品发布时间等,不建议使用datetime,而是使用时间戳,便于计算,且和时区相关,timestamp类型如果插入NULL,会自动填入当前系统时间。
 
3、字符串型
 
 
注意:
  •     char可以不指定长度,默认是1, varchar必须指定长度
  •     如果char(M)中的值长度小于M,会自动用空格补齐,而varchar值长度为存入值的长度
  •     text类型数据删除后容易导致空洞,使得文件碎片较多,建议单独分出去使用一个表
 
使用场合:
  •     如果数据长度很短,比如说门牌号101,102这样的,建议使用char
  •     如果固定长度的数据,使用char更合适,搜索更快
  •     MyISAM和MEMORY存储引擎中无论使用char还是varchar都是作为char处理
 
4、特殊的NULL值
    特点:
  • 所有类型的值都可以是null,包括int,float等数据类型
  • 空字符串“”,0, false都不等于null
  • 任何运算符,判断符碰到NULL都为NULL
  • NULL的判断只能用is null 和 is not null
  • NULL影响查询速度,一般避免使值为NULL
 
 
 
 
 
 
 
 
posted @ 2020-10-22 22:40  别把最疼爱的人弄丢了  阅读(125)  评论(0编辑  收藏  举报