MySQL中的数据类型

一、整数类型

  TinyInt    存储空间8位,  存储范围:-27   ~ 27-1

  SmallInt    存储空间16位,存储范围:-215 ~ 215-1

  MediumInt   存储空间24位,存储范围:-223 ~ 223-1

  Int        存储空间32位,存储范围:-231 ~ 231-1

  BigInt      存储空间64位,存储范围:-263 ~ 263-1

  

  MySQL可以为整数类型指定宽度,例如INT(11), 对大多数应用这是没有意义:他不会限制值的合法范围,只是规定了MySQL的一些交互工具用来显示字符的个数。

  对于存储和计算来说INT(1)和INT(20)是相同的

 

二、浮点数类型

  Float     

  Double    float和double适合近似计算,不适合精确的浮点型运算

  Decimal     decimal则合适的精确的浮点型运行,比如存储财务数据

  

  当在数据量较大的时候可以使用 bigint 来代替decimal,将需要存储的货币单位根据小数的位数乘以相应的倍数即可。

 

三、字符串类型

  Char    char可以用来存储很短的字符串,或者所有值都接近同一个长度。非常适合用来存储MD5的值或者UUID。

  Varchar     varchar类型用于存储可变长的字符串,它比char更节省空间,因为它仅使用必要的空间。

  Blob    

  Text    blob和text都是为了存储很大的数据而设计的字符串数据类型,分别采用二进制和字符方式存储

四、时间和日期类型

  Datetime  这个类型能保存大范围的值,从1001年到9999年,精度为秒。它把日期和时间封装到格式为YYYYMMDDHHMMSS的整数中,与时区无关. 使用8个字节的存储空间。

  TimeStamp 这个类型保存了从1970年1月1日午夜以来的秒数,它和UNIX时间戳相同, 但是timestamp只使用了4个字节的存储空间。

 

       TimeStamp与Datetime的主要区别:

       1. 两者存储的方式不同

        对于TimeStamp,它把客户端插入时间从当前时区转化成UTC(世界标准时间)进行存储。查询时,将其又转化为客户端当前时区进行返回。

        而对于Datetime, 基本上不做任何改变,原样输入原样输出。

       2. 两者所能存储的时间范围不一样

       Timestamp所能存储的时间范围为:’1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
       Datetime所能存储的时间范围为:’1000-01-01 00:00:00.000000’ 到 ‘9999-12-31 23:59:59.999999’。
       总结:Timestamp 和 Datetime 除了存储范围和存储方式不一样,没有太大区别。

       如果你的应用 是用于不同时区(就是国内和国外同时使用),这时候如果用datetime就会出现各种各样的问题,但是如果使用TimeStamp就不会出现这种时差的问题。

 

五、位数据类型

  Bit    可以使用bit列在一列中存储一个或者多个true/false的值

  Set      可以保存多个true/false的值,它在mysql内部是以一系列打包的位的集合来表示的

  

posted @ 2019-01-29 18:03  韵文  阅读(247)  评论(0编辑  收藏  举报