一、主要内容

  1、介绍mysql中常用的数据类型

  2、mysql类型和java类型对应关系

  3、数据类型选择的一些建议

二、mysql的数据类型

  主要包括以下五大类

    整数类型:bit  bool  tinyint  smallint  mediumnint  int  bigint

    浮点数类型:float  double  decimal

    字符串类型:char  varchar  tinyblob  blob mediumblob  longblob  tinytext  text  mediumtext  longtext

    日期类型:data  datatime  timestamp  time  year

    其他类型

三、整数类型

  示例:

    有符号类型: c1 tinyint(超出范围会报错)

    无符号类型: c1 tinyint unsigned(插入负数会报错)

  类型(n)说明

    int(N)我们只需要记住两点:

      无论N等于多少,int永远占4个字节

      N表示的是显示宽度,不足的用0补足,超过的无视长度而直接显示整个数字,但这要整型设置了unsignde zerofill 才有效

    说明:  

      int(5)输出宽度不满5时,前面用0来进行填充。

      int(n)中的n省略的时候,宽度为对应类型无符号最大值的十进制的长度,如bigint无符号最大值未2的64次方-1.长度是20位。

四、浮点类型

  float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都是浮点型,而decimal是定点型。

  浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度。

  float和double在不指定精度时,默认会按照实际的精度来显示,而decimal在不指定精度时,默认整数为10,小数为0.

  decimal采用的是四舍五入

  float和double采用的是四舍六入五成双

  decimal插入的数据超过精度后会触发警告

  科普一下:四舍六入五成双

    就是5一下舍弃5以上进位,如果需要处理数字为5的时候,需要看5后面是否还有不为0的任何数字,如果有,则直接进位,如果没有,需要看5前面的数字,若是奇数则进位,若是偶数则将5舍弃。

  浮点数float、double 如果不写精度和标度,则会按照实际显示,decimal不写精度和标度,小数点后面的会进行四舍五入,并且插入时会有警告。

  float、double会存在精度问题,decimal精度正常,比如银行对统计结果要求比较精准的建议使用decimal。

五、日期类型:

六、字符串类型:

  char占用固定长度,如果存放的数据为固定长度,建议char类型,如手机号码,身份证等固定长度的信息。

七、数据类型选择的一些建议

  选小不选大:一般情况下选择可以正确存储数据的最小数据类型,越小的数据类型通常更快,占用磁盘,内存和cpu缓存更小。

  简单就好:简单的数据类型的操作通常需要更少的CPU周期,例如:整数比字符操作代价要小得多,因为字符集和校对规则(排序规则)使字符比整形比较更加复杂。

  浮点类型的建议统一选择decimal

  记录时间的建议使用int或者bigint类型,将时间转换为时间戳格式,如将时间转换为秒、毫秒,进行存储,方便走索引。

最新文章

  1. Linux下安装 MySQL
  2. 项目总结---- imageLoder 的2个Bug解决方法、1.9.4如何选择性删除disk缓存和其它一些错误。
  3. ThreadLocal详解(实现多线程同步访问变量)
  4. Crosswalk入门
  5. C# 缓存学习总结
  6. iOS--RunLoop原理介绍
  7. USBSpirit(USB精灵)更新到1.2.300.105
  8. apache+php+mysql常见集成环境安装包
  9. 解决的方法:warning: Clock skew detected. Your build may be incomplete.
  10. Entity Framework 新手入门友好实例
  11. PHP扩展开发-1
  12. 【CSS3】边框
  13. POJ-2421 Constructing Roads---确定部分边的MST
  14. word模板导出的几种方式:第三种:标签替换(DocX组件读取与写入Word)
  15. A1046. Shortest Distance
  16. Expo大作战(三十七)--expo sdk api之 GLView,GestureHandler,Font,Fingerprint,DeviceMotion,Brightness
  17. 装CentOS 系统
  18. Python: 爬取百度贴吧图片
  19. 菜鸟学Java(十三)——将MyEclipse项目导入到Eclipse
  20. Memcached 运行状态

热门文章

  1. FreeMarker的应用场景
  2. redis cluster环境搭建
  3. C-LODOP回调多个返回值On_Return_Remain
  4. vue-cli3使用vue-router 使用动态路由,在刷新页面时报错
  5. TS - 问题解决力 - 上篇
  6. 最新 蓝鲸人java校招面经 (含整理过的面试题大全)
  7. tomcat 启动闪退解决方法
  8. 6、rabbitmq&java代码操作
  9. pytorch1.0实现GAN
  10. [转帖]谷歌宣称首次实现量子优越性,IBM“不服”,中国同行咋看?