ºìÁªLinuxÃÅ»§
Linux°ïÖú

ÕÆÎÕMySQLµÄÊý×ÖÀàÐÍÒÔ¼°½¨¿â²ßÂÔ

·¢²¼Ê±¼ä:2007-11-20 00:01:14À´Ô´:ºìÁª×÷Õß:Dalandenz
¡¡¡¡Ò»¡¢Êý×ÖÀàÐÍ

¡¡¡¡ËùνµÄ¡°Êý×ÖÀࡱ£¬¾ÍÊÇÖ¸ DECIMAL ºÍ NUMERIC£¬ËüÃÇÊÇͬһÖÖÀàÐÍ¡£ËüÑϸñµÄ˵²»ÊÇÒ»ÖÖÊý×ÖÀàÐÍ£¬ÒòΪËûÃÇʵ¼ÊÉÏÊǽ«Êý×ÖÒÔ×Ö·û´®ÐÎʽ±£´æµÄ;ËûµÄÖµµÄÿһλ (°üÀ¨Ð¡Êýµã) Õ¼Ò»¸ö×ֽڵĴ洢¿Õ¼ä£¬Òò´ËÕâÖÖÀàÐͺķѿռä±È½Ï´ó¡£µ«ÊÇËüµÄÒ»¸öÍ»³öµÄÓŵãÊÇСÊýµÄλÊý¹Ì¶¨£¬ÔÚÔËËãÖв»»á¡°Ê§Õ桱£¬ËùÒԱȽÏÊʺÏÓÃÓÚ¡°¼Û¸ñ¡±¡¢¡°½ð¶î¡±ÕâÑù¶Ô¾«¶ÈÒªÇ󲻸ߵ«×¼È·¶ÈÒªÇó·Ç³£¸ßµÄ×ֶΡ£

¡¡¡¡Ð¡ÊýÀ࣬¼´¸¡µãÊýÀàÐÍ£¬¸ù¾Ý¾«¶ÈµÄ²»Í¬£¬ÓÐ FLOAT ºÍ DOUBLE Á½ÖÖ¡£ËüÃǵÄÓÅÊÆÊǾ«È·¶È£¬FLOAT ¿ÉÒÔ±íʾ¾ø¶ÔÖµ·Ç³£Ð¡¡¢Ð¡µ½Ô¼ 1.17E-38 (0.000...0117£¬Ð¡ÊýµãºóÃæÓÐ 37 ¸öÁã) µÄСÊý£¬¶ø DOUBLE ¸üÊÇ¿ÉÒÔ±íʾ¾ø¶ÔֵСµ½Ô¼ 2.22E-308 (0.000...0222£¬Ð¡ÊýµãºóÃæÓÐ 307 ¸öÁã) µÄСÊý¡£FLOAT ÀàÐÍºÍ DOUBLE ÀàÐÍÕ¼Óô洢¿Õ¼ä·Ö±ðÊÇ 4 ×Ö½ÚºÍ 8 ×Ö½Ú¡£Èç¹ûÐèÒªÓõ½Ð¡ÊýµÄ×ֶΣ¬¾«¶ÈÒªÇ󲻸ߵģ¬µ±È»Óà FLOAT ÁË¡£¿ÉÊÇ˵¾äʵÔÚ»°£¬ÎÒÃÇ¡°ÃñÓá±µÄÊý¾Ý£¬ÄÄÓÐÒªÇ󾫶ÈÄÇô¸ßµÄÄØ?ÕâÁ½ÖÖÀàÐÍÖÁ½ñÎÒûÓÐÓùý¡ª¡ªÎÒ»¹Ã»ÓÐÓöµ½ÊʺÏÓÚʹÓÃËüÃǵÄÊÂÀý¡£

¡¡¡¡ÓõÄ×î¶àµÄ£¬×îÖµµÃ¾«´òϸËãµÄ£¬ÊÇÕûÊýÀàÐÍ¡£´ÓÖ»Õ¼Ò»¸ö×Ö½Ú´æ´¢¿Õ¼äµÄ TINYINT µ½Õ¼ 8 ¸ö×Ö½ÚµÄ BIGINT£¬ÌôÑ¡Ò»¸ö¡°¹»Óá±²¢ÇÒÕ¼Óô洢¿Õ¼ä×îСµÄÀàÐÍÊÇÉè¼ÆÊý¾Ý¿âʱӦ¸Ã¿¼Âǵġ£TINYINT¡¢SMALLINT¡¢MEDIUMINT¡¢INT ºÍ BIGINT Õ¼Óô洢¿Õ¼ä·Ö±ðΪ 1 ×Ö½Ú¡¢2 ×Ö½Ú¡¢3 ×Ö½Ú¡¢4 ×Ö½ÚºÍ 8 ×Ö½Ú£¬¾ÍÎÞ·ûºÅµÄÕûÊý¶øÑÔ£¬ÕâЩÀàÐÍÄܱíʾµÄ×î´óÕûÊý·Ö±ðΪ 255¡¢65535¡¢16777215¡¢4294967295 ºÍ 18446744073709551615¡£Èç¹ûÓÃÀ´±£´æÓû§µÄÄêÁä (¾ÙÀýÀ´Ëµ£¬Êý¾Ý¿âÖб£´æÄêÁäÊDz»¿ÉÈ¡µÄ)£¬Óà TINYINT ¾Í¹»ÁË;¾Å³ÇµÄ¡¶×ݺᡷÀ¸÷Ïî¼¼ÄÜÖµ£¬Óà SMALLINT Ò²¹»ÁË;Èç¹ûÒªÓÃ×÷Ò»¸ö¿Ï¶¨²»»á³¬¹ý 16000000 ÐеıíµÄ AUTO_INCREMENT µÄ IDENTIFY ×ֶΣ¬µ±È»Óà MEDIUMINT ²»Óà INT£¬ÊÔÏ룬ÿÐнÚÔ¼Ò»¸ö×Ö½Ú£¬16000000 ÐпÉÒÔ½ÚÔ¼ 10 Õ׶àÄØ¡£

¡¡¡¡¶þ¡¢ÈÕÆÚʱ¼äÀàÐÍ

¡¡¡¡ÈÕÆÚºÍʱ¼äÀàÐͱȽϼòµ¥£¬ÎÞ·ÇÊÇ DATE¡¢TIME¡¢DATETIME¡¢TIMESTAMP ºÍ YEAR µÈ¼¸¸öÀàÐÍ¡£Ö»¶ÔÈÕÆÚÃô¸Ð£¬¶ø¶Ôʱ¼äûÓÐÒªÇóµÄ×ֶΣ¬¾ÍÓà DATE ¶ø²»Óà DATETIME ÊDz»ÓÃ˵µÄÁË;µ¥¶ÀʹÓÃʱ¼äµÄÇé¿öҲʱÓз¢Éú¡ª¡ªÊ¹Óà TIME;µ«×î¶àÓõ½µÄ»¹ÊÇÓà DATETIME¡£ÔÚÈÕÆÚʱ¼äÀàÐÍÉÏûÓÐʲôÎÄÕ¿É×ö£¬ÕâÀï¾Í²»ÔÙÏêÊö¡£

¡¡¡¡Èý¡¢×Ö·û (´®) ÀàÐÍ

¡¡¡¡²»ÒªÒÔΪ×Ö·ûÀàÐ;ÍÊÇ CHAR£¬CHAR ºÍ VARCHAR µÄÇø±ðÔÚÓÚ CHAR Êǹ̶¨³¤¶È£¬Ö»ÒªÄ㶨ÒåÒ»¸ö×Ö¶ÎÊÇ CHAR(10)£¬ÄÇô²»ÂÛÄã´æ´¢µÄÊý¾ÝÊÇ·ñ´ïµ½ÁË 10 ¸ö×Ö½Ú£¬Ëü¶¼ÒªÕ¼È¥ 10 ¸ö×ֽڵĿռä;¶ø VARCHAR ÔòÊǿɱ䳤¶ÈµÄ£¬Èç¹ûÒ»¸ö×ֶοÉÄܵÄÖµÊDz»¹Ì¶¨³¤¶ÈµÄ£¬ÎÒÃÇÖ»ÖªµÀËü²»¿ÉÄܳ¬¹ý 10 ¸ö×Ö·û£¬°ÑËü¶¨ÒåΪ VARCHAR(10) ÊÇ×îºÏËãµÄ£¬VARCHAR ÀàÐ͵ÄÕ¼ÓÿռäÊÇËüµÄÖµµÄʵ¼Ê³¤¶È +1¡£ÎªÊ²Ã´Òª +1 ÄØ?ÕâÒ»¸ö×Ö½ÚÓÃÓÚ±£´æʵ¼ÊʹÓÃÁ˶à´óµÄ³¤¶È¡£´ÓÕâ¸ö +1 ÖÐÒ²Ó¦¸Ã¿´µ½£¬Èç¹ûÒ»¸ö×ֶΣ¬ËüµÄ¿ÉÄÜÖµ×ÊÇ 10 ¸ö×Ö·û£¬¶ø¶àÊýÇé¿öÏÂÒ²¾ÍÊÇÓõ½ÁË 10 ¸ö×Ö·ûʱ£¬Óà VARCHAR ¾Í²»ºÏËãÁË£ºÒòΪÔÚ¶àÊýÇé¿öÏ£¬Êµ¼ÊÕ¼ÓÿռäÊÇ 11 ¸ö×Ö½Ú£¬±ÈÓà CHAR(10) »¹¶àÕ¼ÓÃÒ»¸ö×Ö½Ú¡£

¡¡¡¡¾Ù¸öÀý×Ó£¬¾ÍÊÇÒ»¸ö´æ´¢¹ÉƱÃû³ÆºÍ´úÂëµÄ±í£¬¹ÉƱÃû³Æ¾ø´ó²¿·ÖÊÇËĸö×ֵģ¬¼´ 8 ¸ö×Ö½Ú;¹ÉƱ´úÂ룬ÉϺ£µÄÊÇÁùλÊý×Ö£¬ÉîÛÚµÄÊÇËÄλÊý×Ö¡£ÕâЩ¶¼Êǹ̶¨³¤¶ÈµÄ£¬¹ÉƱÃû³Æµ±È»ÒªÓà CHAR(8);¹ÉƱ´úÂëËäÈ»ÊDz»¹Ì¶¨³¤¶È£¬µ«Èç¹ûʹÓà VARCHAR(6)£¬Ò»¸öÉîÛڵĹÉƱ´úÂëʵ¼ÊÕ¼ÓÿռäÊÇ 5 ¸ö×Ö½Ú£¬¶øÒ»¸öÉϺ£µÄ¹ÉƱ´úÂëÒªÕ¼Óà 7 ¸ö×Ö½Ú!¿¼Âǵ½ÉϺ£µÄ¹ÉƱÊýÄ¿±ÈÉîÛڵĶ࣬ÄÇôÓà VARCHAR(6) ¾Í²»Èç CHAR(6) ºÏËãÁË¡£

¡¡¡¡ËäȻһ¸ö CHAR »ò VARCHAR µÄ×î´ó³¤¶È¿ÉÒÔµ½ 255£¬ÎÒÈÏΪ´óÓÚ 20 µÄ CHAR ÊǼ¸ºõÓò»µ½µÄ¡ª¡ªºÜÉÙÓдóÓÚ 20 ¸ö×Ö½Ú³¤¶ÈµÄ¹Ì¶¨³¤¶ÈµÄ¶«¶«°É?²»Êǹ̶¨³¤¶ÈµÄ¾ÍÓà VARCHAR¡£´óÓÚ 100 µÄ VARCHAR Ò²ÊǼ¸ºõÓò»µ½µÄ¡ª¡ª±ÈÕâ¸ü´óµÄÓà TEXT ¾ÍºÃÁË¡£TINYTEXT£¬×î´ó³¤¶ÈΪ 255£¬Õ¼ÓÿռäÒ²ÊÇʵ¼Ê³¤¶È +1;TEXT£¬×î´ó³¤¶È 65535£¬Õ¼ÓÿռäÊÇʵ¼Ê³¤¶È +2;MEDIUMTEXT£¬×î´ó³¤¶È 16777215£¬Õ¼ÓÿռäÊÇʵ¼Ê³¤¶È +3;LONGTEXT£¬×î´ó³¤¶È 4294967295£¬Õ¼ÓÿռäÊÇʵ¼Ê³¤¶È +4¡£ÎªÊ²Ã´ +1¡¢+2¡¢+3¡¢+4?ÄãÒªÊÇ»¹²»ÖªµÀ¾Í¸Ã´ò PP ÁË¡£ÕâЩ¿ÉÒÔÓÃÔÚÂÛ̳°¡¡¢ÐÂÎÅ°¡£¬Ê²Ã´µÄ£¬ÓÃÀ´±£´æÎÄÕµÄÕýÎÄ¡£¸ù¾Ýʵ¼ÊÇé¿öµÄ²»Í¬£¬Ñ¡Ôñ´ÓСµ½´óµÄ²»Í¬ÀàÐÍ¡£

¡¡¡¡ËÄ¡¢Ã¶¾ÙºÍ¼¯ºÏÀàÐÍ

¡¡¡¡Ã¶¾Ù (ENUM) ÀàÐÍ£¬×î¶à¿ÉÒÔ¶¨Òå 65535 ÖÖ²»Í¬µÄ×Ö·û´®´ÓÖÐ×ö³öÑ¡Ôñ£¬Ö»Äܲ¢ÇÒ±ØÐëÑ¡ÔñÆäÖÐÒ»ÖÖ£¬Õ¼Óô洢¿Õ¼äÊÇÒ»¸ö»òÁ½¸ö×Ö½Ú£¬ÓÉö¾ÙÖµµÄÊýÄ¿¾ö¶¨;¼¯ºÏ (SET) ÀàÐÍ£¬×î¶à¿ÉÒÔÓÐ 64 ¸ö³ÉÔ±£¬¿ÉÒÔÑ¡ÔñÆäÖеÄÁã¸öµ½²»ÏÞ¶¨µÄ¶à¸ö£¬Õ¼Óô洢¿Õ¼äÊÇÒ»¸öµ½°Ë¸ö×Ö½Ú£¬Óɼ¯ºÏ¿ÉÄܵijÉÔ±ÊýÄ¿¾ö¶¨¡£

¡¡¡¡¾Ù¸öÀý×ÓÀ´Ëµ£¬ÔÚ SQLServer ÖУ¬Äã¿ÉÒÔ½ÚÔ¼µ½ÓÃÒ»¸ö BIT ÀàÐÍÀ´±íʾÐÔ±ð (ÄÐ/Å®)£¬µ« MySQL ûÓÐ BIT£¬Óà TINTINT Âð?²»£¬¿ÉÒÔÓà ENUM(Äк¢¡¯,¡¯Å®º¢¡¯)£¬Ö»ÓÐÁ½ÖÖÑ¡Ôñ£¬ËùÒÔÖ»ÐèÒ»¸ö×Ö½Ú¡ª¡ª¸ú TINYINT Ò»Ñù´ó£¬µ«È´¿ÉÒÔÖ±½ÓÓÃ×Ö·û´® ¡¯Äк¢¡¯ ºÍ ¡¯Å®º¢¡¯ À´´æÈ¡¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 1 ÌõÆÀÂÛ

  1. tusheng ÓÚ 2007-11-22 10:48:51·¢±í:

    ÊÕ²ØÁË£¬¿´¿´