本趴菜 认为这是一篇较难写的博客呢~
争取一目了然,有逻辑性点。
mysql中数据类型有四大类
1.整数类型
2.浮点数类型和定点数类型
DECIMAL(m,d)通过参数分别设置其精度和小数位数,m表示数字总位数(不包括小数点和符号位),d表示小数位数。
在实际应用中,尽量采用定点数类型,,该类型不仅能保证计算结果更精确,还可以节省存储空间。
3.日期与时间类型
4.字符串类型
(1) CHAR和VARCHAR类型
CHAR()是固定长度的字符串,定义时要指定字符串长度n,n的取值范围是0-255,如果实际插入值的长度小于n,则用空格补齐到指定长度n。
VARCHAR(n)是可变长度的字符串,表示插入字符串的最大长度,n的取值范围与编码有关。如果实际插入的字符串的长度不够,以实际插入值的长度进行存储。
系统处理CHAR(n)的速度比VARCHAR(n)快,而VARCHAR()比CHAR()节省空间。在实际应用中,如果某个字段每行值的长度相差不大,可以选择用CHAR类型(如身份证号码)。否则,可以考虑用VARCHAR类型(如家庭地址)。
注意:
从MySQL 5.0版本开始,VARCHAR(n)和 CHAR(n)中的n表示n个字符,一个汉字和一个英文字母均被当作一个字符计算,仅是占用的字节有区别。一个汉字占用的字节与编码有关,比如在UTF-8编码中,一个汉字需要占用3字节;而采用GBK编码,一个汉字需要占用2字节。
(2) BLOB和TEXT类型
BLOB类型存储的是二进制字符串数据,如声音、视频、图像等。
TEXT类型存储的是文本字符串数据,如个人简历、文章内容、评论等。
(3) ENUM和SET类型
ENUM和SET类型都是一个字符串对象。
ENUM类型是枚举类型,其值为定义字段时枚举列表中的某个值,语法格式如下:
ENUM('值1','值2'..)
ENUM类型的字段在取值时,只能在指定的校举列表中选择,而且一次只能取一个值,例如,“性别”字段只能取“男”或“女”,则把“性别”字段的数据类型定义为:
ENUM('男','女')
SET类型可以有0个或多个值(最多可以有64个值),在创建表时指定。语法格式如下:
SET('值1' ,'值2',...)
与ENUM类型有所不同,ENUM类型的字段只能从定义的多个值中选择一个插入, 而SET类型的字段可以从定义的值中选择多个值。