当前位置:   article > 正文

MySQL中的基本数据类型_mysql基础数据类型

mysql基础数据类型

目录

一、数值类型

二、字符串类型

三、时间类型


一、数值类型

1、float、double、decimal?

float、double、decimal都是用来表示小数的。

大家都看到了,这三个数据类型很特别,后面都跟着M,D

此MD,非彼MD。

M的意思是精度

D的意思是标度


2、M和D什么意思?

举个例子(定义一列数据):

test 是数据的名字,具体语法先不管。

3对应的就是M

1对应的就是D

此时定义的这种数据只能够存储:

12.3、11.1、23.1这类数据。

也就是说:

D是小数点后有几位;

M是数字的总位数


3、M和D有什么用?

因为规定了精度,所以可以大致测算数据的最大容量是多少,这个开企业开发中是尤为重要的数据。

其次,在设置精度后,MySQL会“勤俭持家”,只会分配给定大小的内存给到数据。

比如:

12.1就只会分配12.1存储的最大占用内存给到数据;

1112223333.1212 也会分配其存储的最大占用内存给到数据;

可以起到节省内存的作用。

上述数据类型的大小范围:

大小范围都是根据最大占用内存用二进制换算出来的。

比如tinyint占用内存1个字节,也就8个比特位,那么最多可以表示2^8-1个数字。


上述数据类型都是含有符号的数据类型,也就是含有正负号。

MySQL中也有其对应的无符号类型。(unsign,和C语言中的那个概念一样的)

但是强烈不推荐用!

原因是:

在由于无符号类型的存储逻辑,在对无符号类型进行计算的时候,可能会出现溢出,导致程序后序运行逻辑出错,造成不可估量的后果。

就连MySQL官方文档中也说过,不建议使用无符号类型,甚至会在今后的版本中不在支持无符号数据。

二、字符串类型

注:

1) MySQL中没有字符类型,只有字符串类型。

也因此在表示字符串时,可以用单引号,也可以用双引号。

但,这在含有字符类型的编程语言中是不允许的。例如java

2)varchar和char括号中的SIZE代表可以填入的最大字符串长度。

但SIZE也不能超过两种数据类型可以表示的范围。

1、可变长

可变长(varchar)就类似于JAVA中的可变长二维数组。

意思是,可以根据输入的数据长度,分配给数据相应大小的内存,这样可以节省空间。

但是定长(char)不行,即使储存一个字符,‘s’,它分配的内存也是255个字节。


2、blob

带blob的都是二进制数据,很少用,因为效率不高且不方便管理。
对于二进制数据,
一般会采用专门的文件服务器进行存储

三、时间类型

data、time、datatime用的相对较多一些。

注意少用timestamp,因为它会在2038年失效。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/838262
推荐阅读
相关标签
  

闽ICP备14008679号