MySQL如何选择数据类型

在MySQL中建立表 时,须要考虑为字段选择那种数据类型是最合适的。只有选择了合适的数据类型,才能mysql

提升数据库的效率。 ———————————————————————————————————————————————sql

1.整数类型和浮点数类型数据库

整数类型和浮点数类型最大的区别在于可否表达小数。整数类型不能表达小数,而浮点数类型能够表示小数。不一样的整数类型的取值范围不一样。TINYINT类型的取值范围为0~255。若是字段的最大值不超过255,那选择TINYINT类型就足够了。BIGINT类型的取值范围最大。最经常使用的整数类型是INT类型。学习

浮点数类型包括FLOAT类型和DOUBLE类型。DOUBLE类型的精度比FLOAT类型高。若是须要精确到小数点后10位以上,就应该选择DOUBLE类型,而不该该选择FLOAT类型。 ———————————————————————————————————————————————操作系统

2.浮点数类型和定点数类型.net

对于浮点数和定点数,当插入值的精度高于实际 定义的精度时,系统会自动进行四舍五入处理。其目的是为了使该值的精度达到要求。浮点数进行四舍五入时系统不会报警。定点数会出现警告。blog

在未指定精度的状况下,浮点数和定点数有其默认的精度。FLOAT型和DOULBE型默认会保存实际精度。这个精度与操做系统和硬件的精度有关。DECIMAL型默认整数位为10,小数位为0,即默认为整数。图片

在 MySQL中,定点数精度比浮点数 要高。 并且,浮点数会出现偏差。若是要对数据的精度要求比较高,应该选择定点数。字符串

———————————————————————————————————————————————get

3.CHAR类型和VARCHAR类型

CHAR类型的长度是固定的,而VARCHAR类型的长度是在范围内可变的。所以,VARCHAR类型占用的空间比CHAR类型小,并且,VARCHAR类型比CHAR类型灵活。对于长度变化比较大的字符串类型,最好是选择VARCHAR类型。

虽然CHAR类型占用的空间比较大,可是CHAR类型的处理速度比VARCHAR的快。所以,对于长度变化不大和查询速度要求较高的字符串类型。最好选择CHAR类型。

———————————————————————————————————————————————

4.时间和日期类型

YEAR类型只表示年份。若是 只须要记录年份,选择YEAR类型能够节约空间。TIME类型只表示时间。若是只须要记录时间,选择TIME类型是最合适的。DATE类型只表示日期。若是只须要记录日期,选择DATE类型是最合适的。

若是须要记录日期和时间,能够选择DATETIME类型和TIMESTAMP类型。DATETIME类型表示的时间范围比TIMESTAMP类型大。所以,若须要的时间范围比较大,选择DATETIME类型比较合适。TIMESTAMP类型的时间是根据时区来显示的。若是须要显示的时间与时区对应。那就应该选择TIMESTAMP类型。

———————————————————————————————————————————————

5. ENUM类型和SET类型

ENUM类型最多能够有65535个成员,而SET类型最多只能包含64个成员。二者的取值只能在成员列表中选取。ENUM类型只能从成员中选择一个,而SET类型能够选择多个。

所以,对于多个值中选取一个的,能够选择ENUM类型。例如,"性别"字段能够定义为ENUM类型。由于只有在"男"和"女"中选其中一个。对于 能够选取多个值的字段,能够选择SET类型。例如,"爱好"字段能够选择SET类型,由于可能有多种爱好。

———————————————————————————————————————————————

6. TEXT类型和BLOB类型

TEXT类型与BLOB类型很相似。TEXT类型存储只能存储字符数据。而BLOB类型能够用于存储二进制数据。 若是须要存储文章等纯文本的数据,应该选择TEXT类型。若是须要存储图片等二进制的数据,应该选择BLOB类型。

TEXT类型包括TINYTEXT,TEXT,MEDUIUMTEXT和LONGTEXT。这四者最大的不一样是内容给的长度不一样。TINYTEXT类型容许的长度最小, LONGTEXT类型容许的长度最大。BLOB类型也是如此。

———————————————————————————————————————————————

学习资料:

《mysql入门很简单》

http://blog.csdn.net/shaobingj126/article/details/7930270

相关文章
相关标签/搜索