深入MySQL(二):MySQL的数据类型

对于MySQL中的数据类型的选择,不同的数据类型看起来可能是相同的效果,但是其实很多时候天差地别。
本章从MySQL中的 常用类型出发,结合 类型选择的常见错误,贯彻MySQL的常用类型选择。

MySQL的常用类型并不多,总的来说分为以下几种:

整数类型

存储整数的话,可以用以下几种数据类型进行表示: TINYINT,SMALLINT,MEDIUMINT,INT,BIGINT,分别使用8,16,24,32,64位进行存储。
同时还可以设置UNSIGEND,将大小扩大一倍。
很多有些基础的同学可能会疑惑,比如我们要进行数值之间的计算,如果进行类型转换函数进行转换,那么我们就用不了索引了,性能会极其低下。
其实MySQL中的整数类型,它只代表其硬盘和内存中是如何存储数据的,整数计算中,通常都是使用64位的BIGINT进行运行,包括32位环境亦是如此。

实数类型

实数类型我认为一般来说有三种: float,double,decimal,其中有C语言经验或者Java语言经验的同学应该知道,float和double在很多类型的编程语言中属于基本数据类型中的浮点型。由于操作系统的限制,计算机表示浮点型存在极大的缺陷,会有很大的精度误差。所以在 《阿里巴巴Java开发手册》的MySQL部分以及MySQL的官方推荐中,都是强烈建议如果需要完全精确的小数的话,使用decimal进行存储。
所以我认为的话,如果是正常的开发中,所有的小数都使用decimal为好。

字符串类型

无论是哪一种基础设施或者语言,字符串都是其中避不开的一讲,MySQL中关于字符串的类型有: VARCHAR,CHAR,BLOB,TEXT,我在写项目的过程中使用的最多的便是VARCHAR,VARCHAR相当于是没有限制字符串长度的,而CHAR限制了字符串的长度,会丢弃多余的字符。CHAR适合存储定长或者或者很短的数据,比如MD5值和是非(Y,N)。
而BLOB和TEXT我就不是特别的熟悉了,按照《高性能MySQL》来说的话,这两种都是用来存储很大的数据而设计的,其中BLOB以二进制存储,TEXT以字符存储,在存储的时候,作为对象来存储。

日期类型

主要的日期类型:date,datetime,timestamp,time

类型 大小(byte) 范围 格式 样例 year 1 1901~2155 YYYY 2021 date 3 1000-01-01~9999-12-31 YYYY-MM-DD 2021-05-30 time 3 ‘-838:59:59’/’838:59:59’ MM-DD:SS 23:30:00 timestamp 4 1970-01-01 00:00:00UTC~2038……时间,根据时区不同而不同,结束时间为2147483647秒 YYYYMMDDHHMMSS 2021-05-30 12:30:12 datetime 8 1000-01-01 00:00:00/9999-12-31 23:59:59 YYYY-MM-DD HH:MM:SS 2040-05-20 13:14:00

类型选择中的常见错误

Original: https://www.cnblogs.com/hyx-hasaki/p/15811460.html
Author: Huangzzzzz
Title: 深入MySQL(二):MySQL的数据类型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/579090/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球