MySQL的常见数据类型
在这里插入图片描述
数据类型是什么?
数据类型是列、存储过程的参数、表达式和局部变量的数据特征,它决定了数据的存储格式,代表了不同的信息类型。
有一些数据是要存储为数字的,数字当中有些是要存储为整数、小数、日期型等…;
MySQL常见的数据类型
大致可以分为三类:数值、日期/时间、字符串类型
1.数值类型
分为严格数值类型和近似数值类型和浮点型,严格数值类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)
在这里插入图片描述
在这里插入图片描述
2.日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个”零”值,当指定不合法的MySQL不能表示的值时使用”零”值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
在这里插入图片描述
3.字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。它们的最大长度和是否尾部空格被保留等方面也不同。在存储或检索过程中不进行大小写转换。
首先明确,char的长度是不可变的,varchar的长度是可变的;比如现在定义一个char[10]和varchar[10],现在往里边存储’csdn’四个字符,此时char中存储的是’csdn’四个字符外还有六个空格,而varchar则是存储是’csdn’四个字符,这里注意要在char类型中取数据’csdn’的时候,要注意用trim函数去掉末尾的空格,而varchar是不需要的;
尽管这样吧,char的存储速度还是比varchar快,因为其长度固定,方便程序的存储于查找,这里可以理解成以空间换时间吧(个人感觉);因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的;
char类型对英文的存储的ASCII码占一个字节,汉子占两个字节;而varchar则是英文和汉字都是两个字节;
两者的存储数据都非unicode的字符数据;
BINARY和VARBINARY类类似于CHAR和VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。也就是说,它们包含字节字符串而不是字符字符串。这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
有4种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。这些对应4种BLOB类型,有相同的最大长度和存储需求。
在这里插入图片描述
在这里插入图片描述
总结
本文大体介绍了MySQL的数据类型,以及各数据类型的含义,如果不是专业的DBA,应该了解这些就足以了;
在这里插入图片描述
/*************************************************************************
/*************************************************************************
此文章版权方是个人,目的是为自己记录学习历程的同时为大家提供一些参考;如果有不正确的地方,欢迎大家提出!
/*************************************************************************
/*************************************************************************