VARCHAR & CHAR
varchar 和char 的区别VARCHAR型和CHAR型数据的这个差别是细微的,但是非常重要。他们都是用来储存字符串长度小于255的字符。
假如你向一个长度为四十个字符的VARCHAR型字段中输入数据BIll GAtES。当你以后从这个字段中取出此数据时,你取出的数据其长度为十个字符——字符串Bill Gates的长度。 现在假如你把字符串输入一个长度为四十个字符的CHAR型字段中,那么当你取出数据时,所取出的数据长度将是四十个字符。字符串的后面会被附加多余的空格。
当你建立自己的站点时,你会发现使用VARCHAR型字段要比CHAR型字段方便的多。使用VARCHAR型字段时,你不需要为剪掉你数据中多余的空格而操心。
VARCHAR型字段的另一个突出的好处是它可以比CHAR型字段占用更少的内存和硬盘空间。当你的数据库很大时,这种内存和磁盘空间的节省会变得非常重要.
虽然VARCHAR使用起来较为灵活,但是从整个系统的性能角度来说,CHAR数据类型的处理速度更快,有时甚至可以超出VARCHAR处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡。
示例举例如下:
car_model VARCHAR(10);
INT (M) [Unsigned]
INT数据类型用于保存从- 2147483647 到2147483648范围之内的任意整数数据。如果用户使用Unsigned选项,则有效数据范围调整为0-4294967295。举例如下:
light_years INT;
按照上述数据类型的设置,-24567为有效数据,而3000000000则因为超出了有效数据范围成为无效数据。
再例如:
light_years INT unsigned;
这时,3000000000成为有效数据,而-24567则成为无效数据。
FLOAT [(M,D)]
FLOAT数据类型用于表示数值较小的浮点数据,可以提供更加准确的数据精度。其中,M代表浮点数据的长度(即小数点左右数据长度的总和),D表示浮点数据位于小数点右边的数值位数。
举例如下:
rainfall FLOAT (4,2);
按照上述数据类型的设置,42.35为有效数据,而324.45和3.542则因为超过数据长度限制或者小数点右边位数大于规定值2成为无效数据。
DATE
DATE数据类型用于保存日期数据,默认格式为YYYY-MM-DD。MySQL提供了许多功能强大的日期格式化和操作命令,本文无法在此一一进行介绍,感兴趣的读者可以参看MySQL的技术文档。
DATE数据类型举例如下:
the_date DATE;
TEXT / BLOB
TEXT和BLOB数据类型可以用来保存255 到65535个字符,如果用户需要把大段文本保存到数据库内的话,可以选用TEXT或BLOB数据类型。TEXT和BLOB这两种数据类型基本相同,唯一的区别在于TEXT不区分大小写,而BLOB对字符的大小写敏感。
SET
SET数据类型是多个数据值的组合,任何部分或全部数据值都是该数据类型的有效数据。SET数据类型最大可以包含64个指定数据值。
举例如下:
transport SET ("trUCk", "wagon") NOT NULL;
根据上述数据类型的设置,truck、wagon、以及truck,wagon都可以成为transport的有效值。
ENUM
ENUM数据类型和SET基本相同,唯一的区别在于ENUM只允许选择一个有效数据值。例如:
transport ENUM ("truck", "wagon") NOT NULL;
根据上述设置,truck或wagon将成为transport的有效数据值。