MySQL 数据类型细分下来,大概有以下几类:
数值,典型代表为 tinyint,int,bigint
浮点/定点,典型代表为 float,double,decimal 以及相关的同义词
字符串,典型代表为 char,varchar
时间日期,典型代表为 date,datetime,time,timestamp
二进制,典型代表为 binary,varbinary
位类型
枚举类型
集合类型
大对象,比如 text,blob
json 文档类型
第一段:数值类型(不是数据类型,别看错了)如果用来存放整数,根据范围的不同,选择不同的类型.
第三段:字符类型字符类型和整形一样,用途也很广.用来存储字符、字符串、MySQL 所有未知的类型.可以简单说是万能类型!
所以在 char 和 varchar 选型上,要注意看是否合适的取值范围.比如固定长度的值,肯定要选择 char;不确定的值,则选择 varchar.
综合上面所讲的,日期这块类型的选择遵循以下原则:
第五段:二进制类型
binary 和 varbinary 对应了 char 和 varchar 的二进制存储,相关的特性都一样.不同的有以下几点:
binary(10)/varbinary(10) 代表的不是字符个数,而是字节数.
行结束符不一样.char 的行结束符是 \0,binary 的行结束符是 0x00.
由于是二进制存储,所以字符编码以及排序规则这类就直接无效了.
来看这个 binary 存取的简单示例,还是之前的变量 @a.
切记!这里要提前计算好 @a 占用的字节数,以防存储溢出.
第六段:位类型
其实这样的场景,也可以定义为 char(0),这也是类似于 bit 非常优化的一种用法.
那现在我给表 c1 简单的造点测试数据.
检索方式稍微有些不同,不过效率也差不多.所以说,字符类型不愧为万能类型.
第七段:枚举类型
枚举类型,也即 enum.适合提前规划好了所有已经知道的值,且未来最好不要加新值的情形.枚举类型有以下特性:
第八段:集合类型
集合类型 SET 和枚举类似,也是得提前知道有多少个元素.SET 有以下特点:
第九段:数据类型在存储函数中的用法
函数里除了显式声明的变量外,默认 session 变量的数据类型很弱,随着给定值的不同随意转换.
示例 10
简单调用下.
总结
本篇把 MySQL 基本的数据类型做了简单的介绍,并且用了一些容易理解的示例来梳理这些类型.我们在实际场景中,建议选择适合最合适的类型,不建议所有数据类型简单的最大化原则.比如能用 varchar(100),不用 varchar(1000).
以下内容,我们在另一篇文章介绍
对于游戏币等代币,一般存储为int类型是可行的.问题在于越界,int类型长度为11位.
Decimal:Decimal为专门为财务相关问题设计的数据类型.
扩展资料
MySQL数据类型DECIMAL用法:
MySQL?DECIMAL数据类型用于在数据库中存储精确的数值.我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据.
要定义数据类型为DECIMAL的列,请使用以下语法:column_name?DECIMAL(P,D);
在上面的语法中:
DECIMAL(P,D)表示列可以存储D位小数的P位数.十进制列的实际范围取决于精度和刻度.
与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZEROFILL属性.如果使用UNSIGNED属性,则DECIMALUNSIGNED的列将不接受负值.
如果使用ZEROFILL,MySQL将把显示值填充到0以显示由列定义指定的宽度.另外,如果我们对DECIMAL列使用ZEROFILL,MySQL将自动将UNSIGNED属性添加到列.
以上就是土嘎嘎小编为大家整理的mysql数据类型怎么用相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!