mysql-logo.gif (3082 bytes)MySQLÖÐÎIJο¼ÊÖ²á

ÒëÕߣºêÌ×Ó (clyan@sohu.com£©      Ö÷Ò³£ºhttp://linuxdb.yeah.net


µÚÒ»ÕÂ, ǰһÕÂ, ÏÂÒ»ÕÂ, ×îºóÒ»Õ£¬Ä¿Â¼.


7 MySQLÓïÑԲο¼

7.1 ÎÄ×Ö£ºÔõôд×Ö·û´®ºÍÊý×Ö

7.1.1 ×Ö·û´®

Ò»¸ö×Ö·û´®ÊÇÒ»¸ö×Ö·ûÐòÁУ¬Óɵ¥ÒýºÅ(¡°'¡±)»òË«ÒýºÅ(¡°"¡±)×Ö·û(ºóÕßÖ»ÓÐÄã²»ÔÚANSIģʽÔËÐÐ)°üΧ¡£ÀýÈ磺

'a string'
"another string"

ÔÚ×Ö·û´®ÄÚ£¬Ä³¸ö˳ÐòÓÐÌØÊâµÄÒâÒå¡£ÕâЩ˳ÐòµÄÿһ¸öÒÔÒ»Ìõ·´Ð±Ïß(¡°\¡±)¿ªÊ¼£¬³ÆÎª×ªÒå×Ö·û¡£MySQLʶ±ðÏÂÁÐתÒå×Ö·û£º

\0
Ò»¸öASCII 0 (NUL)×Ö·û¡£
\n
Ò»¸öÐÂÐзû¡£
\t
Ò»¸ö¶¨Î»·û¡£
\r
Ò»¸ö»Ø³µ·û¡£
\b
Ò»¸öÍ˸ñ·û¡£
\'
Ò»¸öµ¥ÒýºÅ(¡°'¡±)·û¡£
\"
Ò»¸öË«ÒýºÅ(¡°"¡±)·û¡£
\\
Ò»¸ö·´Ð±Ïß(¡°\¡±)·û¡£
\%
Ò»¸ö¡°%¡±·û¡£ËüÓÃÓÚÔÚÕýÎÄÖÐËÑË÷¡°%¡±µÄÎÄ×ÖʵÀý£¬·ñÔòÕâÀï¡°%¡±½«½âÊÍΪһ¸öͨÅä·û¡£
\_
Ò»¸ö¡°_¡±·û¡£ËüÓÃÓÚÔÚÕýÎÄÖÐËÑË÷¡°_¡±µÄÎÄ×ÖʵÀý£¬·ñÔòÕâÀï¡°_¡±½«½âÊÍΪһ¸öͨÅä·û¡£

×¢Ò⣬Èç¹ûÄãÔÚijЩÕýÎÄ»·¾³ÖÐʹÓá°\%¡±»ò¡°\%_¡±£¬ÕâЩ½«·µ»Ø×Ö·û´®¡°\%¡±ºÍ¡°\_¡±¶ø²»ÊÇ¡°%¡±ºÍ¡°_¡±¡£

Óм¸ÖÖ·½·¨ÔÚÒ»¸ö×Ö·û´®ÄÚ°üÀ¨ÒýºÅ£º

ÏÂÃæÏÔʾµÄSELECTÑÝʾÒýºÅºÍתÒåÈçºÎ¹¤×÷£º

mysql> SELECT 'hello', '"hello"', '""hello""', 'hel''lo', '\'hello';
+-------+---------+-----------+--------+--------+
| hello | "hello" | ""hello"" | hel'lo | 'hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "hello", "'hello'", "''hello''", "hel""lo", "\"hello";
+-------+---------+-----------+--------+--------+
| hello | 'hello' | ''hello'' | hel"lo | "hello |
+-------+---------+-----------+--------+--------+

mysql> SELECT "This\nIs\nFour\nlines";
+--------------------+
| This
Is
Four
lines |
+--------------------+
 

Èç¹ûÄãÏëÒª°Ñ¶þ½øÖÆÊý¾Ý²åÈëµ½Ò»¸öBLOBÁУ¬ÏÂÁÐ×Ö·û±ØÐëÓÉתÒåÐòÁбíʾ£º

NUL
ASCII 0¡£ÄãÓ¦¸ÃÓÃ'\0'£¨Ò»¸ö·´Ð±ÏߺÍÒ»¸öASCII '0'£©±íʾËü¡£
\
ASCII 92£¬·´Ð±Ïß¡£ÓÃ'\\'±íʾ¡£
'
ASCII 39£¬µ¥ÒýºÅ¡£Óá°\'¡±±íʾ¡£
"
ASCII 34£¬Ë«ÒýºÅ¡£Óá°\"¡±±íʾ¡£

Èç¹ûÄãдC´úÂ룬Äã¿ÉÒÔʹÓÃC APIº¯Êýmysql_escape_string()À´ÎªINSERTÓï¾äתÒå×Ö·û¡£¼û20.3 C API º¯Êý¸ÅÊö¡£ÔÚ PerlÖУ¬Äã¿ÉÒÔʹÓÃDBI°üÖеÄquote·½·¨±ä»»ÌØÊâµÄ×Ö·ûµ½ÕýÈ·µÄתÒåÐòÁС£¼û20.5.2 DBI½Ó¿Ú¡£

ÄãÓ¦¸ÃÔÚÈκοÉÄܰüº¬ÉÏÊöÈκÎÌØÊâ×Ö·ûµÄ×Ö·û´®ÉÏʹÓÃתÒ庯Êý£¡

7.1.2 Êý×Ö

ÕûÊý±íʾΪһ¸öÊý×Ö˳Ðò¡£¸¡µãÊýʹÓá°.¡±×÷Ϊһ¸öÊ®½øÖÆ·Ö¸ô·û¡£ÕâÁ½ÖÖÀàÐ͵ÄÊý×Ö¿ÉÒÔǰÖá°-¡±±íÃ÷Ò»¸ö¸ºÖµ¡£

ÓÐЧÕûÊýµÄÀý×Ó£º

1221
0
-32

ÓÐЧ¸¡µãÊýµÄÀý×Ó£º

294.42
-32032.6809e+10
148.00

Ò»¸öÕûÊý¿ÉÒÔÔÚ¸¡µãÉÏÏÂÎÄʹÓã»Ëü½âÊÍΪµÈÖµµÄ¸¡µãÊý¡£

7.1.3 Ê®Áù½øÖÆÖµ

MySQLÖ§³ÖÊ®Áù½øÖÆÖµ¡£ÔÚÊý×ÖÉÏÏÂÎÄ£¬ËüÃDZíÏÖÀàËÆÓÚÒ»¸öÕûÊý(64λ¾«¶È)¡£ÔÚ×Ö·û´®ÉÏÏÂÎÄ£¬ËüÃDZíÏÖÀàËÆÓÚÒ»¸ö¶þ½øÖÆ×Ö·û´®£¬ÕâÀïÿһ¶ÔÊ®Áù½øÖÆÊý×Ö±»±ä»»ÎªÒ»¸ö×Ö·û¡£

mysql> SELECT 0xa+0
       -> 10
mysql> select 0x5061756c;
       -> Paul

Ê®Áù½øÖÆ×Ö·û´®¾­³£±»ODBCʹÓ㬸ø³öBLOBÁеÄÖµ¡£

7.1.4 NULLÖµ

NULLÖµÒâζ×Å¡°ÎÞÊý¾Ý¡±²¢ÇÒ²»Í¬ÓÚÀýÈçÊý×ÖÀàÐ͵Ä0Ϊ»ò×Ö·û´®ÀàÐ͵ĿÕ×Ö·û´®¡£¼û18.15 NULLÖµÎÊÌâ¡£

µ±Ê¹ÓÃÎı¾Îļþµ¼Èë»òµ¼³ö¸ñʽ(LOAD DATA INFILE, SELECT ... INTO OUTFILE)ʱ£¬NULL¿ÉÒÔÓÃ\N±íʾ¡£¼û7.16 LOAD DATA INFILE¾ä·¨¡£

7.1.5 Êý¾Ý¿â¡¢±í¡¢Ë÷Òý¡¢ÁкͱðÃûµÄÃüÃû

Êý¾Ý¿â¡¢±í¡¢Ë÷Òý¡¢ÁкͱðÃûµÄÃû×Ö¶¼×ñÊØMySQLͬÑùµÄ¹æÔò:

×¢Ò⣬´ÓMySQL3.23.6¿ªÊ¼¹æÔò¸Ä±äÁË£¬´ËʱÎÒÃÇÒýÈëÁËÓÃ'ÒýÓõıêʶ·û(Êý¾Ý¿â¡¢±íºÍÁÐÃüÃû)£¨Èç¹ûÄãÒÔANSIģʽÔËÐУ¬"Ò²½«ÓÃÓÚÒýÓñêʶ·û£©¡£

±êʶ·û ×î´ó³¤¶È ÔÊÐíµÄ×Ö·û
Êý¾Ý¿â 64 ÔÚÒ»¸öĿ¼ÃûÔÊÐíµÄÈκÎ×Ö·û£¬³ýÁË/.
±í 64 ÔÚÎļþÃûÖÐÔÊÐíµÄÈκÎ×Ö·û£¬³ýÁË/»ò.
ÁÐ 64 ËùÓÐ×Ö·û
±ðÃû 255 ËùÓÐ×Ö·û

×¢Ò⣬³ýÁËÒÔÉÏ£¬ÄãÔÚÒ»¸ö±êʶ·ûÖв»ÄÜÓÐASCII(0)»òASCII(255)¡£

×¢Ò⣬Èç¹û±êʶ·ûÊÇÒ»¸öÏÞÖÆ´Ê»ò°üº¬ÌØÊâ×Ö·û£¬µ±ÄãʹÓÃËüʱ£¬Äã±ØÐë×ÜÊÇÓÃ`ÒýÓÃËü£º

SELECT * from `select` where `select`.id > 100; 

ÔÚ MySQLµÄÏÈǰ°æ±¾£¬ÃüÃû¹æÔòÈçÏ£º

½¨ÒéÄ㲻ʹÓÃÏó1eÕâÑùµÄÃû×Ö£¬ÒòΪһ¸ö±í´ïʽÈç1e+1ÊǶþÒåÐԵġ£Ëü¿ÉÒÔ½âÊÍΪ±í´ïʽ1e + 1»òÊý×Ö1e+1¡£

ÔÚMySQLÖУ¬ÄãÄÜʹÓÃÏÂÁбí¸ñµÄÈκÎÒ»ÖÖÒýÓÃÁУº

ÁÐÒýÓà º¬Òå
col_name À´×ÔÓÚÈÎÒâ±íµÄÁÐcol_name£¬ÓÃÓÚ°üº¬¸Ã±íµÄÒ»¸öÁеIJéѯÖÐ
tbl_name.col_name À´×Ôµ±Ç°µÄÊý¾Ý¿âµÄ±ítbl_nameµÄÁÐcol_name
db_name.tbl_name.col_name ÐÐÁÐcol_name´Ó±í¸ñtbl_nameÊý¾Ý¿âdb_name¡£Õâ¸öÐÎʽÔÚMySQL3.22»òÒÔºó°æ±¾¿ÉÓá£
`column_name` ÊÇÒ»¸ö¹Ø¼ü´Ê»ò°üº¬ÌØÊâ×Ö·ûµÄÁС£

ÔÚÒ»ÌõÓï¾äµÄÁÐÒýÓÃÖУ¬Äã²»±ØÖ¸¶¨Ò»¸ötbl_name»òdb_name.tbl_nameǰ׺£¬³ý·ÇÒýÓûáÓжþÒåÐÔ¡£ÀýÈ磬¼Ù¶¨±ít1ºÍt2£¬Ã¿¸ö¾ù°üº¬ÁÐc£¬²¢ÇÒÄãÓÃÒ»¸öʹÓÃt1ºÍt2µÄSELECTÓï¾ä¼ìË÷c¡£ÔÚÕâÖÖÇé¿öÏ£¬cÓжþÒåÐÔ£¬ÒòΪËüÔÚʹÓñíµÄÓï¾äÖв»ÊÇΨһµÄ£¬Òò´ËÄã±ØÐëͨ¹ýд³öt1.c»òt2.cÀ´Ö¸Ã÷ÄãÏëÒªÄĸö±í¡£Í¬Ñù£¬Èç¹ûÄã´ÓÊý¾Ý¿âdb1ÖÐÒ»¸ö±ítºÍÔÚÊý¾Ý¿âdb2µÄÒ»¸ö±ít¼ìË÷£¬Äã±ØÐëÓÃdb1.t.col_nameºÍdb2.t.col_nameÒýÓÃÕâЩÊý¾Ý±íµÄÁС£

¾ä·¨.tbl_nameÒâζ×ÅÔÚµ±Ç°µÄÊý¾Ý¿âÖеıítbl_name£¬¸Ã¾ä·¨ÎªÁËODBCµÄ¼æÈÝÐÔ±»½ÓÊÜ£¬ÒòΪһЩODBC³ÌÐòÓÃÒ»¸ö¡°.¡±×Ö·û×÷ΪÊý¾Ý¿â±íÃûµÄǰ׺¡£

7.1.5.1 Ãû×ֵĴóСдÃô¸ÐÐÔ

ÔÚMySQLÖУ¬Êý¾Ý¿âºÍ±í¶ÔÓ¦ÓÚÔÚÄÇЩĿ¼ÏµÄĿ¼ºÍÎļþ£¬Òò¶ø£¬ÄÚÔڵIJÙ×÷ϵͳµÄÃô¸ÐÐÔ¾ö¶¨Êý¾Ý¿âºÍ±íÃüÃûµÄ´óСдÃô¸ÐÐÔ¡£ÕâÒâζ×ÅÊý¾Ý¿âºÍ±íÃûÔÚUnixÉÏÊÇÇø·Ö´óСдµÄ£¬¶øÔÚWin32ÉϺöÂÔ´óСд¡£

×¢Ò⣺ÔÚWin32ÉÏ£¬¾¡¹ÜÊý¾Ý¿âºÍ±íÃûÊǺöÂÔ´óСдµÄ£¬Äã²»Ó¦¸ÃÔÚͬһ¸ö²éѯÖÐʹÓò»Í¬µÄ´óСдÀ´ÒýÓÃÒ»¸ö¸ø¶¨µÄÊý¾Ý¿âºÍ±í¡£ÏÂÁвéѯ½«²»¹¤×÷£¬ÒòΪËü×÷Ϊmy_tableºÍ×÷ΪMY_TABLEÒýÓÃÒ»¸ö±í£º

mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;

ÁÐÃûÔÚËùÓÐÇé¿ö϶¼ÊǺöÂÔ´óСдµÄ¡£

±íµÄ±ðÃûÊÇÇø·Ö´óСдµÄ¡£ÏÂÁвéѯ½«²»¹¤×÷£¬: ÒòΪËüÓÃaºÍAÒýÓñðÃû£º

mysql> SELECT col_name FROM tbl_name AS a
           WHERE a.col_name = 1 OR A.col_name = 2;

ÁеıðÃûÊǺöÂÔ´óСдµÄ¡£

7.2 Óû§±äÁ¿

MySQLÖ§³ÖÏß³ÌÌØ¶¨µÄ±äÁ¿£¬ÓÃ@variablename¾ä·¨¡£Ò»¸ö±äÁ¿Ãû¿ÉÒÔÓɵ±Ç°×Ö·û¼¯µÄÊý×Ö×Öĸ×Ö·ûºÍ¡°_¡±¡¢¡°$¡±ºÍ¡°.¡±×é³É¡£È±Ê¡×Ö·û¼¯ÊÇISO-8859-1 Latin1£»Õâ¿ÉÒÔͨ¹ýÖØÐ±àÒëMySQL¸Ä±ä¡£¼û9.1.1 ÓÃÓÚÊý¾ÝºÍÅÅÐòµÄ×Ö·û¼¯¡£

±äÁ¿²»±Ø±»³õʼ»¯¡£È±Ê¡µØ£¬ËûÃǰüº¬NULL²¢ÄÜ´æ´¢ÕûÊý¡¢ÊµÊý»òÒ»¸ö×Ö·û´®Öµ¡£µ±Ïß³ÌÍ˳öʱ£¬¶ÔÓÚÒ»¸öÏ̵߳ÄËùÓбäÁ¿×Ô¶¯µØ±»ÊÍ·Å¡£

Äã¿ÉÒÔÓÃSET¾ä·¨ÉèÖÃÒ»¸ö±äÁ¿£º

SET @variable= { integer expression | real expression | string expression }
[,@variable= ...].

ÄãÒ²¿ÉÒÔÓÃ@variable:=expr¾ä·¨ÔÚÒ»¸ö±í´ïʽÖÐÉèÖÃÒ»¸ö±äÁ¿£º

select @t1:=(@t2:=1)+@t3:=4,@t1,@t2,@t3;
+----------------------+------+------+------+
| @t1:=(@t2:=1)+@t3:=4 | @t1  | @t2  | @t3  |
+----------------------+------+------+------+
|                    5 |    5 |    1 |    4 |
+----------------------+------+------+------+

£¨ÕâÀÎÒÃDz»µÃ²»Ê¹ÓÃ:=¾ä·¨£¬ÒòΪ=ÊÇΪ±È½Ï±£ÁôµÄ£©

7.3 ÁÐÀàÐÍ

MySQLÖ§³Ö´óÁ¿µÄÁÐÀàÐÍ£¬Ëü¿ÉÒÔ±»·ÖΪ3ÀࣺÊý×ÖÀàÐÍ¡¢ÈÕÆÚºÍʱ¼äÀàÐÍÒÔ¼°×Ö·û´®(×Ö·û)ÀàÐÍ¡£±¾½ÚÊ×Ïȸø³ö¿ÉÓÃÀàÐ͵ÄÒ»¸ö¸ÅÊö£¬²¢ÇÒ×ܽáÿ¸öÁÐÀàÐ͵Ĵ洢ÐèÇó£¬È»ºóÌṩÿ¸öÀàÖеÄÀàÐÍÐÔÖʵĸüÏêϸµÄÃèÊö¡£¸ÅÊöÓÐÒâ¼ò»¯£¬¸üÏêϸµÄ˵Ã÷Ó¦¸Ã¿¼Âǵ½ÓйØÌض¨ÁÐÀàÐ͵ĸ½¼ÓÐÅÏ¢£¬ÀýÈçÄãÄÜΪÆäÖ¸¶¨ÖµµÄÔÊÐí¸ñʽ¡£

ÓÉMySQLÖ§³ÖµÄÁÐÀàÐÍÁÐÔÚÏÂÃæ¡£ÏÂÁдúÂë×ÖĸÓÃÓÚÃèÊöÖУº

M
Ö¸³ö×î´óµÄÏÔʾ³ß´ç¡£×î´óµÄºÏ·¨µÄÏÔʾ³ß´çÊÇ 255 ¡£
D
ÊÊÓÃÓÚ¸¡µãÀàÐͲ¢ÇÒÖ¸³ö¸úËæÔÚÊ®½øÖÆÐ¡ÊýµãºóµÄÊýÂëµÄÊýÁ¿¡£×î´ó¿ÉÄܵÄÖµÊÇ30£¬µ«ÊÇÓ¦¸Ã²»´óÓÚM-2¡£

·½À¨ºÅ(¡°[¡±ºÍ¡°]¡±)Ö¸³ö¿ÉÑ¡µÄÀàÐÍÐÞÊηûµÄ²¿·Ö¡£

×¢Ò⣬Èç¹ûÄãÖ¸¶¨Ò»¸öÁËΪZEROFILL£¬MySQL½«Îª¸ÃÁÐ×Ô¶¯µØÔö¼ÓUNSIGNEDÊôÐÔ¡£

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
Ò»¸öºÜСµÄÕûÊý¡£ÓзûºÅµÄ·¶Î§ÊÇ-128µ½127£¬ÎÞ·ûºÅµÄ·¶Î§ÊÇ0µ½255¡£
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
Ò»¸öСÕûÊý¡£ÓзûºÅµÄ·¶Î§ÊÇ-32768µ½32767£¬ÎÞ·ûºÅµÄ·¶Î§ÊÇ0µ½65535¡£
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
Ò»¸öÖеȴóСÕûÊý¡£ÓзûºÅµÄ·¶Î§ÊÇ-8388608µ½8388607£¬ÎÞ·ûºÅµÄ·¶Î§ÊÇ0µ½16777215¡£
INT[(M)] [UNSIGNED] [ZEROFILL]
Ò»¸öÕý³£´óСÕûÊý¡£ÓзûºÅµÄ·¶Î§ÊÇ-2147483648µ½2147483647£¬ÎÞ·ûºÅµÄ·¶Î§ÊÇ0µ½4294967295¡£
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
ÕâÊÇINTµÄÒ»¸öͬÒå´Ê¡£
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
Ò»¸ö´óÕûÊý¡£ÓзûºÅµÄ·¶Î§ÊÇ-9223372036854775808µ½9223372036854775807£¬ÎÞ·ûºÅµÄ·¶Î§ÊÇ0µ½18446744073709551615¡£×¢Ò⣬ËùÓÐËãÊõÔËËãÓÃÓзûºÅµÄBIGINT»òDOUBLEÖµÍê³É£¬Òò´ËÄã²»Ó¦¸ÃʹÓôóÓÚ9223372036854775807£¨63λ)µÄÓзûºÅ´óÕûÊý£¬³ýÁËλº¯Êý£¡×¢Ò⣬µ±Á½¸ö²ÎÊýÊÇINTEGERֵʱ£¬-¡¢+ºÍ*½«Ê¹ÓÃBIGINTÔËË㣡ÕâÒâζ×ÅÈç¹ûÄã³Ë2¸ö´óÕûÊý(»òÀ´×ÔÓÚ·µ»ØÕûÊýµÄº¯Êý)£¬Èç¹û½á¹û´óÓÚ9223372036854775807£¬Äã¿ÉÒԵõ½ÒâÍâµÄ½á¹û¡£Ò»¸ö¸¡µãÊý×Ö£¬²»ÄÜÊÇÎÞ·ûºÅµÄ£¬¶ÔÒ»¸öµ¥¾«¶È¸¡µãÊý£¬Æä¾«¶È¿ÉÒÔÊÇ<=24£¬¶ÔÒ»¸öË«¾«¶È¸¡µãÊý£¬ÊÇÔÚ25 ºÍ53Ö®¼ä£¬ÕâЩÀàÐÍÈçFLOATºÍDOUBLEÀàÐÍÂíÉÏÔÚÏÂÃæÃèÊö¡£FLOAT(X)ÓжÔÓ¦µÄFLOATºÍDOUBLEÏàͬµÄ·¶Î§£¬µ«ÊÇÏÔʾ³ß´çºÍСÊýλÊýÊÇ䶨ÒåµÄ¡£ÔÚMySQL3.23ÖУ¬ÕâÊÇÒ»¸öÕæÕýµÄ¸¡µãÖµ¡£ÔÚ¸üÔçµÄMySQL°æ±¾ÖУ¬FLOAT(precision)×ÜÊÇÓÐ2λСÊý¡£¸Ã¾ä·¨ÎªÁËODBC¼æÈÝÐÔ¶øÌṩ¡£
FLOAT[(M,D)] [ZEROFILL]
Ò»¸öС(µ¥¾«ÃÜ)¸¡µãÊý×Ö¡£²»ÄÜÎÞ·ûºÅ¡£ÔÊÐíµÄÖµÊÇ-3.402823466E+38µ½-1.175494351E-38£¬0 ºÍ1.175494351E-38µ½3.402823466E+38¡£MÊÇÏÔʾ¿í¶È¶øDÊÇСÊýµÄλÊý¡£Ã»ÓвÎÊýµÄFLOAT»òÓÐ<24 µÄÒ»¸ö²ÎÊý±íʾһ¸öµ¥¾«Ãܸ¡µãÊý×Ö¡£
DOUBLE[(M,D)] [ZEROFILL]
Ò»¸öÕý³£´óС(Ë«¾«ÃÜ)¸¡µãÊý×Ö¡£²»ÄÜÎÞ·ûºÅ¡£ÔÊÐíµÄÖµÊÇ-1.7976931348623157E+308µ½-2.2250738585072014E-308¡¢ 0ºÍ2.2250738585072014E-308µ½1.7976931348623157E+308¡£MÊÇÏÔʾ¿í¶È¶øDÊÇСÊýλÊý¡£Ã»ÓÐÒ»¸ö²ÎÊýµÄDOUBLE»òFLOAT(X)£¨25 < = X < = 53£©´ú±íÒ»¸öË«¾«Ãܸ¡µãÊý×Ö¡£
DOUBLE PRECISION[(M,D)] [ZEROFILL]
¡¡
REAL[(M,D)] [ZEROFILL]
ÕâЩÊÇDOUBLEͬÒå´Ê¡£
DECIMAL[(M[,D])] [ZEROFILL]
Ò»¸öδѹËõ(unpack)µÄ¸¡µãÊý×Ö¡£²»ÄÜÎÞ·ûºÅ¡£ÐÐΪÈçͬһ¸öCHARÁУº¡°Î´Ñ¹Ëõ¡±Òâζ×ÅÊý×Ö×÷Ϊһ¸ö×Ö·û´®±»´æ´¢£¬ÖµµÄÿһλʹÓÃÒ»¸ö×Ö·û¡£Ð¡Êýµã£¬²¢ÇÒ¶ÔÓÚ¸ºÊý£¬¡°-¡±·ûºÅ²»ÔÚMÖмÆËã¡£Èç¹ûDÊÇ0£¬Öµ½«Ã»ÓÐСÊýµã»òСÊý²¿·Ö¡£DECIMALÖµµÄ×î´ó·¶Î§ÓëDOUBLEÏàͬ£¬µ«ÊǶÔÒ»¸ö¸ø¶¨µÄDECIMALÁУ¬Êµ¼ÊµÄ·¶Î§¿ÉÒÔͨ¹ýMºÍDµÄÑ¡Ôñ±»ÏÞÖÆ¡£Èç¹ûD±»Ê¡ÂÔ£¬Ëü±»ÉèÖÃΪ0¡£Èç¹ûM±»Ê¡µô£¬Ëü±»ÉèÖÃΪ10¡£×¢Ò⣬ÔÚMySQL3.22ÀM²ÎÊý°üÀ¨·ûºÅºÍСÊýµã¡£
NUMERIC(M,D) [ZEROFILL]
ÕâÊÇDECIMALµÄÒ»¸öͬÒå´Ê¡£
DATE
Ò»¸öÈÕÆÚ¡£Ö§³ÖµÄ·¶Î§ÊÇ'1000-01-01'µ½'9999-12-31'¡£MySQLÒÔ'YYYY-MM-DD'¸ñʽÀ´ÏÔʾDATEÖµ£¬µ«ÊÇÔÊÐíÄãʹÓÃ×Ö·û´®»òÊý×Ö°ÑÖµ¸³¸øDATEÁС£
DATETIME
Ò»¸öÈÕÆÚºÍʱ¼ä×éºÏ¡£Ö§³ÖµÄ·¶Î§ÊÇ'1000-01-01 00:00:00'µ½'9999-12-31 23:59:59'¡£MySQLÒÔ'YYYY-MM-DD HH:MM:SS'¸ñʽÀ´ÏÔʾDATETIMEÖµ£¬µ«ÊÇÔÊÐíÄãʹÓÃ×Ö·û´®»òÊý×Ö°ÑÖµ¸³¸øDATETIMEµÄÁС£
TIMESTAMP[(M)]
Ò»¸öʱ¼ä´Á¼Ç¡£·¶Î§ÊÇ'1970-01-01 00:00:00'µ½2037ÄêµÄijʱ¡£MySQLÒÔYYYYMMDDHHMMSS¡¢YYMMDDHHMMSS¡¢YYYYMMDD»òYYMMDD¸ñʽÀ´ÏÔʾTIMESTAMPÖµ£¬È¡¾öÓÚÊÇ·ñMÊÇ14£¨»òÊ¡ÂÔ)¡¢12¡¢8»ò6£¬µ«ÊÇÔÊÐíÄãʹÓÃ×Ö·û´®»òÊý×Ö°ÑÖµ¸³¸øTIMESTAMPÁС£Ò»¸öTIMESTAMPÁжÔÓڼǼһ¸öINSERT»òUPDATE²Ù×÷µÄÈÕÆÚºÍʱ¼äÊÇÓÐÓõģ¬ÒòΪÈç¹ûÄã²»×Ô¼º¸øËü¸³Öµ£¬Ëü×Ô¶¯µØ±»ÉèÖÃΪ×î½ü²Ù×÷µÄÈÕÆÚºÍʱ¼ä¡£ÄãÒÔ¿ÉÒÔͨ¹ý¸³¸øËüÒ»¸öNULLÖµÉèÖÃËüΪµ±Ç°µÄÈÕÆÚºÍʱ¼ä¡£¼û7.3.6 ÈÕÆÚºÍʱ¼äÀàÐÍ¡£
TIME
Ò»¸öʱ¼ä¡£·¶Î§ÊÇ'-838:59:59'µ½'838:59:59'¡£MySQLÒÔ'HH:MM:SS'¸ñʽÀ´ÏÔʾTIMEÖµ£¬µ«ÊÇÔÊÐíÄãʹÓÃ×Ö·û´®»òÊý×Ö°ÑÖµ¸³¸øTIMEÁС£
YEAR[(2|4)]
Ò»¸ö2»ò4λÊý×Ö¸ñʽµÄÄê(ȱʡÊÇ4λ)¡£ÔÊÐíµÄÖµÊÇ1901µ½2155£¬ºÍ0000£¨4λÄê¸ñʽ£©£¬Èç¹ûÄãʹÓÃ2룬1970-2069( 70-69)¡£MySQLÒÔYYYY¸ñʽÀ´ÏÔʾYEARÖµ£¬µ«ÊÇÔÊÐíÄã°ÑʹÓÃ×Ö·û´®»òÊý×ÖÖµ¸³¸øYEARÁС££¨YEARÀàÐÍÔÚMySQL3.22ÖÐÊÇÐÂÀàÐÍ¡££©
CHAR(M) [BINARY]
Ò»¸ö¶¨³¤×Ö·û´®£¬µ±´æ´¢Ê±£¬×ÜÊÇÊÇÓÿոñÌîÂúÓұߵ½Ö¸¶¨µÄ³¤¶È¡£MµÄ·¶Î§ÊÇ1 ¡« 255¸ö×Ö·û¡£µ±Öµ±»¼ìË÷ʱ£¬¿Õ¸ñβ²¿±»É¾³ý¡£CHARÖµ¸ù¾Ýȱʡ×Ö·û¼¯ÒÔ´óСд²»Çø·ÖµÄ·½Ê½ÅÅÐòºÍ±È½Ï£¬³ý·Ç¸ø³öBINARY¹Ø¼ü´Ê¡£NATIONAL CHAR£¨¶ÌÐÎʽNCHAR)ÊÇANSI SQLµÄ·½Ê½À´¶¨ÒåCHARÁÐÓ¦¸ÃʹÓÃȱʡ×Ö·û¼¯¡£ÕâÊÇMySQLµÄȱʡ¡£CHARÊÇCHARACTERµÄÒ»¸öËõд¡£
[NATIONAL] VARCHAR(M) [BINARY]
Ò»¸ö±ä³¤×Ö·û´®¡£×¢Ò⣺µ±Öµ±»´æ´¢Ê±£¬Î²²¿µÄ¿Õ¸ñ±»É¾³ý(ÕⲻͬÓÚANSI SQL¹æ·¶)¡£MµÄ·¶Î§ÊÇ1 ¡« 255¸ö×Ö·û¡£ VARCHARÖµ¸ù¾Ýȱʡ×Ö·û¼¯ÒÔ´óСд²»Çø·ÖµÄ·½Ê½ÅÅÐòºÍ±È½Ï£¬³ý·Ç¸ø³öBINARY¹Ø¼ü´ÊÖµ¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯¡£ VARCHARÊÇCHARACTER VARYINGÒ»¸öËõд¡£
TINYBLOB
¡¡
TINYTEXT
Ò»¸öBLOB»òTEXTÁУ¬×î´ó³¤¶ÈΪ255(2^8-1)¸ö×Ö·û¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯¡£
BLOB
¡¡
TEXT
Ò»¸öBLOB»òTEXTÁУ¬×î´ó³¤¶ÈΪ65535(2^16-1)¸ö×Ö·û¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯¡£
MEDIUMBLOB
¡¡
MEDIUMTEXT
Ò»¸öBLOB»òTEXTÁУ¬×î´ó³¤¶ÈΪ16777215(2^24-1)¸ö×Ö·û¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯¡£
LONGBLOB
¡¡
LONGTEXT
Ò»¸öBLOB»òTEXTÁУ¬×î´ó³¤¶ÈΪ4294967295(2^32-1)¸ö×Ö·û¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯
ENUM('value1','value2',...)
ö¾Ù¡£Ò»¸ö½öÓÐÒ»¸öÖµµÄ×Ö·û´®¶ÔÏó£¬Õâ¸öֵʽѡ×ÔÓëÖµÁбí'value1'¡¢'value2', ...,»òNULL¡£Ò»¸öENUM×î¶àÄÜÓÐ65535²»Í¬µÄÖµ¡£
SET('value1','value2',...)
Ò»¸ö¼¯ºÏ¡£ÄÜÓÐÁã¸ö»ò¶à¸öÖµµÄÒ»¸ö×Ö·û´®¶ÔÏ󣬯äÖÐÿһ¸ö±ØÐë´ÓÖµÁбí'value1', 'value2', ...Ñ¡³ö¡£Ò»¸öSET×î¶àÄÜÓÐ64¸ö³ÉÔ±¡£

7.3.1 ÁÐÀàÐÍ´æ´¢ÐèÇó

¶ÔÓÚÿ¸öÓÉMySQLÖ§³ÖµÄÁÐÀàÐ͵Ĵ洢ÐèÇóÔÚÏÂÃæ°´ÀàÁгö¡£

7.3.2 Êý×ÖÀàÐÍ

ÁÐÀàÐÍ ÐèÒªµÄ´æ´¢Á¿
TINYINT 1 ×Ö½Ú
SMALLINT 2 ¸ö×Ö½Ú
MEDIUMINT 3 ¸ö×Ö½Ú
INT 4 ¸ö×Ö½Ú
INTEGER 4 ¸ö×Ö½Ú
BIGINT 8 ¸ö×Ö½Ú
FLOAT(X) 4 Èç¹û X < = 24 »ò 8 Èç¹û 25 < = X < = 53
FLOAT 4 ¸ö×Ö½Ú
DOUBLE 8 ¸ö×Ö½Ú
DOUBLE PRECISION 8 ¸ö×Ö½Ú
REAL 8 ¸ö×Ö½Ú
DECIMAL(M,D) M×Ö½Ú(D+2 , Èç¹ûM < D)
NUMERIC(M,D) M×Ö½Ú(D+2 , Èç¹ûM < D)

7.3.3 ÈÕÆÚºÍʱ¼äÀàÐÍ

ÁÐÀàÐÍ ÐèÒªµÄ´æ´¢Á¿
DATE 3 ¸ö×Ö½Ú
DATETIME 8 ¸ö×Ö½Ú
TIMESTAMP 4 ¸ö×Ö½Ú
TIME 3 ¸ö×Ö½Ú
YEAR 1 ×Ö½Ú

7.3.4 ´®ÀàÐÍ

ÁÐÀàÐÍ ÐèÒªµÄ´æ´¢Á¿
CHAR(M) M×Ö½Ú£¬1 <= M <= 255
VARCHAR(M) L+1 ×Ö½Ú, ÔÚ´ËL <= MºÍ1 <= M <= 255
TINYBLOB, TINYTEXT L+1 ×Ö½Ú, ÔÚ´ËL< 2 ^ 8
BLOB, TEXT L+2 ×Ö½Ú, ÔÚ´ËL< 2 ^ 16
MEDIUMBLOB, MEDIUMTEXT L+3 ×Ö½Ú, ÔÚ´ËL< 2 ^ 24
LONGBLOB, LONGTEXT L+4 ×Ö½Ú, ÔÚ´ËL< 2 ^ 32
ENUM('value1','value2',...) 1 »ò 2 ¸ö×Ö½Ú, È¡¾öÓÚö¾ÙÖµµÄÊýÄ¿(×î´óÖµ65535£©
SET('value1','value2',...) 1£¬2£¬3£¬4»ò8¸ö×Ö½Ú, È¡¾öÓÚ¼¯ºÏ³ÉÔ±µÄÊýÁ¿(×î¶à64¸ö³ÉÔ±£©

VARCHARºÍBLOBºÍTEXTÀàÐÍÊDZ䳤ÀàÐÍ£¬¶ÔÓÚÆä´æ´¢ÐèÇóÈ¡¾öÓÚÁÐÖµµÄʵ¼Ê³¤¶È(ÔÚÇ°ÃæµÄ±í¸ñÖÐÓÃL±íʾ)£¬¶ø²»ÊÇÈ¡¾öÓÚÀàÐ͵Ä×î´ó¿ÉÄܳߴ硣ÀýÈ磬һ¸öVARCHAR(10)ÁÐÄܱ£´æ×î´ó³¤¶ÈΪ10¸ö×Ö·ûµÄÒ»¸ö×Ö·û´®£¬Êµ¼ÊµÄ´æ´¢ÐèÒªÊÇ×Ö·û´®µÄ³¤¶È(L)£¬¼ÓÉÏ1¸ö×Ö½ÚÒԼǼ×Ö·û´®µÄ³¤¶È¡£¶ÔÓÚ×Ö·û´®'abcd'£¬LÊÇ4¶ø´æ´¢ÒªÇóÊÇ5¸ö×Ö½Ú¡£

BLOBºÍTEXTÀàÐÍÐèÒª1£¬2£¬3»ò4¸ö×Ö½ÚÀ´¼Ç¼ÁÐÖµµÄ³¤¶È£¬ÕâÈ¡¾öÓÚÀàÐ͵Ä×î´ó¿ÉÄܳ¤¶È¡£

Èç¹ûÒ»¸ö±í°üÀ¨Èκα䳤µÄÁÐÀàÐÍ£¬¼Ç¼¸ñʽ½«Ò²ÊDZ䳤µÄ¡£×¢Ò⣬µ±Ò»¸ö±í±»´´½¨Ê±£¬MySQL¿ÉÄÜÔÚijЩÌõ¼þϽ«Ò»¸öÁдÓÒ»¸ö±ä³¤ÀàÐ͸ıäΪһ¸ö¶¨³¤ÀàÐÍ»òÏà·´¡£¼û7.7.1 ÒþʽÁÐÖ¸¶¨±ä»¯¡£

Ò»¸öENUM¶ÔÏóµÄ´óСÓɲ»Í¬Ã¶¾ÙÖµµÄÊýÁ¿¾ö¶¨¡£1×Ö½Ú±»ÓÃÓÚö¾Ù£¬×î´óµ½255¸ö¿ÉÄܵÄÖµ£»2¸ö×Ö½ÚÓÃÓÚö¾Ù£¬×î´óµ½65535 Öµ¡£

Ò»¸öSET¶ÔÏóµÄ´óСÓɲ»Í¬µÄ¼¯ºÏ³ÉÔ±µÄÊýÁ¿¾ö¶¨¡£Èç¹û¼¯ºÏ´óСÊÇN£¬¶ÔÏóÕ¼¾Ý(N+7)/8¸ö×Ö½Ú£¬ËÄÉáÎåÈëΪ1£¬2£¬3£¬4»ò8 ¸ö×Ö½Ú¡£Ò»¸öSET×î¶àÄÜÓÐ64¸ö³ÉÔ±¡£

7.3.5 Êý×ÖÀàÐÍ

MySQLÖ§³ÖËùÓеÄANSI/ISO SQL92µÄÊý×ÖÀàÐÍ¡£ÕâЩÀàÐͰüÀ¨×¼È·Êý×ÖµÄÊý¾ÝÀàÐÍ(NUMERIC, DECIMAL, INTEGER,ºÍSMALLINT)£¬Ò²°üÀ¨½üËÆÊý×ÖµÄÊý¾ÝÀàÐÍ(FLOAT, REAL,ºÍDOUBLE PRECISION)¡£¹Ø¼ü´ÊINTÊÇINTEGERµÄÒ»¸öͬÒå´Ê£¬¶ø¹Ø¼ü´ÊDECÊÇDECIMALÒ»¸öͬÒå´Ê¡£

NUMERICºÍDECIMALÀàÐͱ»MySQLʵÏÖΪͬÑùµÄÀàÐÍ£¬ÕâÔÚSQL92±ê×¼ÔÊÐí¡£ËûÃDZ»ÓÃÓÚ±£´æÖµ£¬¸ÃÖµµÄ׼ȷ¾«¶ÈÊǼ«ÆäÖØÒªµÄÖµ£¬ÀýÈçÓë½ðÇ®ÓйصÄÊý¾Ý¡£µ±ÉùÃ÷Ò»¸öÀàÊÇÕâЩÀàÐÍ֮һʱ£¬¾«¶ÈºÍ¹æÄ£µÄÄܱ»(²¢ÇÒͨ³£ÊÇ)Ö¸¶¨£»ÀýÈ磺

salary DECIMAL(9,2) 

ÔÚÕâ¸öÀý×ÓÖУ¬9(precision)´ú±í½«±»ÓÃÓÚ´æ´¢ÖµµÄ×ܵÄСÊýλÊý£¬¶ø2(scale)´ú±í½«±»ÓÃÓڴ洢СÊýµãºóµÄλÊý¡£Òò´Ë£¬ÔÚÕâÖÖÇé¿öÏ£¬Äܱ»´æ´¢ÔÚsalaryÁÐÖеÄÖµµÄ·¶Î§ÊÇ´Ó-9999999.99µ½9999999.99¡£ÔÚANSI/ISO SQL92ÖУ¬¾ä·¨DECIMAL(p)µÈ¼ÛÓÚDECIMAL(p,0)¡£Í¬Ñù£¬¾ä·¨DECIMALµÈ¼ÛÓÚDECIMAL(p,0)£¬ÕâÀïʵÏÖ±»ÔÊÐí¾ö¶¨Öµp¡£MySQLµ±Ç°²»Ö§³ÖDECIMAL/NUMERICÊý¾ÝÀàÐ͵ÄÕâЩ±äÖÖÐÎʽµÄÈÎÒ»ÖÖ¡£ÕâÒ»°ã˵À´²»ÊÇÒ»¸öÑÏÖØµÄÎÊÌ⣬ÒòΪÕâЩÀàÐ͵ÄÖ÷ÒªÒæ´¦µÃ×ÔÓÚÃ÷ÏԵؿØÖƾ«¶ÈºÍ¹æÄ£µÄÄÜÁ¦¡£

DECIMALºÍNUMERICÖµ×÷Ϊ×Ö·û´®´æ´¢£¬¶ø²»ÊÇ×÷Ϊ¶þ½øÖƸ¡µãÊý£¬ÒԱ㱣´æÄÇЩֵµÄСÊý¾«¶È¡£Ò»¸ö×Ö·ûÓÃÓÚÖµµÄÿһλ¡¢Ð¡Êýµã(Èç¹ûscale>0)ºÍ¡°-¡±·ûºÅ(¶ÔÓÚ¸ºÖµ)¡£Èç¹ûscaleÊÇ0£¬DECIMALºÍNUMERICÖµ²»°üº¬Ð¡Êýµã»òСÊý²¿·Ö¡£

DECIMALºÍNUMERICÖµµÃ×î´óµÄ·¶Î§ÓëDOUBLEÒ»Ñù£¬µ«ÊǶÔÓÚÒ»¸ö¸ø¶¨µÄDECIMAL»òNUMERICÁУ¬Êµ¼ÊµÄ·¶Î§¿ÉÓÉÖÆÓɸø¶¨ÁеÄprecision»òscaleÏÞÖÆ¡£µ±ÕâÑùµÄÁи³¸øÁËСÊýµãºóÃæµÄ볬¹ýÖ¸¶¨scaleËùÔÊÐíµÄλµÄÖµ£¬¸ÃÖµ¸ù¾ÝscaleËÄÉáÎåÈë¡£µ±Ò»¸öDECIMAL»òNUMERICÁб»¸³¸øÁËÆä´óС³¬¹ýÖ¸¶¨(»òȱʡµÄ£©precisionºÍscaleÒþº¬µÄ·¶Î§µÄÖµ£¬MySQL´æ´¢±íʾÄǸö·¶Î§µÄÏàÓ¦µÄ¶ËµãÖµ¡£

×÷Ϊ¶ÔANSI/ISO SQL92±ê×¼µÄÀ©Õ¹£¬MySQLÒ²Ö§³ÖÉϱíËùÁеÄÕûÐÍÀàÐÍTINYINT¡¢MEDIUMINTºÍBIGINT¡£ÁíÒ»¸öÀ©Õ¹ÊÇMySQLÖ§³Ö¿ÉÑ¡µØÖ¸¶¨Ò»¸öÕûÐÍÖµÏÔʾµÄ¿í¶È£¬ÓÃÀ¨ºÅ¸úÔÚ»ù±¾¹Ø¼ü´ÊÖ®ºó(ÀýÈ磬INT(4))¡£Õâ¸ö¿ÉÑ¡µÄ¿í¶ÈÖ¸¶¨±»ÓÃÓÚÆä¿í¶ÈСÓÚÁÐÖ¸¶¨¿í¶ÈµÄÖµµÃ×óÌî²¹ÏÔʾ£¬µ«ÊDz»ÏÞÖÆÄÜÔÚÁÐÖб»´æ´¢µÄÖµµÄ·¶Î§£¬Ò²²»ÏÞÖÆÖµ½«±»ÏÔʾµÄλÊý£¬Æä¿í¶È³¬¹ýÁÐÖ¸¶¨µÄ¿í¶È¡£µ±Óë¿ÉÑ¡µÄÀ©Õ¹ÊôÐÔZEROFILLÒ»ÆðʹÓÃʱ£¬È±Ê¡µÄ¿Õ¸ñÌî²¹ÓÃÁã´úÌæ¡£ÀýÈ磬¶ÔÓÚÉùÃ÷ΪINT(5) ZEROFILLµÄÁУ¬Ò»¸öΪ4µÄÖµ×÷Ϊ00004±»¼ìË÷¡£×¢Ò⣬Èç¹ûÄãÔÚÒ»¸öÕûÐÍÁд洢³¬¹ýÏÔʾ¿í¶ÈµÄ¸ü´óÖµ£¬µ±MySQL¶ÔÓÚijЩ¸´ÔÓµÄÁª½á(join)Éú³ÉÁÙʱ±íʱ£¬Äã¿ÉÄÜ»áÓöµ½ÎÊÌ⣬ÒòΪÔÚÕâЩÇé¿öÏ£¬MySQLÏàÐÅÊý¾ÝȷʵÊʺÏÔ­À´µÄÁпí¶È¡£

ËùÓеÄÕûÐÍÀàÐÍ¿ÉÒÔÓÐÒ»¸ö¿ÉÑ¡(·Ç±ê×¼µÄ)ÊôÐÔUNSIGNED¡£µ±ÄãÏëÒªÔÚÁÐÖнöÔÊÐíÕýÊý²¢ÇÒÄãÐèÒªÒ»¸öÉÔ´óÒ»µãµÄÁз¶Î§£¬¿ÉÒÔʹÓÃÎÞ·ûºÅÖµ¡£

FLOATÀàÐͱ»ÓÃÀ´±êʾ½üËÆÊý×ÖµÄÊý¾ÝÀàÐÍ¡£ANSI/ISO SQL92±ê×¼ÔÊÐíÒ»¸ö¿ÉÑ¡µÄ¾«¶È˵Ã÷(µ«²»ÊÇÖ¸ÊýµÄ·¶Î§)£¬¸úÔڹؼü´ÊFLOATºóÃæµÄÀ¨ºÅÄÚλÊý¡£MySQLʵÏÖÒ²Ö§³ÖÕâ¸ö¿ÉÑ¡µÄ¾«¶È˵Ã÷¡£µ±¹Ø¼ü´ÊFLOAT±»ÓÃÓÚÒ»¸öÁÐÀàÐͶøÃ»Óо«¶È˵Ã÷ʱ£¬MySQLʹÓÃ4¸ö×Ö½Ú´æ´¢Öµ¡£Ò»¸ö±äÖֵľ䷨Ҳ±»Ö§³Ö£¬ÔÚFLOAT¹Ø¼ü´ÊºóÃæµÄÀ¨ºÅ¸ø³ö2¸öÊý×Ö¡£ÓÃÕâ¸öÑ¡ÏµÚÒ»¸öÊý×Ö¼ÌÐø±íʾÔÚ×Ö½Ú¼ÆËãµÄÖµ´æ´¢ÐèÇ󣬶øµÚ¶þ¸öÊý×ÖÖ¸¶¨Òª±»´æ´¢µÄºÍÏÔʾ¸úËæÐ¡ÊýµãºóµÄλÊý(¾ÍÏóDECIMALºÍNUMERIC)¡£µ±MySQLÒªÇóΪÕâÑùÒ»¸öÁУ¬Ò»¸öСÊýµãºóµÄСÊý볬¹ýÁÐÖ¸¶¨µÄÖµ£¬´æ´¢ÖµÊ±£¬¸ÃÖµ±»ËÄÉáÎåÈ룬ȥµô¶îÍâµÄλ¡£

REALºÍDOUBLE PRECISIONÀàÐͲ»½ÓÊܾ«¶È˵Ã÷¡£×÷Ϊ¶Ô ANSI/ISO SQL92 ±ê×¼µÄÀ©Õ¹£¬MySQLʶ±ð³öDOUBLE×÷ΪDOUBLE PRECISIONÀàÐ͵ÄÒ»¸öͬÒå´Ê¡£ÓëREAL¾«¶È±ÈÓÃÓÚDOUBLE PRECISIONµÄ¸üСµÄ±ê×¼ÒªÇóÏà·´£¬MySQLʵÏÖÁËÁ½ÖÖ£¬×÷Ϊ8×Ö½ÚË«¾«¶È¸¡µãÖµ(µ±ÔËÐв»ÊÇ¡°Ansiģʽ¡±Ê±)¡£ÎªÁË×î´óµÄÒÆÖ²ÐÔ£¬½üËÆÊý×ÖµÄÊý¾ÝÖµµÄ´æ´¢ËùÐè´úÂëÓ¦¸ÃʹÓÃûÓо«¶È»òСÊýλÊý˵Ã÷µÄFLOAT»òDOUBLE PRECISION¡£

µ±ÒªÇóÔÚÊý×ÖµÄÁд洢³¬³ö¸ÃÁÐÀàÐÍÔÊÐíµÄ·¶Î§µÄֵʱ£¬MySQL¼ôÇиÃÖµµ½·¶Î§ÄÚµÄÕýÈ·¶ËµãÖµ²¢ÇÒ´æ´¢¼ôÇкóµÄ½á¹ûÖµ¡£

ÀýÈ磬һ¸öINTÁеķ¶Î§ÊÇ-2147483648µ½2147483647¡£Èç¹ûÄãÊÔͼ²åÈë-9999999999µ½Ò»¸öINTÁÐÖУ¬Öµ±»¼ôÇе½·¶Î§µÄµÍ²¿¶Ëµã£¬²¢´æ´¢-2147483648¡£Í¬Ñù£¬Èç¹ûÄãÊÔͼ²åÈë9999999999£¬2147483647±»´æ´¢¡£

Èç¹ûINTÁÐÊÇUNSIGNED£¬Áеķ¶Î§µÄ´óСÊÇÏàͬµÄ£¬µ«ÊÇËüµÄ¶ËµãÒÆµ½ÁË0ºÍ4294967295¡£Èç¹ûÄãÊÔͼ´æ´¢-9999999999ºÍ9999999999£¬ÔÚÁб»´æ´¢µÄÖµ±äΪ0ºÍ4294967296¡£

¶ÔÓÚALTER TABLE¡¢LOAD DATA INFILE¡¢UPDATEºÍ¶àÐÐINSERTÓï¾ä£¬ÓÉÓÚ¼ôÇÐËù·¢ÉúµÄ±ä»»×÷Ϊ¡°¾¯¸æ¡±±»±¨¸æ¡£

7.3.6 ÈÕÆÚºÍʱ¼äÀàÐÍ

ÈÕÆÚºÍʱ¼äÀàÐÍÊÇDATETIME¡¢DATE¡¢TIMESTAMP¡¢TIMEºÍYEAR¡£ÕâЩµÄÿһ¸ö¶¼ÓкϷ¨ÖµµÄÒ»¸ö·¶Î§£¬¶ø¡°Á㡱µ±ÄãÖ¸¶¨È·Êµ²»ºÏ·¨µÄֵʱ±»Ê¹Óá£×¢Ò⣬MySQLÔÊÐíÄã´æ´¢Ä³¸ö¡°²»ÑϸñµØ¡±ºÏ·¨µÄÈÕÆÚÖµ£¬ÀýÈç1999-11-31£¬Ô­ÒòÎÒÃÇÈÏΪËüÊÇÓ¦ÓóÌÐòµÄÔðÈÎÀ´´¦ÀíÈÕÆÚ¼ì²é£¬¶ø²»ÊÇSQL·þÎñÆ÷¡£ÎªÁËʹÈÕÆÚ¼ì²é¸ü¡°¿ì¡±£¬MySQL½ö¼ì²éÔ·ÝÔÚ0-12µÄ·¶Î§£¬ÌìÔÚ0-31µÄ·¶Î§¡£ÉÏÊö·¶Î§ÕâÑù±»¶¨ÒåÊÇÒòΪMySQLÔÊÐíÄãÔÚÒ»¸öDATE»òDATETIMEÁÐÖд洢ÈÕÆÚ£¬ÕâÀïµÄÌì»òÔÂÊÇÁã¡£Õâ¶Ô´æ´¢Äã²»ÖªµÀ׼ȷµÄÈÕÆÚµÄÒ»¸öÉúÈÕµÄÓ¦ÓóÌÐòÀ´ËµÊǼ«ÆäÓÐÓõģ¬ÔÚÕâÖÖÇé¿öÏ£¬Äã¼òµ¥µØ´æ´¢ÈÕÆÚÏó1999-00-00»ò1999-01-00¡££¨µ±È»Äã²»ÄÜÆÚÍû´Óº¯ÊýÈçDATE_SUB()»òDATE_ADD()µÃµ½ÀàËÆÒÔÕâЩÈÕÆÚµÄÕýÈ·Öµ)¡£

µ±ÓÃÈÕÆÚºÍʱ¼ä¹¤×÷ʱ£¬ÕâÀïÊǵÄһЩҪ¼ÇסµÄÒ»°ã¿¼ÂÇ£º

7.3.6.1 Y2KÎÊÌâºÍÈÕÆÚÀàÐÍ

MySQL±¾ÉíY2K°²È«µÄ(¼û1.6 2000ÄêÒ»ÖÂÐÔ)£¬µ«Êdzʽ»¸øMySQLµÄÊäÈëÖµ¿ÉÄܲ»ÊÇ¡£Ò»¸ö°üº¬2λÄê·ÝÖµµÄÈκÎÊäÈëÊÇÓɶþÒåÐԵģ¬ÒòΪÊÀ¼ÍÊÇδ֪µÄ¡£ÕâÑùµÄÖµ±ØÐë±»½âÊͳÉ4λÐÎʽ£¬ÒòΪMySQLÄÚ²¿Ê¹ÓÃ4λ´æ´¢Äê·Ý¡£

¶ÔÓÚDATETIME, DATE, TIMESTAMPºÍYEARÀàÐÍ£¬MySQLʹÓÃÏÂÁйæÔòµÄ½âÊͶþÒåÐÔµÄÄê·ÝÖµ£º

¼ÇµÃÕâЩ¹æÔò½ö½öÌṩ¶ÔÓÚÄãÊý¾ÝµÄº¬ÒåµÄºÏÀí²Â²â¡£Èç¹ûMySQLʹÓÃµÄÆô·¢¹æÔò²»²úÉúÕýÈ·µÄÖµ£¬ÄãÓ¦¸ÃÌṩÎÞ¶þÒåµÄ°üº¬4λÄêÖµµÄÊäÈë¡£

7.3.6.2 DATETIME, DATEºÍTIMESTAMPÀàÐÍ

DATETIME, DATEºÍTIMESTAMPÀàÐÍÊÇÏà¹ØµÄ¡£±¾½ÚÃèÊöËûÃǵÄÌØÕ÷£¬ËûÃÇÊÇÈçºÎÀàËÆµÄ¶øÓÖ²»Í¬µÄ¡£

DATETIMEÀàÐÍÓÃÔÚÄãÐèҪͬʱ°üº¬ÈÕÆÚºÍʱ¼äÐÅÏ¢µÄֵʱ¡£MySQL¼ìË÷²¢ÇÒÒÔ'YYYY-MM-DD HH:MM:SS'¸ñʽÏÔʾDATETIMEÖµ£¬Ö§³ÖµÄ·¶Î§ÊÇ'1000-01-01 00:00:00'µ½'9999-12-31 23:59:59'¡££¨¡°Ö§³Ö¡±Òâζמ¡¹Ü¸üÔçµÄÖµ¿ÉÄܹ¤×÷£¬µ«²»Äܱ£Ö¤ËûÃÇ¿ÉÒÔ¡££©

DATEÀàÐÍÓÃÔÚÄã½öÐèÒªÈÕÆÚֵʱ£¬Ã»ÓÐʱ¼ä²¿·Ö¡£MySQL¼ìË÷²¢ÇÒÒÔ'YYYY-MM-DD'¸ñʽÏÔʾDATEÖµ£¬Ö§³ÖµÄ·¶Î§ÊÇ'1000-01-01'µ½'9999-12-31'¡£

TIMESTAMPÁÐÀàÐÍÌṩһÖÖÀàÐÍ£¬Äã¿ÉÒÔʹÓÃËü×Ô¶¯µØÓõ±Ç°µÄÈÕÆÚºÍʱ¼ä±ê¼ÇINSERT»òUPDATEµÄ²Ù×÷¡£Èç¹ûÄãÓжà¸öTIMESTAMPÁУ¬Ö»ÓеÚÒ»¸ö×Ô¶¯¸üС£

×Ô¶¯¸üеÚÒ»¸öTIMESTAMPÁÐÔÚÏÂÁÐÈκÎÌõ¼þÏ·¢Éú£º

³ýµÚÒ»¸öÒÔÍâµÄTIMESTAMPÁÐÒ²¿ÉÒÔÉèÖõ½µ±Ç°µÄÈÕÆÚºÍʱ¼ä£¬Ö»Òª½«ÁÐÉèΪNULL£¬»òNOW()¡£

ͨ¹ýÃ÷È·µØÉèÖÃÏ£ÍûµÄÖµ£¬Äã¿ÉÒÔÉèÖÃÈκÎTIMESTAMPÁÐΪ²»Í¬ÓÚµ±Ç°ÈÕÆÚºÍʱ¼äµÄÖµ£¬¼´Ê¹¶ÔµÚÒ»¸öTIMESTAMPÁÐÒ²ÊÇÕâÑù¡£ÀýÈ磬Èç¹û£¬µ±Äã´´½¨Ò»¸öÐÐʱ£¬ÄãÏëÒªÒ»¸öTIMESTAMP±»ÉèÖõ½µ±Ç°µÄÈÕÆÚºÍʱ¼ä£¬µ«ÔÚÒÔºóÎÞÂÛºÎʱÐб»¸üÐÂʱ¶¼²»¸Ä±ä£¬Äã¿ÉÒÔʹÓÃÕâ¸öÊôÐÔ£º

ÁíÒ»·½Ã棬Äã¿ÉÄÜ·¢ÏÖ£¬µ±Ðб»´´½¨²¢ÇÒÔ¶ÀëËæºóµÄ¸ü¸Äʱ£¬ºÜÈÝÒ×ÓÃÒ»¸öÄãÓÃNOW()³õʼ»¯µÄDATETIMEÁС£

TIMESTAMPÖµ¿ÉÒÔ´Ó1970µÄijʱµÄ¿ªÊ¼Ò»Ö±µ½2037Ä꣬¾«¶ÈΪһÃ룬ÆäÖµ×÷ΪÊý×ÖÏÔʾ¡£

ÔÚMySQL¼ìË÷²¢ÇÒÏÔʾTIMESTAMPֵȡ¾öÓÚÏÔʾ³ß´çµÄ¸ñʽÈçÏÂ±í¡£¡°ÍêÕû¡±TIMESTAMP¸ñʽÊÇ14룬µ«ÊÇTIMESTAMPÁпÉÒÔÓøü¶ÌµÄÏÔʾ³ß´ç´´Ô죺

ÁÐÀàÐÍ ÏÔʾ¸ñʽ
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY

ËùÓеÄTIMESTAMPÁж¼ÓÐͬÑùµÄ´æ´¢´óС£¬²»¿¼ÂÇÏÔʾ³ß´ç¡£×î³£¼ûµÄÏÔʾ³ß´çÊÇ6¡¢8¡¢12¡¢ºÍ14¡£Äã¿ÉÒÔÔÚ±í´´½¨Ê±¼äÖ¸¶¨Ò»¸öÈÎÒâµÄÏÔʾ³ß´ç£¬µ«ÊÇÖµ0»ò±È14´ó±»Ç¿ÖƵ½14¡£ÔÚ´Ó1¡«13·¶Î§µÄÆæÊýÖµ³ß´ç±»Ç¿ÖÆÎªÏÂÒ»¸ö¸ü´óµÄżÊý¡£

ʹÓÃÒ»¸ö³£Óõĸñʽ¼¯µÄÈκÎÒ»¸ö£¬Äã¿ÉÒÔÖ¸¶¨DATETIME¡¢DATEºÍTIMESTAMPÖµ£º

²»ºÏ·¨DATETIME, DATE»òTIMESTAMPÖµ±»±ä»»µ½Êʵ±ÀàÐ͵ġ°Á㡱ֵ('0000-00-00 00:00:00', '0000-00-00'»ò00000000000000)¡£

¶ÔÓÚ°üÀ¨µÄÈÕÆÚ²¿·Ö·Ö¸ô·ûµÄÖ¸¶¨Îª×Ö·û´®µÄÖµ£¬²»±ØÒªÎªÐ¡ÓÚ10µÄÔ»òÌìµÄÖµÖ¸¶¨2λÊý×Ö£¬'1979-6-9'Óë'1979-06-09'ÊÇÒ»ÑùµÄ¡£Í¬Ñù, ¶ÔÓÚ°üÀ¨µÄʱ¼ä²¿·Ö·Ö¸ô·ûµÄÖ¸¶¨Îª×Ö·û´®µÄÖµ£¬²»±ØÎªÐ¡ÓÚ10µÄСʱ¡¢Ô»òÃëÖ¸¶¨2λÊý×Ö£¬'1979-10-30 1:2:3'Óë'1979-10-30 01:02:03'ÊÇÒ»ÑùµÄ¡£

Ö¸¶¨ÎªÊý×ÖÓ¦¸ÃÊÇ6¡¢8¡¢12»ò14볤¡£Èç¹ûÊý×ÖÊÇ8»ò14볤£¬Ëü±»¼Ù¶¨ÒÔYYYYMMDD»òYYYYMMDDHHMMSS¸ñʽ²¢ÇÒÄê·ÝÓÉÍ·4λÊý×Ö¸ø³ö¡£Èç¹ûÊý×ÖÊÇ6»ò12볤£¬Ëü±»¼Ù¶¨ÊÇÒÔYYMMDD»òYYMMDDHHMMSS¸ñʽÇÒÄê·ÝÓÉÍ·2λÊý×Ö¸ø³ö¡£²»ÊÇÕâЩ³¤¶ÈÖ®Ò»µÄÊý×Öͨ¹ýÌǰͷµÄÁãµ½×î½Ó½üµÄ³¤¶ÈÀ´½âÊÍ¡£

Ö¸¶¨ÎªÎÞ·Ö¸ô·ûµÄ×Ö·û´®ÓÃËüÃǸø¶¨µÄ³¤¶ÈÀ´½âÊÍ¡£Èç¹û×Ö·û´®³¤¶ÈÊÇ8»ò14¸ö×Ö·û£¬Äê·Ý±»¼Ù¶¨Í·4¸ö×Ö·û¸ø³ö£¬·ñÔòÄê·Ý±»¼Ù¶¨ÓÉÍ·2¸ö×Ö·û¸ø³ö¡£¶ÔÓÚ×Ö·û´®ÖгÊÏֵĶà¸ö²¿·Ö£¬×Ö·û´®´Ó×óµ½Óұ߱»½âÊÍ£¬ÒÔÕÒ³öÄê¡¢Ô¡¢ÈÕ¡¢Ð¡Ê±¡¢·ÖÖÓºÍÃëÖµ£¬ÕâÒâζ×Å£¬Äã²»Ó¦¸ÃʹÓÃÉÙÓÚ 6 ¸ö×Ö·ûµÄ×Ö·û´®¡£ÀýÈ磬Èç¹ûÄãÖ¸¶¨'9903'£¬ÈÏΪ½«´ú±í1999Äê3Ô£¬Äã»á·¢ÏÖMySQL°ÑÒ»¸ö¡°Á㡱ÈÕÆÚ²åÈëµ½ÄãµÄ±íÖУ¬ÕâÊÇÒòΪÄê·ÝºÍÔ·ÝÖµ99ºÍ03£¬µ«ÊÇÈÕÆÚ²¿·Ö¶ªÊ§(Áã)£¬Òò´Ë¸ÃÖµ²»ÊÇÒ»¸öºÏ·¨µÄÈÕÆÚ¡£

TIMESTAMPÁÐʹÓñ»Ö¸¶¨µÄÖµµÄÍêÕû¾«¶ÈµÄ´æ´¢ºÏ·¨µÄÖµ£¬²»¿¼ÂÇÏÔʾ´óС¡£ÕâÓм¸¸öº¬Ò⣺

ÔÚijÖ̶ֳÈÉÏ£¬Äã¿ÉÒÔ°ÑÒ»ÖÖÈÕÆÚÀàÐ͵ÄÖµ¸³¸øÒ»¸ö²»Í¬µÄÈÕÆÚÀàÐ͵ĶÔÏó¡£È»¶ø£¬Õâ¿ÉÄÜÖµÓÐһЩ¸Ä±ä»òÐÅÏ¢µÄËðʧ£º

µ±Ö¸¶¨ÈÕÆÚֵʱ£¬µ±ÐÄijЩȱÏÝ£º

7.3.6.3 TIMEÀàÐÍ

MySQL¼ìË÷²¢ÒÔ'HH:MM:SS'¸ñʽÏÔʾTIMEÖµ(»ò¶Ô´óСʱֵ£¬'HHH:MM:SS'¸ñʽ)¡£TIMEÖµµÄ·¶Î§¿ÉÒÔ´Ó'-838:59:59'µ½'838:59:59'¡£Ð¡Ê±²¿·Ö¿ÉÄܴܺóµÄµÄÔ­ÒòÊÇTIMEÀàÐͲ»½ö¿ÉÒÔ±»Ê¹ÓÃÔÚ±íʾһÌìµÄʱ¼ä(Ëü±ØÐëÊDz»µ½24¸öСʱ)£¬¶øÇÒÓÃÔÚ±íʾÔÚ2¸öʼþÖ®¼ä¾­¹ýµÄʱ¼ä»òʱ¼ä¼ä¸ô(Ëü¿ÉÒÔÊDZÈ24¸öСʱ´óЩ£¬»òÉõÖÁÊǸºÖµ)¡£

ÄãÄÜÓöàÖиñʽָ¶¨TIMEÖµ£º

¶ÔÓÚ×÷Ϊ°üÀ¨Ò»¸öʱ¼ä·Ö¸ô·ûµÄ×Ö·û´®±»Ö¸¶¨µÄTIMEÖµ£¬²»±ØÎªÐ¡ÓÚ10µÄСʱ¡¢·ÖÖÓ»òÃëÖµÖ¸¶¨2λÊý×Ö£¬'8:3:2'Óë'08:03:02'ÊÇÒ»ÑùµÄ¡£

½«¡°¶ÌµÄ¡±TIMEÖµ¸³Öµ¸øÒ»¸öTIMEÐÐÁÐÊÇÒª¸ñÍâСÐÄ¡£MySQLʹÓÃ×îÓÒλ´ú±íÃëµÄ¼ÙÉèÀ´½âÊÍÖµ¡£(MySQL½«TIMEÖµ½âÊÍΪ¾­¹ýµÄʱ¼ä£¬¶ø·Ç×÷ΪһÌìµÄʱ¼ä )ÀýÈ磬Äã¿ÉÄÜÏëµ½'11:12'¡¢'1112'ºÍ1112Òâζ×Å'11:12:00'£¨11µã12·Ö)£¬µ«ÊÇMySQL½âÊÍËûÃÇΪ'00:11:12'£¨11·Ö12Ãë)¡£Í¬Ñù£¬'12'ºÍ12±»½âÊÍΪ'00:00:12'¡£

µ«Êdz¬³öTIME·¶Î§Ö®ÍâµÄÖµÊÇÑùºÏ·¨µÄ£¬Ëü±»¼ôÇе½·¶Î§Êʵ±µÄ¶ËµãÖµ¡£ÀýÈ磬'-850:00:00'ºÍ'850:00:00'±»±ä»»µ½'-838:59:59'ºÍ'838:59:59'¡£

²»ºÏ·¨µÄTIMEÖµ±»±ä»»µ½'00:00:00'¡£×¢Ò⣬¼ÈÈ»'00:00:00'±¾ÉíÊÇÒ»¸öºÏ·¨µÄTIMEÖµ£¬Ã»ÓÐÆäËû·½·¨Çø·Ö±íÖд洢µÄÒ»¸ö'00:00:00'Öµ£¬Ô­À´µÄÖµÊÇ·ñ±»Ö¸¶¨Îª'00:00:00'»òËüÊÇ·ñÊDz»ºÏ·¨µÄ¡£

7.3.6.4 YEARÀàÐÍ

YEARÀàÐÍÊÇÒ»¸ö 1 ×Ö½ÚÀàÐÍÓÃÓÚ±íʾÄê·Ý¡£

MySQL¼ìË÷²¢ÇÒÒÔYYYY¸ñʽÏÔʾYEARÖµ£¬Æä·¶Î§ÊÇ1901µ½2155¡£

ÄãÄÜÓöàÖÖ¸ñʽָ¶¨YEARÖµ£º

²»ºÏ·¨YEARÖµ±»±ä»»µ½0000¡£

7.3.7 ×Ö·û´®ÀàÐÍ

×Ö·û´®ÀàÐÍÊÇCHAR¡¢VARCHAR¡¢BLOB¡¢TEXT¡¢ENUMºÍSET¡£

7.3.7.1 CHARºÍVARCHARÀàÐÍ

CHARºÍVARCHARÀàÐÍÊÇÀàËÆµÄ£¬µ«ÊÇÔÚËûÃDZ»´æ´¢ºÍ¼ìË÷µÄ·½Ê½²»Í¬¡£

Ò»¸öCHARÁеij¤¶È±»ÐÞÕýΪÔÚÄã´´Ôì±íʱÄãËùÉùÃ÷µÄ³¤¶È¡£³¤¶È¿ÉÒÔÊÇ1ºÍ255Ö®¼äµÄÈκÎÖµ¡££¨ÔÚMySQL 3.23ÖУ¬CHAR³¤¶È¿ÉÒÔÊÇ0¡«255¡£) µ±CHARÖµ±»´æ´¢Ê±£¬ËûÃDZ»ÓÿոñÔÚÓÒ±ßÌî²¹µ½Ö¸¶¨µÄ³¤¶È¡£µ±CHARÖµ±»¼ìË÷ʱ£¬ÍϺóµÄ¿Õ¸ñ±»É¾È¥¡£

ÔÚVARCHARÁÐÖеÄÖµÊDZ䳤×Ö·û´®¡£Äã¿ÉÒÔÉùÃ÷Ò»¸öVARCHARÁÐÊÇÔÚ1ºÍ255Ö®¼äµÄÈκγ¤¶È£¬¾ÍÏñ¶ÔCHARÁС£È»¶ø£¬ÓëCHARÏà·´£¬VARCHARÖµÖ»´æ´¢ËùÐèµÄ×Ö·û£¬Íâ¼ÓÒ»¸ö×ֽڼǼ³¤¶È£¬Öµ²»±»Ìî²¹£»Ïà·´£¬µ±Öµ±»´æ´¢Ê±£¬ÍϺóµÄ¿Õ¸ñ±»É¾È¥¡££¨Õâ¸ö¿Õ¸ñɾ³ý²»Í¬ÓÚANSI SQL¹æ·¶¡££©

Èç¹ûÄã°ÑÒ»¸ö³¬¹ýÁÐ×î´ó³¤¶ÈµÄÖµ¸³¸øÒ»¸öCHAR»òVARCHARÁУ¬Öµ±»½Ø¶ÏÒÔÊʺÏËü¡£

ϱíÏÔʾÁËÁ½ÖÖÀàÐ͵ÄÁеIJ»Í¬£¬Í¨¹ýÑÝʾ´æ´¢±ä³¤×Ö·û´®Öµµ½CHAR(4)ºÍVARCHAR(4)ÁУº

Öµ CHAR(4) ´æ´¢ÐèÇó VARCHAR(4) ´æ´¢ÐèÇó
'' ' ' 4 ¸ö×Ö½Ú '' 1 ×Ö½Ú
'ab' 'ab ' 4 ¸ö×Ö½Ú 'ab' 3 ¸ö×Ö½Ú
'abcd' 'abcd' 4 ¸ö×Ö½Ú 'abcd' 5 ¸ö×Ö½Ú
'abcdefgh' 'abcd' 4 ¸ö×Ö½Ú 'abcd' 5 ¸ö×Ö½Ú

´ÓCHAR(4)ºÍVARCHAR(4)ÁмìË÷µÄÖµÔÚÿÖÖÇé¿ö϶¼ÊÇÒ»ÑùµÄ£¬ÒòΪÍϺóµÄ¿Õ¸ñ´Ó¼ìË÷µÄCHARÁÐÉϱ»É¾³ý¡£

ÔÚCHARºÍVARCHARÁÐÖд洢ºÍ±È½ÏÖµÊÇÒÔ´óСд²»Çø·ÖµÄ·½Ê½½øÐе쬳ý·Çµ±×À×Ó±»´´½¨Ê±£¬BINARYÊôÐÔ±»Ö¸¶¨¡£BINARYÊôÐÔÒâζןÃÁеÄÖµ¸ù¾ÝMySQL·þÎñÆ÷ÕýÔÚÔËÐеĻúÆ÷µÄASCII˳ÐòÒÔ´óÐ¡Ð´Çø·ÖµÄ·½Ê½´æ´¢ºÍ±È½Ï¡£

BINARYÊôÐÔÊÇ¡°Õ³ÐÔ¡±µÄ¡£ÕâÒâζ×Å£¬Èç¹û±ê¼ÇÁËBINARYµÄÁÐÓÃÓÚÒ»¸ö±í´ïʽÖУ¬Õû¸öµÄ±í´ïʽ×÷Ϊһ¸öBINARYÖµ±»±È½Ï¡£

MySQLÔÚ±í´´½¨Ê±¿ÉÒÔÒþº¬µØ¸Ä±äÒ»¸öCHAR»òVARCHARÁеÄÀàÐÍ¡£¼û7.7.1 Òþº¬µÄµÄÁÐ˵Ã÷¸Ä±ä¡£

7.3.7.2 BLOBºÍTEXTÀàÐÍ

Ò»¸öBLOBÊÇÒ»¸öÄܱ£´æ¿É±äÊýÁ¿µÄÊý¾ÝµÄ¶þ½øÖƵĴó¶ÔÏó¡£4¸öBLOBÀàÐÍTINYBLOB¡¢BLOB¡¢MEDIUMBLOBºÍLONGBLOB½ö½öÔÚËûÃÇÄܱ£´æÖµµÄ×î´ó³¤¶È·½ÃæÓÐËù²»Í¬¡£¼û7.3.1 ÁÐÀàÐÍ´æ´¢ÐèÇó¡£

4¸öTEXTÀàÐÍTINYTEXT¡¢TEXT¡¢MEDIUMTEXTºÍLONGTEXT¶ÔÓ¦ÓÚ4¸öBLOBÀàÐÍ£¬²¢ÇÒÓÐͬÑùµÄ×î´ó³¤¶ÈºÍ´æ´¢ÐèÇó¡£ÔÚBLOBºÍTEXTÀàÐÍÖ®¼äµÄΨһ²î±ðÊǶÔBLOBÖµµÄÅÅÐòºÍ±È½ÏÒÔ´óСдÃô¸Ð·½Ê½Ö´ÐУ¬¶ø¶ÔTEXTÖµÊÇ´óСд²»Ãô¸ÐµÄ¡£»»¾ä»°Ëµ£¬Ò»¸öTEXTÊÇÒ»¸ö´óСд²»Ãô¸ÐµÄBLOB¡£

Èç¹ûÄã°ÑÒ»¸ö³¬¹ýÁÐÀàÐÍ×î´ó³¤¶ÈµÄÖµ¸³¸øÒ»¸öBLOB»òTEXTÁУ¬Öµ±»½Ø¶ÏÒÔÊʺÏËü¡£

ÔÚ´ó¶àÊý·½Ã棬Äã¿ÉÒÔÈÏΪһ¸öTEXTÐÐÁÐÊÇÄãËùÏ£Íû´óµÄÒ»¸öVARCHARÁС£Í¬Ñù£¬Äã¿ÉÒÔÈÏΪһ¸öBLOBÁÐÊÇÒ»¸öVARCHAR BINARYÁС£²î±ðÊÇ£º

MyODBC¶¨ÒåBLOBΪLONGVARBINARY£¬TEXTֵΪLONGVARCHAR¡£

ÒòΪBLOBºÍTEXTÖµ¿ÉÒÔÊǷdz£³¤µÄ£¬µ±Ê¹ÓÃËûÃÇʱ£¬Äã¿ÉÄÜÓöµ½Ò»Ð©ÏÞÖÆ£º

×¢Ò⣬ÿ¸öBLOB»òTEXTÖµÄÚ²¿ÓÉÒ»¸ö¶ÀÁ¢·ÖÅäµÄ¶ÔÏó±íʾ¡£ÕâÓëËùÓÐµÄÆäËûÁÐÀàÐÍÏà·´£¬ËüÃÇÊÇÔÚ´ò¿ª±íʱ£¬°´Áб»·ÖÅäÒ»´Î´æ´¢¡£

7.3.7.3 ENUMÀàÐÍ

Ò»¸öENUMÊÇÒ»¸ö×Ö·û¶ÔÏ󣬯äֵͨ³£´ÓÒ»¸öÔÚ±í´´½¨Ê±Ã÷È·±»ÁоٵÄÔÊÐíÖµµÄÒ»ÕűíÖÐÑ¡Ôñ¡£

ÔÚÏÂÁеÄij¸öÇéÐÎÏ£¬ÖµÒ²¿ÉÒÔ¿Õ×Ö·û´®("")»òNULL£º

ÿö¾ÙÖµÓÐÒ»¸ö±àºÅ£º

ÀýÈ磬ָ¶¨ÎªENUM("one", "two", "three")µÄÁпÉÒÔÓÐÏÔʾÔÚÏÂÃæµÄÖµµÄÈκÎÒ»¸ö¡£Ã¿¸öÖµµÄ±àºÅÒ²±»ÏÔʾ£º

Öµ ±àºÅ
NULL NULL
"" 0
"one" 1
"two" 2
"three" 3

ö¾Ù¿ÉÒÔÓÐ×î´ó65535¸ö³ÉÔ±¡£

µ±Äã°ÑÖµ¸³¸øÒ»¸öENUMÁÐʱ£¬×ÖĸµÄ´óСдÊÇÎ޹ؽôÒªµÄ¡£È»¶ø£¬ÒÔºó´ÓÁÐÖмìË÷µÄÖµ´óСдƥÅäÔÚ±í´´½¨Ê±ÓÃÀ´Ö¸¶¨ÔÊÐíÖµµÄÖµµÄ´óСд¡£

Èç¹ûÄãÔÚÒ»¸öÊý×ÖµÄÉÏÏÂÎÄ»·¾³ÖмìË÷Ò»¸öENUM£¬ÁÐÖµµÄ±àºÅ±»·µ»Ø¡£Èç¹ûÄã´æ´¢Ò»¸öÊý×Öµ½Ò»¸öENUMÖУ¬Êý×Ö±»µ±×÷Ò»¸ö±êºÅ£¬²¢ÇÒ´æ´¢µÄÖµÊǸñàºÅµÄö¾Ù³ÉÔ±¡£

ENUMÖµ¸ù¾ÝÁÐ˵Ã÷ÁоٵÄö¾Ù³ÉÔ±µÄ´ÎÐò±»ÅÅÐò¡££¨»»¾ä»°Ëµ£¬ENUMÖµ¸ù¾ÝËûÃǵıàºÅÊý×Ö±»ÅÅÐò) ÀýÈ磬¶ÔENUM("a", "b")£¬"a"ÅÅÔÚ"b"Ç°Ãæ£¬µ«ÊǶÔENUM("b", "a")£¬"b"ÅÅÔÚ"a"Ç°Ãæ¡£¿Õ×Ö·û´®ÅÅÐò·Ç¿Õ×Ö·û´®Ö®Ç°£¬²¢ÇÒNULLÅÅÔÚËùÓÐÆäËûö¾Ùֵ֮ǰ¡£

Èç¹ûÄãÏëÒªµÃµ½Ò»¸öENUMÁеÄËùÓпÉÄܵÄÖµ£¬ÄãÓ¦¸ÃʹÓãºSHOW COLUMNS FROM table_name LIKE enum_column_name²¢ÇÒ·ÖÎöÔÚµÚ¶þÁеÄENUM¶¨Òå¡£

7.3.7.4 SETÀàÐÍ

Ò»¸öSETÊÇ¿ÉÒÔÓÐÁã»ò¶à¸öÖµµÄÒ»¸ö×Ö·û´®¶ÔÏ󣬯äÿһ¸ö±ØÐë´Ó±í´´½¨Ôì±»Ö¸¶¨Á˵ÄÔÊÐíÖµµÄÒ»ÕÅÁбíÖб»Ñ¡Ôñ¡£Óɶà¸ö¼¯ºÏ³ÉÔ±×é³ÉµÄSETÁÐͨ¹ýÓÉÓɶººÅ·Ö¸ô(¡°,¡±)µÄ³ÉÔ±±»Ö¸¶¨£¬ÆäÍÆÂÛÊǸÃSET³ÉÔ±Öµ²»Äܰüº¬¶ººÅ±¾Éí¡£

ÀýÈç, Ò»¸öÖ¸¶¨ÎªSET("one", "two") NOT NULLµÄÁпÉÒÔÓÐÕâЩֵµÄÈκÎÒ»¸ö£º

"" 
"one" 
"two" 
"one,two"

Ò»¸öSETÄÜÓÐ×î¶à64¸ö²»Í¬µÄ³ÉÔ±¡£ 

MySQLÓÃÊý×ÖÖµ´æ´¢SETÖµ£¬´æ´¢ÖµµÄµÍ½×λ¶ÔÓ¦ÓÚµÚÒ»¸ö¼¯ºÏ³ÉÔ±¡£Èç¹ûÄãÔÚÊý×ÖÉÏÏÂÎÄÖмìË÷Ò»¸öSETÖµ£¬¼ìË÷µÄÖµ°ÑλÉèÖÃλ¶ÔÓ¦×é³ÉÁÐÖµµÄ¼¯ºÏ³ÉÔ±¡£Èç¹ûÒ»¸öÊý×Ö±»´æ´¢½øÒ»¸öSETÁУ¬ÔÚÊý×ֵĶþ½øÖƱíʾÖÐÉèÖõÄλ¾ö¶¨ÁËÔÚÁÐÖеļ¯ºÏ³ÉÔ±¡£¼Ù¶¨Ò»¸öÁб»Ö¸¶¨ÎªSET("a","b","c","d")£¬ÄÇô³ÉÔ±ÓÐÏÂÁÐλֵ£º

SET ³ÉÔ± Ê®½øÖƵÄÖµ ¶þ½øÖƵÄÖµ
a 1 0001
b 2 0010
c 4 0100
d 8 1000

Èç¹ûÄã¸ø¸ÃÁи³Öµ9£¬¼´¶þ½øÖƵÄ1001£¬ÕâÑùµÚÒ»¸öºÍµÚËĸöSETÖµ³ÉÔ±"a"ºÍ"d"±»Ñ¡Ôñ²¢ÇÒ½á¹ûÖµÊÇ"a,d"¡£

¶ÔÓÚ°üº¬³¬¹ýÒ»¸öSET³ÉÔ±µÄÖµ£¬µ±Äã²åÈëֵʱ£¬ÎÞËùνÒÔʲô˳ÐòÁоÙÖµ£¬Ò²ÎÞËùν¸ø¶¨µÄÖµÁоÙÁ˶àÉٴΡ£µ±ÒÔºó¼ìË÷ֵʱ£¬ÔÚÖµÖеÄÿ¸ö³ÉÔ±½«³öÏÖÒ»´Î£¬¸ù¾ÝËûÃÇÔÚ±í´´½¨Ê±±»Ö¸¶¨µÄ˳ÐòÁгö³ÉÔ±¡£ÀýÈ磬Èç¹ûÁÐÖ¸¶¨ÎªSET("a","b","c","d")£¬ÄÇô"a,d"¡¢"d,a"ºÍ"d,a,a,d,d"ÔÚ¼ìË÷ʱ½«¾ù×÷Ϊ"a,d"³öÏÖ¡£

SETÖµÒÔÊý×Ö´ÎÐò±»ÅÅÐò¡£NULLÖ¸ÅÅÔÚ·ÇNULL SETֵ֮ǰ¡£

ͨ³££¬ÄãʹÓÃLIKE²Ù×÷·û»òFIND_IN_SET()º¯ÊýÖ´ÐÐÔÚÒ»¸öSETÉϵÄÒ»¸öSELECT£º

mysql> SELECT * FROM tbl_name WHERE set_col LIKE '%value%';
mysql> SELECT * FROM tbl_name WHERE FIND_IN_SET('value',set_col)>0;

µ«ÊÇÏÂÁÐÒ²»á¹¤×÷£º

mysql> SELECT * FROM tbl_name WHERE set_col = 'val1,val2';
mysql> SELECT * FROM tbl_name WHERE set_col & 1;

ÕâЩÓï¾äµÄµÚÒ»¸öÓï¾äѰÕÒÒ»¸ö¾«È·µÄÆ¥Åä¡£µÚ¶þ¸öѰÕÒ°üº¬µÚÒ»¸ö¼¯ºÏ³ÉÔ±µÄÖµ¡£

Èç¹ûÄãÏëÒªµÃµ½Ò»¸öSETÁеÄËùÓпÉÄܵÄÖµ£¬ÄãÓ¦¸ÃʹÓãºSHOW COLUMNS FROM table_name LIKE set_column_name²¢ÇÒ·ÖÎöÔÚµÚ¶þÁеÄSET¶¨Òå¡£

7.3.8 ΪÁÐÑ¡ÔñÕýÈ·µÄÀàÐÍ

ΪÁË×îÓÐЧµØÊ¹Óô洢¿Õ¼ä£¬ÊÔ×ÅÔÚËùÓеÄÇé¿öÏÂʹÓÃ×ȷµÄÀàÐÍ¡£ÀýÈ磬Èç¹ûÒ»¸öÕûÊýÁб»ÓÃÓÚÔÚÖ®¼ä1ºÍ99999µÄÖµ£¬ MEDIUMINT UNSIGNEDÊÇ×îºÃµÄÀàÐÍ¡£

»õ±ÒÖµµÄ¾«È·±íʾÊÇÒ»¸ö³£¼ûµÄÎÊÌâ¡£ÔÚMySQL£¬ÄãÓ¦¸ÃʹÓÃDECIMALÀàÐÍ£¬Ëü×÷Ϊһ¸ö×Ö·û´®±»´æ´¢£¬²»»á·¢Éú¾«È·ÐÔµÄËðʧ¡£Èç¹û¾«È·ÐÔ²»ÊÇÌ«ÖØÒª£¬DOUBLEÀàÐÍÒ²ÊÇ×ã¹»ºÃµÄ¡£

¶Ô¸ß¾«¶È£¬Äã×ÜÊÇÄܱ任µ½ÒÔÒ»¸öBIGINT´æ´¢µÄ¶¨µãÀàÐÍ¡£ÕâÔÊÐíÄãÓÃÕûÊý×öËùÓеļÆË㣬²¢ÇÒ½öÔÚ±ØÒªÊ±½«½á¹ûת»»»Ø¸¡µãÖµ¡£¼û10.6 Ñ¡ÔñÒ»¸ö±íÀàÐÍ¡£

7.3.9 ÁÐË÷Òý

ËùÓеÄMySQLÁÐÀàÐÍÄܱ»Ë÷Òý¡£ÔÚÏà¹ØµÄÁÐÉϵÄʹÓÃË÷ÒýÊǸĽøSELECT²Ù×÷ÐÔÄܵÄ×îºÃ·½·¨¡£

Ò»¸ö±í×î¶à¿ÉÓÐ16¸öË÷Òý¡£×î´óË÷Òý³¤¶ÈÊÇ256¸ö×Ö½Ú£¬¾¡¹ÜÕâ¿ÉÒÔÔÚ±àÒëMySQLʱ±»¸Ä±ä¡£

¶ÔÓÚCHARºÍVARCHARÁУ¬Äã¿ÉÒÔË÷ÒýÁеÄǰ׺¡£Õâ¸ü¿ì²¢ÇÒ±ÈË÷ÒýÕû¸öÁÐÐèÒª½ÏÉٵĴÅÅ̿ռ䡣ÔÚCREATE TABLEÓï¾äÖÐË÷ÒýÁÐǰ׺µÄÓï·¨¿´ÆðÀ´ÏñÕâÑù£º

KEY index_name (col_name(length)) 

ÏÂÃæµÄÀý×ÓΪnameÁеÄÍ·10¸ö×Ö·û´´½¨Ò»¸öË÷Òý£º

mysql> CREATE TABLE test (
           name CHAR(200) NOT NULL,
           KEY index_name (name(10)));

¶ÔÓÚBLOBºÍTEXTÁУ¬Äã±ØÐëË÷ÒýÁеÄǰ׺£¬Äã²»ÄÜË÷ÒýÁеÄÈ«²¿¡£

7.3.10 ¶àÁÐË÷Òý

MySQLÄÜÔÚ¶à¸öÁÐÉÏ´´½¨Ë÷Òý¡£Ò»¸öË÷Òý¿ÉÒÔÓÉ×î¶à15¸öÁÐ×é³É¡££¨ÔÚCHARºÍVARCHARÁÐÉÏ£¬ÄãÒ²¿ÉÒÔʹÓÃÁеÄǰ׺×÷Ϊһ¸öË÷ÒýµÄ²¿·Ö)¡£

Ò»¸ö¶àÖØÁÐË÷Òý¿ÉÒÔÈÏΪÊǰüº¬Í¨¹ýºÏ²¢(concatenate)Ë÷ÒýÁÐÖµ´´½¨µÄÖµµÄÒ»¸öÅÅÐòÊý×é¡£

µ±ÄãΪÔÚÒ»¸öWHERE×Ó¾äË÷ÒýµÄµÚÒ»ÁÐÖ¸¶¨ÒÑÖªµÄÊýÁ¿Ê±£¬MySQLÒÔÕâÖÖ·½Ê½Ê¹ÓöàÖØÁÐË÷ÒýʹµÃ²éѯ·Ç³£¿ìËÙ£¬¼´Ê¹Ä㲻ΪÆäËûÁÐÖ¸¶¨Öµ¡£

¼Ù¶¨Ò»ÕűíʹÓÃÏÂÁÐ˵Ã÷´´½¨£º

mysql> CREATE TABLE test (
           id INT NOT NULL,
           last_name CHAR(30) NOT NULL,
           first_name CHAR(30) NOT NULL,
           PRIMARY KEY (id),
           INDEX name (last_name,first_name));

ÄÇôË÷ÒýnameÊÇÒ»¸öÔÚlast_nameºÍfirst_nameÉϵÄË÷Òý£¬Õâ¸öË÷Òý½«±»ÓÃÓÚÔÚlast_name»òlast_nameºÍfirst_nameµÄÒ»¸öÒÑÖª·¶Î§ÄÚÖ¸¶¨ÖµµÄ²éѯ£¬Òò´Ë£¬nameË÷Òý½«Ê¹ÓÃÔÚÏÂÁвéѯÖУº

mysql> SELECT * FROM test WHERE last_name="Widenius";

mysql> SELECT * FROM test WHERE last_name="Widenius"
                          AND first_name="Michael";

mysql> SELECT * FROM test WHERE last_name="Widenius"
                          AND (first_name="Michael" OR first_name="Monty");

mysql> SELECT * FROM test WHERE last_name="Widenius"
                          AND first_name >="M" AND first_name < "N";

È»¶ø£¬nameË÷Òý½«²»ÓÃÔÚÏÂÁÐѯÎÊÖУº

mysql> SELECT * FROM test WHERE first_name="Michael";

mysql> SELECT * FROM test WHERE last_name="Widenius"
                          OR first_name="Michael";

¹ØÓÚMySQLʹÓÃË÷Òý¸Ä½øÐÔÄܵķ½Ê½µÄ¸ü¶àµÄÐÅÏ¢£¬¼û10.4 ʹÓÃMySQLË÷Òý¡£

7.3.11 ʹÓÃÀ´×ÔÆäËûÊý¾Ý¿âÒýÇæµÄÁÐÀàÐÍ

ΪÁ˸úÈÝÒ×µØÊ¹ÓÃΪÆäËû¹©Ó¦É̵ÄSQLʵÏÖ±àдµÄ´úÂ룬ϱíÏÔʾÁËMySQLÓ³ÉäµÄÁÐÀàÐÍ¡£ÕâЩӳÉäʹµÃ´ÓÆäËûÊý¾Ý¿âÒýÇæÒÆ¶¯±í¶¨Òåµ½MySQL¸üÈÝÒ×£º

ÆäËû¹©Ó¦ÉÌÀàÐÍ MySQLÀàÐÍ
BINARY(NUM) CHAR(NUM) BINARY
CHAR VARYING(NUM) VARCHAR(NUM)
FLOAT4 FLOAT
FLOAT8 DOUBLE
INT1 TINYINT
INT2 SMALLINT
INT3 MEDIUMINT
INT4 INT
INT8 BIGINT
LONG VARBINARY MEDIUMBLOB
LONG VARCHAR MEDIUMTEXT
MIDDLEINT MEDIUMINT
VARBINARY(NUM) VARCHAR(NUM) BINARY

ÁÐÀàÐÍÓ³Éä·¢ÉúÔÚ±í´´½¨Ê±¡£Èç¹ûÄãÓÃÆäËû¹©Ó¦ÉÌʹÓõÄÀàÐÍ´´½¨±í£¬ÄÇô·¢³öÒ»¸öDESCRIBE tbl_nameÓï¾ä£¬MySQLʹÓõȼ۵ÄMySQLÀàÐͱ¨¸æ±í½á¹¹¡£

7.4 ÓÃÔÚSELECTºÍWHERE×Ó¾äÖеĺ¯Êý

ÔÚÒ»¸öSQLÓï¾äÖеÄselect_expression»òwhere_definition¿ÉÓÉʹÓÃÏÂÃæÃèÊöµÄº¯ÊýµÄÈκαí´ïʽ×é³É¡£

°üº¬NULLµÄÒ»¸ö±í´ïʽ×ÜÊDzúÉúÒ»¸öNULLÖµ£¬·ñÔò³ý·Ç±í´ïʽËù°üº¬µÄ²Ù×÷·ûºÍº¯ÊýÔÚÎĵµÖÐ˵Ã÷¡£

×¢Ò⣺ÔÚÒ»¸öº¯ÊýÃûºÍ¸úËæËüµÄÀ¨ºÅÖ®¼ä²»ÐíûÓпոñ¡£Õâ°ïÖúMySQL·ÖÎöÆ÷Çø·Öº¯Êýµ÷Óú;ßÓÐÏàͬÃû×ֵĶԱí»òÁеÄÒýÓ㬾¡¹ÜÔÊÐíÔÚ²ÎÊýÖÜΧÓпոñ¡£

ΪÁ˼ò½à£¬Àý×ÓÒÔËõдÐÎʽÏÔʾ´Ómysql³ÌÐòÊä³ö¡£Òò´Ë£º

mysql> select MOD(29,9); 
1 rows in set (0.00 sec) 

+-----------+
| mod(29,9) |
+-----------+
|         2 |
+-----------+

±»ÏÔʾΪÕâÑù£º

mysql> select MOD(29,9);
        -> 2

7.4.1 ·Ö×麯Êý

( ... )
À¨ºÅ¡£Ê¹ÓÃËüÃÇÀ´Ç¿ÖÆÔÚÒ»¸ö±í´ïʽµÄ¼ÆËã˳Ðò¡£
mysql> select 1+2*3;
        -> 7
mysql> select (1+2)*3;
        -> 9

7.4.2 ³£ÓõÄËãÊõ²Ù×÷

Ò»°ãµÄËãÊõ²Ù×÷·ûÊÇ¿ÉÓõġ£×¢ÒâÔÚ-¡¢+ºÍ*Çé¿öÏ£¬Èç¹ûÁ½¸ö²ÎÊýÊÇÕûÊý£¬½á¹ûÓÃBIGINT£¨64룩¾«¶È¼ÆË㣡  

+
¼Ó·¨
mysql> select 3+5;
        -> 8
-
¼õ·¨
mysql> select 3-5;
        -> -2  
*
³Ë·¨
mysql> select 3*5;
        -> 15
mysql> select 18014398509481984*18014398509481984.0;
        -> 324518553658426726783156020576256.0
mysql> select 18014398509481984*18014398509481984;
        -> 0

×îºóÒ»¸ö±í´ïʽµÄ½á¹ûÊDz»ÕýÈ·µÄ£¬ÒòΪÕûÊý³Ë»ýµÄ½á¹û³¬¹ýÓÃBIGINT¼ÆËãµÄ64λ·¶Î§¡£

/
³ý·¨
mysql> select 3/5;
        -> 0.60

±»Áã³ý²úÉúÒ»¸öNULL½á¹û£º

mysql> select 102/(1-1);
        -> NULL

Ò»¸ö³ý·¨ÓÃBIGINTËãÊõ¼ÆË㣬ֻҪÔÚËüµÄ½á¹û±»×ª»»µ½Ò»¸öÕûÊýµÄÉÏÏÂÎÄÖÐÖ´ÐУ¡

7.4.3 λº¯Êý

MySQLΪλ²Ù×÷ʹÓÃBIGINT£¨64λ)Ëã·¨£¬Òò´ËÕâЩ²Ù×÷·ûÓÐ×î´ó64λµÄÒ»¸ö·¶Î§¡£

|
λ»ò
mysql> select 29 | 15;
        -> 31
&
λÓë
mysql> select 29 & 15;
        -> 13
 
<<
×óÒÆÎ»Ò»¸ö³¤(BIGINT)Êý×Ö¡£
mysql> select 1 << 2
        -> 4
 
>>
ÓÒÒÆÎ»Ò»¸ö³¤(BIGINT)Êý×Ö¡£
mysql> select 4 >> 2
        -> 1 
~
µßµ¹ËùÓеÄλ¡£
mysql> select 5 & ~1
        -> 4
 
BIT_COUNT(N)
·µ»ØÔÚ²ÎÊýNÉ趨µÄλµÄÊýÁ¿¡£
mysql> select BIT_COUNT(29);
        -> 4
  

7.4.4 Âß¼­ÔËËã

ËùÓеÄÂß¼­º¯Êý·µ»Ø1£¨TRUE£©»ò0£¨FALSE£©¡£

NOT
!
Âß¼­·Ç¡£Èç¹û²ÎÊýÊÇ0£¬·µ»Ø1£¬·ñÔò·µ»Ø0¡£ÀýÍ⣺ NOT NULL·µ»ØNULL¡£
mysql> select NOT 1;
        -> 0
mysql> select NOT NULL;
        -> NULL
mysql> select ! (1+1);
        -> 0
mysql> select ! 1+1;
        -> 1
×îºóµÄÀý×Ó·µ»Ø1£¬ÒòΪ±í´ïʽ×÷Ϊ(!1)+1¼ÆËã¡£   
OR
¡¡
||
Âß¼­»ò¡£Èç¹ûÈκÎÒ»¸ö²ÎÊý²»ÊÇ0²¢ÇÒ²»NULL£¬·µ»Ø1¡£
mysql> select 1 || 0;
        -> 1
mysql> select 0 || 0;
        -> 0
mysql> select 1 || NULL;
        -> 1
 
AND
¡¡
&&
Âß¼­Óë¡£Èç¹ûÈκÎÒ»¸ö²ÎÊýÊÇ0»òNULL£¬·µ»Ø0£¬·ñÔò·µ»Ø1¡£
mysql> select 1 && NULL;
        -> 0
mysql> select 1 && 0;
        -> 0
   

7.4.5 ±È½ÏÔËËã·û

±È½Ï²Ù×÷µÃ³öÖµ1£¨TRUE£©¡¢0£¨FALSE£©»òNULLµÈ½á¹û¡£ÕâЩº¯Êý¹¤×÷ÔËÓÃÔÚÊý×ÖºÍ×Ö·û´®ÉÏ¡£µ±ÐèҪʱ£¬×Ö·û´®×Ô¶¯µØ±»±ä»»µ½Êý×ÖÇÒÊý×Öµ½×Ö·û´®(ÈçÔÚPerl)¡£

MySQLʹÓÃÏÂÁйæÔòÖ´ÐбȽϣº

ȱʡµØ£¬×Ö·û´®Ê¹Óõ±Ç°µÄ×Ö·û¼¯ÒÔ´óСдÃô¸ÐµÄ·½Ê½½øÐÐ(ȱʡΪISO-8859-1 Latin1£¬Ëü¶ÔÓ¢ÓïÔËÓõúܳöÉ«)¡£

ÏÂÃæµÄÀý×ÓÑÝʾÁ˶ÔÓڱȽϲÙ×÷×Ö·û´®µ½Êý×ÖµÄת»»£º

mysql> SELECT 1 > '6x';
         -> 0
mysql> SELECT 7 > '6x';
         -> 1
mysql> SELECT 0 > 'x6';
         -> 0
mysql> SELECT 0 = 'x6';
         -> 1
=
µÈÓÚ
mysql> select 1 = 0;
        -> 0
mysql> select '0' = 0;
        -> 1
mysql> select '0.0' = 0;
        -> 1
mysql> select '0.01' = 0;
        -> 0
mysql> select '.01' = 0.01;
        -> 1
    
<>
¡¡
!=
²»µÈÓÚ
mysql> select '.01' <> '0.01';
        -> 1
mysql> select .01 <> '0.01';
        -> 0
mysql> select 'zapp' <> 'zappp';
        -> 1
<=
СÓÚ»òµÈÓÚ
mysql> select 0.1 <= 2;
        -> 1
 
<
СÓÚ
mysql> select 2 <= 2;
        -> 1
  
>=
´óÓÚ»òµÈÓÚ
mysql> select 2 >= 2;
        -> 1 
>
´óÓÚ
mysql> select 2 > 2;
        -> 0
<=>
°²È«µÈÓÚNull
mysql> select 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1 1 0
  
IS NULL
¡¡
IS NOT NULL
²âÊÔÖµÊÇ·ñÊÇ»ò²»ÊÇNULL
mysql> select 1 IS NULL, 0 IS NULL, NULL IS NULL:
        -> 0 0 1
mysql> select 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
 
expr BETWEEN min AND max
Èç¹ûexpr¶Ô´óÓÚ»òµÈÓÚminÇÒexprÊÇСÓÚ»òµÈÓÚmax£¬BETWEEN·µ»Ø1£¬·ñÔòËü·µ»Ø0¡£Èç¹ûËùÓеIJÎÊýÀàÐÍÊÇÒ»ÑùµÃ£¬ÕâµÈ¼ÛÓÚ±í´ïʽ(min <= expr AND expr <= max)¡£µÚÒ»¸ö²ÎÊý(expr)¾ö¶¨±È½ÏÈçºÎ±»Ö´ÐС£Èç¹ûexprÊÇÒ»¸ö´óСд²»Ãô¸ÐµÄ×Ö·û´®±í´ïʽ£¬½øÐÐÒ»¸ö´óСд²»Ãô¸ÐµÄ×Ö·û´®±È½Ï¡£Èç¹ûexprÊÇÒ»¸ö´óСдÃô¸ÐµÄ×Ö·û´®±í´ïʽ£¬½øÐÐÒ»¸ö´óСдÃô¸ÐµÄ×Ö·û´®±È½Ï¡£Èç¹ûexprÊÇÒ»¸öÕûÊý±í´ïʽ£¬½øÐÐÕûÊý±È½Ï¡£·ñÔò£¬½øÐÐÒ»¸ö¸¡µã(ʵÊý)±È½Ï¡£
mysql> select 1 BETWEEN 2 AND 3;
        -> 0
mysql> select 'b' BETWEEN 'a' AND 'c';
        -> 1
mysql> select 2 BETWEEN 2 AND '3';
        -> 1
mysql> select 2 BETWEEN 2 AND 'x-3';
        -> 0
expr IN (value,...)
Èç¹ûexprÊÇÔÚIN±íÖеÄÈκÎÖµ£¬·µ»Ø1£¬·ñÔò·µ»Ø0¡£Èç¹ûËùÓеÄÖµÊdz£Êý£¬ÄÇôËùÓеÄÖµ¸ù¾ÝexprÀàÐͱ»¼ÆËãºÍÅÅÐò£¬È»ºóÏîÄ¿µÄËÑË÷ÊÇÓöþ½øÖƵÄËÑË÷Íê³É¡£ÕâÒâζ×ÅÈç¹ûINÖµ±íÈ«²¿Óɳ£Êý×é³É£¬INÊǺܿìµÄ¡£Èç¹ûexprÊÇÒ»¸ö´óСдÃô¸ÐµÄ×Ö·û´®±í´ïʽ£¬×Ö·û´®±È½ÏÒÔ´óСдÃô¸Ð·½Ê½Ö´ÐС£
mysql> select 2 IN (0,3,5,'wefwf');
        -> 0
mysql> select 'wefwf' IN (0,3,5,'wefwf');
        -> 1 
expr NOT IN (value,...)
ÓëNOT (expr IN (value,...))Ïàͬ¡£
ISNULL(expr)
Èç¹ûexprÊÇNULL£¬ISNULL()·µ»Ø1£¬·ñÔòËü·µ»Ø0¡£
mysql> select ISNULL(1+1);
        -> 0
mysql> select ISNULL(1/0);
        -> 1

×¢Ò⣬ʹÓÃ=µÄNULLµÄÖµ±È½Ï×ÜΪ¼Ù£¡

COALESCE(list)
»ØÀ´listÖеÚÒ»¸ö·ÇNULLµÄµ¥Ôª¡£
mysql> select COALESCE(NULL,1);
        -> 1
mysql> select COALESCE(NULL,NULL,NULL);
        -> NULL
INTERVAL(N,N1,N2,N3,...)
Èç¹ûN< N1£¬·µ»Ø0£¬Èç¹ûN< N2£¬·µ»Ø1µÈµÈ¡£ËùÓеIJÎÊý±»µ±×÷ÕûÊý¡£ÎªÁ˺¯ÊýÄÜÕýÈ·µØ¹¤×÷£¬ËüÒªÇóN1<N2<N3< ...<Nn¡£ÕâÊÇÒòΪʹÓöþ½øÖÆËÑË÷(ºÜ¿ì)¡£
mysql> select INTERVAL(23, 1, 15, 17, 30, 44, 200);
        -> 3
mysql> select INTERVAL(10, 1, 10, 100, 1000);
        -> 2
mysql> select INTERVAL(22, 23, 30, 44, 200);
        -> 0  

7.4.6 ×Ö·û´®±È½Ïº¯Êý

ͨ³££¬Èç¹ûÔÚ×Ö·û´®±È½ÏÖеÄÈκαí´ïʽÊÇÇø·Ö´óСдµÄ£¬±È½ÏÒÔ´óСдÃô¸ÐµÄ·½Ê½Ö´ÐС£

expr LIKE pat [ESCAPE 'escape-char']
ʹÓÃSQLµÄ¼òµ¥µÄÕý¹æ±í´ïʽ±È½ÏµÄģʽƥÅä¡£·µ»Ø1£¨TRUE£©»ò0£¨FALSE£©¡£ÓÃLIKE£¬Äã¿ÉÒÔÔÚģʽÖÐʹÓÃÏÂÁÐ2¸öͨÅä·û×Ö·û£º
% Æ¥ÅäÈκÎÊýÄ¿µÄ×Ö·û£¬ÉõÖÁÁã¸ö×Ö·û
_ ¾«È·Æ¥ÅäÒ»¸ö×Ö·û
mysql> select 'David!' LIKE 'David_';
        -> 1
mysql> select 'David!' LIKE '%D%v%';
        -> 1

ΪÁ˲âÊÔÒ»¸öͨÅä·ûµÄÎÄ×ÖʵÀý£¬ÓÃתÒå×Ö·ûµÄ¼ÓÔÚ×Ö·ûÇ°Ãæ¡£Èç¹ûÄã²»Ö¸¶¨ESCAPE×Ö·û£¬¼Ù¶¨Îª¡°\¡±£º

\% Æ¥ÅäÒ»%×Ö·û
\_ Æ¥ÅäÒ»_×Ö·û
mysql> select 'David!' LIKE 'David\_';
        -> 0
mysql> select 'David_' LIKE 'David\_';
        -> 1

ΪÁËÖ¸¶¨Ò»¸ö²»Í¬µÄתÒå×Ö·û£¬Ê¹ÓÃESCAPE×Ӿ䣺 
mysql> select 'David_' LIKE 'David|_' ESCAPE '|';
        -> 1

LIKEÔÊÐíÓÃÔÚÊý×ֵıí´ïʽÉÏ£¡£¨ÕâÊÇMySQL¶ÔANSI SQL LIKEµÄÒ»¸öÀ©³ä¡£)

mysql> select 10 LIKE '1%';
        -> 1

×¢Ò⣺ÒòΪMySQLÔÚ×Ö·û´®ÖÐʹÓÃCתÒåÓï·¨(ÀýÈ磬¡°\n¡±)£¬Äã±ØÐëÔÚÄãµÄLIKE×Ö·û´®ÖÐÖØ¸´ÈκΡ°\¡±¡£ÀýÈ磬ΪÁ˲éÕÒ¡°\n¡±£¬Ö¸¶¨ËüΪ¡° \\n¡±£¬ÎªÁ˲éÕÒ¡°\¡±£¬Ö¸¶¨ËüΪ¡°\\\\¡±£¨·´Ð±Ïß±»·ÖÎöÆ÷°þÈ¥Ò»´Î£¬ÁíÒ»´ÎÊÇÔÚģʽƥÅäÍê³Éʱ£¬ÁôÏÂÒ»Ìõµ¥¶ÀµÄ·´Ð±Ïß±»Æ¥Åä)¡£

expr NOT LIKE pat [ESCAPE 'escape-char']
ÓëNOT (expr LIKE pat [ESCAPE 'escape-char'])Ïàͬ¡£
expr REGEXP pat
¡¡
expr RLIKE pat
Ö´ÐÐÒ»¸ö×Ö·û´®±í´ïʽexpr¶ÔÒ»¸öģʽpatµÄģʽƥÅ䡣ģʽ¿ÉÒÔÊÇÒ»¸öÀ©³äµÄÕýÔò±í´ïʽ¡£¼ûMySQL ÕýÔò±í´ïʽ¾ä·¨µÄ H ÃèÊö.Èç¹ûexprÆ¥Åäpat£¬·µ»Ø1£¬·ñÔò·µ»Ø0¡£RLIKEÊÇREGEXPµÄÒ»¸öͬÒå´Ê£¬ÌṩÁËÓëmSQLµÄ¼æÈÝÐÔ¡£×¢Ò⣺ÒòΪMySQLÔÚ×Ö·û´®ÖÐʹÓÃCתÒåÓï·¨(ÀýÈ磬¡°\n¡±), Äã±ØÐëÔÚÄãµÄREGEXP×Ö·û´®Öظ´ÈκΡ°\¡±¡£ÔÚMySQL3.23.4ÖУ¬REGEXP¶ÔÓÚÕý³£µÄ(²»ÊǶþ½øÖÆ)×Ö·û´®ÊǺöÂÔ´óСд¡£
mysql> select 'Monty!' REGEXP 'm%y%%';
        -> 0
mysql> select 'Monty!' REGEXP '.*';
        -> 1
mysql> select 'new*\n*line' REGEXP 'new\\*.\\*line';
        -> 1
mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A";
        -> 1  0
µ±¾ö¶¨Ò»¸ö×Ö·ûµÄÀàÐÍʱ£¬REGEXPºÍRLIKEʹÓõ±Ç°µÄ×Ö·û¼¯(ȱʡΪISO-8859-1 Latin1)¡£
expr NOT REGEXP pat
¡¡
expr NOT RLIKE pat
ÓëNOT (expr REGEXP pat)Ïàͬ¡£
STRCMP(expr1,expr2)
Èç¹û×Ö·û´®Ïàͬ£¬STRCMP()»ØÀ´0£¬Èç¹ûµÚÒ»²ÎÊý¸ù¾Ýµ±Ç°µÄÅÅÐò´ÎÐòСÓÚµÚ¶þ¸ö£¬·µ»Ø-1£¬·ñÔò·µ»Ø1¡£
mysql> select STRCMP('text', 'text2');
        -> -1
mysql> select STRCMP('text2', 'text');
        -> 1
mysql> select STRCMP('text', 'text');
        -> 0
 

7.4.7 ÀàÐÍת»»ÔËËã·û

BINARY
BINARY²Ù×÷·ûÇ¿ÖÆ¸úËæËüºóÃæµÄ×Ö·û´®ÎªÒ»¸ö¶þ½øÖÆ×Ö·û´®¡£¼´Ê¹ÁÐû±»¶¨ÒåΪBINARY»òBLOB£¬ÕâÊÇÒ»¸öÇ¿ÖÆÁбȽÏÇø·Ö´óСдµÄ¼òÒ×·½·¨¡£
mysql> select "a" = "A";
        -> 1
mysql> select BINARY "a" = "A";
        -> 0

BINARYÔÚMySQL 3.23.0Öб»ÒýÈë¡£

7.4.8 ¿ØÖÆÁ÷º¯Êý

IFNULL(expr1,expr2)
Èç¹ûexpr1²»ÊÇNULL£¬IFNULL()·µ»Øexpr1£¬·ñÔòËü·µ»Øexpr2¡£IFNULL()·µ»ØÒ»¸öÊý×Ö»ò×Ö·û´®Öµ£¬È¡¾öÓÚËü±»Ê¹ÓõÄÉÏÏÂÎÄ»·¾³¡£
mysql> select IFNULL(1,0);
        -> 1
mysql> select IFNULL(0,10);
        -> 0
mysql> select IFNULL(1/0,10);
        -> 10
mysql> select IFNULL(1/0,'yes');
        -> 'yes'
 
IF(expr1,expr2,expr3)
Èç¹ûexpr1ÊÇTRUE(expr1<>0ÇÒexpr1<>NULL)£¬ÄÇôIF()·µ»Øexpr2£¬·ñÔòËü·µ»Øexpr3¡£IF()·µ»ØÒ»¸öÊý×Ö»ò×Ö·û´®Öµ£¬È¡¾öÓÚËü±»Ê¹ÓõÄÉÏÏÂÎÄ¡£
mysql> select IF(1>2,2,3);
        -> 3
mysql> select IF(1<2,'yes','no');
        -> 'yes'
mysql> select IF(strcmp('test','test1'),'yes','no');
        -> 'no'

expr1×÷ΪÕûÊýÖµ±»¼ÆË㣬ËüÒâζ×ÅÈç¹ûÄãÕýÔÚ²âÊÔ¸¡µã»ò×Ö·û´®Öµ£¬ÄãÓ¦¸ÃʹÓÃÒ»¸ö±È½Ï²Ù×÷À´×ö¡£

mysql> select IF(0.1,1,0);
        -> 0
mysql> select IF(0.1<>0,1,0);
        -> 1

ÔÚÉÏÃæµÄµÚÒ»ÖÖÇé¿öÖУ¬IF(0.1)·µ»Ø0£¬ÒòΪ0.1±»±ä»»µ½ÕûÊýÖµ, µ¼Ö²âÊÔIF(0)¡£Õâ¿ÉÄܲ»ÊÇÄãÆÚÍûµÄ¡£ÔÚµÚ¶þÖÖÇé¿öÖУ¬±È½Ï²âÊÔÔ­À´µÄ¸¡µãÖµ¿´ËüÊÇ·ñÊÇ·ÇÁ㣬±È½ÏµÄ½á¹û±»ÓÃ×÷Ò»¸öÕûÊý¡£

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
¡¡
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
µÚÒ»¸ö°æ±¾·µ»Øresult£¬ÆäÖÐvalue=compare-value¡£µÚ¶þ¸ö°æ±¾ÖÐÈç¹ûµÚÒ»¸öÌõ¼þÎªÕæ£¬·µ»Øresult¡£Èç¹ûûÓÐÆ¥ÅäµÄresultÖµ£¬ÄÇô½á¹ûÔÚELSEºóµÄresult±»·µ»Ø¡£Èç¹ûûÓÐELSE²¿·Ö£¬ÄÇôNULL±»·µ»Ø¡£
mysql> SELECT CASE 1 WHEN 1 THEN "one" WHEN 2 THEN "two" ELSE "more" END;
       -> "one"
mysql> SELECT CASE WHEN 1>0 THEN "true" ELSE "false" END;
       -> "true"
mysql> SELECT CASE BINARY "B" when "a" then 1 when "b" then 2 END;
       -> NULL

7.4.9 Êýѧº¯Êý

ËùÓеÄÊýѧº¯ÊýÔÚÒ»¸ö³ö´íµÄÇé¿öÏ·µ»ØNULL¡£

-
µ¥Ä¿¼õ¡£¸Ä±ä²ÎÊýµÄ·ûºÅ¡£
mysql> select - 2;
×¢Ò⣬Èç¹ûÕâ¸ö²Ù×÷·ûÓëÒ»¸öBIGINTʹÓ㬷µ»ØÖµÊÇÒ»¸öBIGINT£¡ÕâÒâζ×ÅÄãÓ¦¸Ã±ÜÃâÔÚÕûÊýÉÏʹÓÃ-£¬ÄÇ¿ÉÄÜÓÐÖµ-2^63£¡ 
ABS(X)
·µ»ØXµÄ¾ø¶ÔÖµ¡£
mysql> select ABS(2);
        -> 2
mysql> select ABS(-32);
        -> 32

¸Ã¹¦Äܿɰ²È«ÓÃÓÚBIGINTÖµ¡£

SIGN(X)
·µ»Ø²ÎÊýµÄ·ûºÅ£¬Îª-1¡¢0»ò1£¬È¡¾öÓÚXÊÇ·ñÊǸºÊý¡¢Áã»òÕýÊý¡£
mysql> select SIGN(-32);
        -> -1
mysql> select SIGN(0);
        -> 0
mysql> select SIGN(234);
        -> 1
   
MOD(N,M)
¡¡
%
Ä£ (ÀàËÆCÖеÄ%²Ù×÷·û)¡£·µ»ØN±»M³ýµÄÓàÊý¡£
mysql> select MOD(234, 10);
        -> 4
mysql> select 253 % 7;
        -> 1
mysql> select MOD(29,9);
        -> 2
Õâ¸öº¯Êý¿É°²È«ÓÃÓÚBIGINTÖµ¡£  
FLOOR(X)
·µ»Ø²»´óÓÚXµÄ×î´óÕûÊýÖµ¡£

    
mysql> select FLOOR(1.23);
        -> 1
mysql> select FLOOR(-1.23);
        -> -2
×¢Òâ·µ»ØÖµ±»±ä»»ÎªÒ»¸öBIGINT£¡  
CEILING(X)
·µ»Ø²»Ð¡ÓÚXµÄ×îСÕûÊýÖµ¡£
mysql> select CEILING(1.23);
        -> 2
mysql> select CEILING(-1.23);
        -> -1

×¢Òâ·µ»ØÖµ±»±ä»»ÎªÒ»¸öBIGINT£¡

ROUND(X)
·µ»Ø²ÎÊýXµÄËÄÉáÎåÈëµÄÒ»¸öÕûÊý¡£
mysql> select ROUND(-1.23);
        -> -1
mysql> select ROUND(-1.58);
        -> -2
mysql> select ROUND(1.58);
        -> 2
 

×¢Òâ·µ»ØÖµ±»±ä»»ÎªÒ»¸öBIGINT!

ROUND(X,D)
·µ»Ø²ÎÊýXµÄËÄÉáÎåÈëµÄÓÐDΪСÊýµÄÒ»¸öÊý×Ö¡£Èç¹ûDΪ0£¬½á¹û½«Ã»ÓÐСÊýµã»òСÊý²¿·Ö¡£
mysql> select ROUND(1.298, 1);
        -> 1.3
mysql> select ROUND(1.298, 0);
        -> 1

×¢Òâ·µ»ØÖµ±»±ä»»ÎªÒ»¸öBIGINT!

EXP(X)
·µ»ØÖµe£¨×ÔÈ»¶ÔÊýµÄµ×£©µÄX´Î·½¡£
mysql> select EXP(2);
        -> 7.389056
mysql> select EXP(-2);
        -> 0.135335
 
LOG(X)
·µ»ØXµÄ×ÔÈ»¶ÔÊý¡£
mysql> select LOG(2);
        -> 0.693147
mysql> select LOG(-2);
        -> NULL

Èç¹ûÄãÏëÒªÒ»¸öÊý×ÖXµÄÈÎÒâµ×BµÄ¶ÔÊý£¬Ê¹Óù«Ê½LOG(X)/LOG(B)¡£

LOG10(X)
·µ»ØXµÄÒÔ10Ϊµ×µÄ¶ÔÊý¡£
mysql> select LOG10(2);
        -> 0.301030
mysql> select LOG10(100);
        -> 2.000000
mysql> select LOG10(-100);
        -> NULL
POW(X,Y)
¡¡
POWER(X,Y)
·µ»ØÖµXµÄY´ÎÃÝ¡£
mysql> select POW(2,2);
        -> 4.000000
mysql> select POW(2,-2);
        -> 0.250000
SQRT(X)
·µ»Ø·Ç¸ºÊýXµÄƽ·½¸ù¡£
mysql> select SQRT(4);
        -> 2.000000
mysql> select SQRT(20);
        -> 4.472136
 
PI()
·µ»ØPIµÄÖµ£¨Ô²ÖÜÂÊ£©¡£
mysql> select PI();
        -> 3.141593
COS(X)
·µ»ØXµÄÓàÏÒ, ÔÚÕâÀïXÒÔ»¡¶È¸ø³ö¡£
mysql> select COS(PI());
        -> -1.000000
 
SIN(X)
·µ»ØXµÄÕýÏÒÖµ£¬ÔÚ´ËXÒÔ»¡¶È¸ø³ö¡£
mysql> select SIN(PI());
        -> 0.000000
 
TAN(X)
·µ»ØXµÄÕýÇÐÖµ£¬ÔÚ´ËXÒÔ»¡¶È¸ø³ö¡£
mysql> select TAN(PI()+1);
        -> 1.557408
 
ACOS(X)
·µ»ØX·´ÓàÏÒ£¬¼´ÆäÓàÏÒÖµÊÇX¡£Èç¹ûX²»ÔÚ-1µ½1µÄ·¶Î§£¬·µ»ØNULL¡£
mysql> select ACOS(1);
        -> 0.000000
mysql> select ACOS(1.0001);
        -> NULL
mysql> select ACOS(0);
        -> 1.570796
 
ASIN(X)
·µ»ØX·´ÕýÏÒÖµ£¬¼´ÆäÕýÏÒÖµÊÇX¡£LÈç¹ûX²»ÔÚ-1µ½1µÄ·¶Î§£¬·µ»ØNULL¡£
mysql> select ASIN(0.2);
        -> 0.201358
mysql> select ASIN('foo');
        -> 0.000000
 
ATAN(X)
·µ»ØXµÄ·´ÕýÇÐÖµ£¬¼´ÆäÕýÇÐÖµÊÇX¡£
mysql> select ATAN(2);
        -> 1.107149
mysql> select ATAN(-2);
        -> -1.107149
ATAN2(X,Y)
·µ»Ø2¸ö±äÁ¿XºÍYµÄ·´ÕýÇС£ËüÀàËÆÓÚ¼ÆËãY/XµÄ·´ÕýÇУ¬³ýÁËÁ½¸ö²ÎÊýµÄ·ûºÅ±»ÓÃÀ´¾ö¶¨½á¹ûµÄÏóÏÞ¡£
mysql> select ATAN(-2,2);
        -> -0.785398
mysql> select ATAN(PI(),0);
        -> 1.570796 
COT(X)
·µ»ØXµÄÓàÇС£
mysql> select COT(12);
        -> -1.57267341
mysql> select COT(0);
        -> NULL
RAND()
¡¡
RAND(N)
·µ»ØÔÚ·¶Î§0µ½1.0ÄÚµÄËæ»ú¸¡µãÖµ¡£Èç¹ûÒ»¸öÕûÊý²ÎÊýN±»Ö¸¶¨£¬Ëü±»ÓÃ×÷ÖÖ×ÓÖµ¡£
mysql> select RAND();
        -> 0.5925
mysql> select RAND(20);
        -> 0.1811
mysql> select RAND(20);
        -> 0.1811
mysql> select RAND();
        -> 0.2079
mysql> select RAND();
        -> 0.7888

Äã²»ÄÜÔÚÒ»¸öORDER BY×Ó¾äÓÃRAND()ֵʹÓÃÁУ¬ÒòΪORDER BY½«Öظ´¼ÆËãÁжà´Î¡£È»¶øÔÚMySQL3.23ÖУ¬Äã¿ÉÒÔ×ö£º SELECT * FROM table_name ORDER BY RAND()£¬ÕâÊÇÓÐÀûÓڵõ½Ò»¸öÀ´×ÔSELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000µÄ¼¯ºÏµÄËæ»úÑù±¾¡£×¢ÒâÔÚÒ»¸öWHERE×Ó¾äÀïµÄÒ»¸öRAND()½«ÔÚÿ´ÎWHERE±»Ö´ÐÐÊ±ÖØÐÂÆÀ¹À¡£

LEAST(X,Y,...)
ÓÐ2ºÍ2¸öÒÔÉϵIJÎÊý£¬·µ»Ø×îС(×îСֵ)µÄ²ÎÊý¡£²ÎÊýʹÓÃÏÂÁйæÔò½øÐбȽϣº
mysql> select LEAST(2,0);
        -> 0
mysql> select LEAST(34.0,3.0,5.0,767.0);
        -> 3.0
mysql> select LEAST("B","A","C");
        -> "A"

ÔÚMySQL 3.22.5ÒÔǰµÄ°æ±¾£¬Äã¿ÉÒÔʹÓÃMIN()¶ø²»ÊÇLEAST¡£

GREATEST(X,Y,...)
·µ»Ø×î´ó(×î´óÖµ)µÄ²ÎÊý¡£²ÎÊýʹÓÃÓëLEASTÒ»ÑùµÄ¹æÔò½øÐбȽϡ£
mysql> select GREATEST(2,0);
        -> 2
mysql> select GREATEST(34.0,3.0,5.0,767.0);
        -> 767.0
mysql> select GREATEST("B","A","C");
        -> "C"
ÔÚMySQLÔÚ 3.22.5 ÒÔǰµÄ°æ±¾, ÄãÄÜʹÓÃMAX()¶ø²»ÊÇGREATEST.  
DEGREES(X)
·µ»Ø²ÎÊýX£¬´Ó»¡¶È±ä»»Îª½Ç¶È¡£
mysql> select DEGREES(PI());
        -> 180.000000
RADIANS(X)
·µ»Ø²ÎÊýX£¬´Ó½Ç¶È±ä»»Îª»¡¶È¡£
mysql> select RADIANS(90);
        -> 1.570796
TRUNCATE(X,D)
·µ»ØÊý×ÖX£¬½Ø¶ÏΪDλСÊý¡£Èç¹ûDΪ0£¬½á¹û½«Ã»ÓÐСÊýµã»òСÊý²¿·Ö¡£
mysql> select TRUNCATE(1.223,1);
        -> 1.2
mysql> select TRUNCATE(1.999,1);
        -> 1.9
mysql> select TRUNCATE(1.999,0);
        -> 1
 

7.4.10 ×Ö·û´®º¯Êý

Èç¹û½á¹ûµÄ³¤¶È´óÓÚ·þÎñÆ÷²ÎÊýmax_allowed_packet£¬×Ö·û´®Öµº¯Êý·µ»ØNULL¡£¼û10.2.3 µ÷½Ú·þÎñÆ÷²ÎÊý¡£

¶ÔÓÚÕë¶Ô×Ö·û´®Î»ÖõIJÙ×÷£¬µÚÒ»¸öλÖñ»±ê¼ÇΪ1¡£

ASCII(str)
·µ»Ø×Ö·û´®strµÄ×î×óÃæ×Ö·ûµÄASCII´úÂëÖµ¡£Èç¹ûstrÊÇ¿Õ×Ö·û´®£¬·µ»Ø0¡£Èç¹ûstrÊÇNULL£¬·µ»ØNULL¡£
mysql> select ASCII('2');
        -> 50
mysql> select ASCII(2);
        -> 50
mysql> select ASCII('dx');
        -> 100

Ò²¿É²Î¼ûORD()º¯Êý¡£

ORD(str)
Èç¹û×Ö·û´®str×î×óÃæ×Ö·ûÊÇÒ»¸ö¶à×Ö½Ú×Ö·û£¬Í¨¹ýÒÔ¸ñʽ((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]·µ»Ø×Ö·ûµÄASCII´úÂëÖµÀ´·µ»Ø¶à×Ö½Ú×Ö·û´úÂë¡£Èç¹û×î×óÃæµÄ×Ö·û²»ÊÇÒ»¸ö¶à×Ö½Ú×Ö·û¡£·µ»ØÓëASCII()º¯Êý·µ»ØµÄÏàֵͬ¡£
mysql> select ORD('2');
        -> 50
 
CONV(N,from_base,to_base)
ÔÚ²»Í¬µÄÊý×Ö»ùÖ®¼ä±ä»»Êý×Ö¡£·µ»ØÊý×ÖNµÄ×Ö·û´®Êý×Ö£¬´Ófrom_base»ù±ä»»Îªto_base»ù£¬Èç¹ûÈκβÎÊýÊÇNULL£¬·µ»ØNULL¡£²ÎÊýN½âÊÍΪһ¸öÕûÊý£¬µ«ÊÇ¿ÉÒÔÖ¸¶¨ÎªÒ»¸öÕûÊý»òÒ»¸ö×Ö·û´®¡£×îС»ùÊÇ2ÇÒ×î´óµÄ»ùÊÇ36¡£Èç¹ûto_baseÊÇÒ»¸ö¸ºÊý£¬N±»ÈÏΪÊÇÒ»¸öÓзûºÅÊý£¬·ñÔò£¬N±»µ±×÷ÎÞ·ûºÅÊý¡£ CONVÒÔ64λµã¾«¶È¹¤×÷¡£
mysql> select CONV("a",16,2);
        -> '1010'
mysql> select CONV("6E",18,8);
        -> '172'
mysql> select CONV(-17,10,-18);
        -> '-H'
mysql> select CONV(10+"10"+'10'+0xa,10,10);
        -> '40'
 
BIN(N)
·µ»Ø¶þ½øÖÆÖµNµÄÒ»¸ö×Ö·û´®±íʾ£¬ÔÚ´ËNÊÇÒ»¸ö³¤ÕûÊý(BIGINT)Êý×Ö£¬ÕâµÈ¼ÛÓÚCONV(N,10,2)¡£Èç¹ûNÊÇNULL£¬·µ»ØNULL¡£
mysql> select BIN(12);
        -> '1100'
OCT(N)
·µ»Ø°Ë½øÖÆÖµNµÄÒ»¸ö×Ö·û´®µÄ±íʾ£¬ÔÚ´ËNÊÇÒ»¸ö³¤ÕûÐÍÊý×Ö£¬ÕâµÈ¼ÛÓÚCONV(N,10,8)¡£Èç¹ûNÊÇNULL£¬·µ»ØNULL¡£
mysql> select OCT(12);
        -> '14'
 
HEX(N)
·µ»ØÊ®Áù½øÖÆÖµNÒ»¸ö×Ö·û´®µÄ±íʾ£¬ÔÚ´ËNÊÇÒ»¸ö³¤ÕûÐÍ(BIGINT)Êý×Ö£¬ÕâµÈ¼ÛÓÚCONV(N,10,16)¡£Èç¹ûNÊÇNULL£¬·µ»ØNULL¡£
mysql> select HEX(255);
        -> 'FF'
 
CHAR(N,...)
CHAR()½«²ÎÊý½âÊÍΪÕûÊý²¢ÇÒ·µ»ØÓÉÕâЩÕûÊýµÄASCII´úÂë×Ö·û×é³ÉµÄÒ»¸ö×Ö·û´®¡£NULLÖµ±»Ìø¹ý¡£
mysql> select CHAR(77,121,83,81,'76');
        -> 'MySQL'
mysql> select CHAR(77,77.3,'77.3');
        -> 'MMM'
 
CONCAT(str1,str2,...)
·µ»ØÀ´×ÔÓÚ²ÎÊýÁ¬½áµÄ×Ö·û´®¡£Èç¹ûÈκβÎÊýÊÇNULL£¬·µ»ØNULL¡£¿ÉÒÔÓг¬¹ý2¸öµÄ²ÎÊý¡£Ò»¸öÊý×Ö²ÎÊý±»±ä»»ÎªµÈ¼ÛµÄ×Ö·û´®ÐÎʽ¡£
mysql> select CONCAT('My', 'S', 'QL');
        -> 'MySQL'
mysql> select CONCAT('My', NULL, 'QL');
        -> NULL
mysql> select CONCAT(14.3);
        -> '14.3'
LENGTH(str)
¡¡
OCTET_LENGTH(str)
¡¡
CHAR_LENGTH(str)
¡¡
CHARACTER_LENGTH(str)
·µ»Ø×Ö·û´®strµÄ³¤¶È¡£
mysql> select LENGTH('text');
        -> 4
mysql> select OCTET_LENGTH('text');
        -> 4

×¢Ò⣬¶ÔÓÚ¶à×Ö½Ú×Ö·û£¬ÆäCHAR_LENGTH()½ö¼ÆËãÒ»´Î¡£

LOCATE(substr,str)
¡¡
POSITION(substr IN str)
·µ»Ø×Ó´®substrÔÚ×Ö·û´®strµÚÒ»¸ö³öÏÖµÄλÖã¬Èç¹ûsubstr²»ÊÇÔÚstrÀïÃæ£¬·µ»Ø0.
mysql> select LOCATE('bar', 'foobarbar');
        -> 4
mysql> select LOCATE('xbar', 'foobar');
        -> 0
¸Ãº¯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£  
LOCATE(substr,str,pos)
·µ»Ø×Ó´®substrÔÚ×Ö·û´®strµÚÒ»¸ö³öÏÖµÄλÖ㬴ÓλÖÃpos¿ªÊ¼¡£Èç¹ûsubstr²»ÊÇÔÚstrÀïÃæ£¬·µ»Ø0¡£
mysql> select LOCATE('bar', 'foobarbar',5);
        -> 7

Õ⺯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

INSTR(str,substr)
·µ»Ø×Ó´®substrÔÚ×Ö·û´®strÖеĵÚÒ»¸ö³öÏÖµÄλÖá£ÕâÓëÓÐ2¸ö²ÎÊýÐÎʽµÄLOCATE()Ïàͬ£¬³ýÁ˲ÎÊý±»µßµ¹¡£
mysql> select INSTR('foobarbar', 'bar');
        -> 4
mysql> select INSTR('xbar', 'foobar');
        -> 0

Õ⺯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

LPAD(str,len,padstr)
·µ»Ø×Ö·û´®str£¬×óÃæÓÃ×Ö·û´®padstrÌî²¹Ö±µ½strÊÇlen¸ö×Ö·û³¤¡£
mysql> select LPAD('hi',4,'??');
        -> '??hi'
 
RPAD(str,len,padstr)
·µ»Ø×Ö·û´®str£¬ÓÒÃæÓÃ×Ö·û´®padstrÌî²¹Ö±µ½strÊÇlen¸ö×Ö·û³¤¡£  
mysql> select RPAD('hi',5,'?');
        -> 'hi???'
LEFT(str,len)
·µ»Ø×Ö·û´®strµÄ×î×óÃælen¸ö×Ö·û¡£
mysql> select LEFT('foobarbar', 5);
        -> 'fooba'

¸Ãº¯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

RIGHT(str,len)
·µ»Ø×Ö·û´®strµÄ×îÓÒÃælen¸ö×Ö·û¡£
mysql> select RIGHT('foobarbar', 4);
        -> 'rbar'

¸Ãº¯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

SUBSTRING(str,pos,len)
¡¡
SUBSTRING(str FROM pos FOR len)
¡¡
MID(str,pos,len)
´Ó×Ö·û´®str·µ»ØÒ»¸ölen¸ö×Ö·ûµÄ×Ó´®£¬´ÓλÖÃpos¿ªÊ¼¡£Ê¹ÓÃFROMµÄ±äÖÖÐÎʽÊÇANSI SQL92Óï·¨¡£
mysql> select SUBSTRING('Quadratically',5,6);
        -> 'ratica'

¸Ãº¯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

SUBSTRING(str,pos)
¡¡
SUBSTRING(str FROM pos)
´Ó×Ö·û´®strµÄÆðʼλÖÃpos·µ»ØÒ»¸ö×Ó´®¡£
mysql> select SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> select SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'

¸Ãº¯ÊýÊǶà×Ö½Ú¿É¿¿µÄ¡£

SUBSTRING_INDEX(str,delim,count)
·µ»Ø´Ó×Ö·û´®strµÄµÚcount¸ö³öÏֵķָô·ûdelimÖ®ºóµÄ×Ó´®¡£Èç¹ûcountÊÇÕýÊý£¬·µ»Ø×îºóµÄ·Ö¸ô·ûµ½×ó±ß(´Ó×ó±ßÊý) µÄËùÓÐ×Ö·û¡£Èç¹ûcountÊǸºÊý£¬·µ»Ø×îºóµÄ·Ö¸ô·ûµ½ÓұߵÄËùÓÐ×Ö·û(´ÓÓÒ±ßÊý)¡£
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£

LTRIM(str)
·µ»ØÉ¾³ýÁËÆäǰÖÿոñ×Ö·ûµÄ×Ö·û´®str¡£
mysql> select LTRIM('  barbar');
        -> 'barbar'
RTRIM(str)
·µ»ØÉ¾³ýÁËÆäÍϺó¿Õ¸ñ×Ö·ûµÄ×Ö·û´®str¡£
mysql> select RTRIM('barbar   ');
        -> 'barbar'
¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£  
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
·µ»Ø×Ö·û´®str£¬ÆäËùÓÐremstrǰ׺»òºó׺±»É¾³ýÁË¡£Èç¹ûûÓÐÐÞÊηûBOTH¡¢LEADING»òTRAILING¸ø³ö£¬BOTH±»¼Ù¶¨¡£Èç¹ûremstrû±»Ö¸¶¨£¬¿Õ¸ñ±»É¾³ý¡£
mysql> select TRIM('  bar   ');
        -> 'bar'
mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');
        -> 'barxxx'
mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');
        -> 'bar'
mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');
        -> 'barx'

¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£

SOUNDEX(str)
·µ»ØstrµÄÒ»¸öͬÒô×Ö·û´®¡£ÌýÆðÀ´¡°´óÖÂÏàͬ¡±µÄ2¸ö×Ö·û´®Ó¦¸ÃÓÐÏàͬµÄͬÒô×Ö·û´®¡£Ò»¸ö¡°±ê×¼¡±µÄͬÒô×Ö·û´®³¤ÊÇ4¸ö×Ö·û£¬µ«ÊÇSOUNDEX()º¯Êý·µ»ØÒ»¸öÈÎÒⳤµÄ×Ö·û´®¡£Äã¿ÉÒÔÔÚ½á¹ûÉÏʹÓÃSUBSTRING()µÃµ½Ò»¸ö¡°±ê×¼¡±µÄ ͬÒô´®¡£ËùÓзÇÊý×Ö×Öĸ×Ö·ûÔÚ¸ø¶¨µÄ×Ö·û´®Öб»ºöÂÔ¡£ËùÓÐÔÚA-ZÖ®ÍâµÄ×Ö·û¹ú¼Ê×Öĸ±»µ±×÷ÔªÒô¡£
mysql> select SOUNDEX('Hello');
        -> 'H400'
mysql> select SOUNDEX('Quadratically');
        -> 'Q36324'
 
SPACE(N)
·µ»ØÓÉN¸ö¿Õ¸ñ×Ö·û×é³ÉµÄÒ»¸ö×Ö·û´®¡£
mysql> select SPACE(6);
        -> '      '
 
REPLACE(str,from_str,to_str)
·µ»Ø×Ö·û´®str£¬Æä×Ö·û´®from_strµÄËùÓгöÏÖÓÉ×Ö·û´®to_str´úÌæ¡£
mysql> select REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£

REPEAT(str,count)
·µ»ØÓÉÖØ¸´countTimes´ÎµÄ×Ö·û´®str×é³ÉµÄÒ»¸ö×Ö·û´®¡£Èç¹ûcount <= 0£¬·µ»ØÒ»¸ö¿Õ×Ö·û´®¡£Èç¹ûstr»òcountÊÇNULL£¬·µ»ØNULL¡£
mysql> select REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'
 
REVERSE(str)
·µ»Øµßµ¹×Ö·û˳ÐòµÄ×Ö·û´®str¡£
mysql> select REVERSE('abc');
        -> 'cba'

¸Ãº¯Êý¶Ô¶à×Ö½Ú¿É¿¿µÄ¡£

INSERT(str,pos,len,newstr)
·µ»Ø×Ö·û´®str£¬ÔÚλÖÃposÆðʼµÄ×Ó´®ÇÒlen¸ö×Ö·û³¤µÃ×Ó´®ÓÉ×Ö·û´®newstr´úÌæ¡£
mysql> select INSERT('Quadratic', 3, 4, 'What');
        -> 'QuWhattic'

¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£

ELT(N,str1,str2,str3,...)
Èç¹ûN= 1£¬·µ»Østr1£¬Èç¹ûN= 2£¬·µ»Østr2£¬µÈµÈ¡£Èç¹ûNСÓÚ1»ò´óÓÚ²ÎÊý¸öÊý£¬·µ»ØNULL¡£ELT()ÊÇFIELD()·´ÔËËã¡£
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
        -> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
        -> 'foo'
FIELD(str,str1,str2,str3,...)
·µ»ØstrÔÚstr1, str2, str3, ...Çåµ¥µÄË÷Òý¡£Èç¹ûstrûÕÒµ½£¬·µ»Ø0¡£FIELD()ÊÇELT()·´ÔËËã¡£
mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 2
mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
        -> 0
FIND_IN_SET(str,strlist)
Èç¹û×Ö·û´®strÔÚÓÉN×Ó´®×é³ÉµÄ±ístrlistÖ®ÖУ¬·µ»ØÒ»¸ö1µ½NµÄÖµ¡£Ò»¸ö×Ö·û´®±íÊDZ»¡°,¡±·Ö¸ôµÄ×Ó´®×é³ÉµÄÒ»¸ö×Ö·û´®¡£Èç¹ûµÚÒ»¸ö²ÎÊýÊÇÒ»¸ö³£Êý×Ö·û´®²¢ÇÒµÚ¶þ¸ö²ÎÊýÊÇÒ»ÖÖÀàÐÍΪSETµÄÁУ¬FIND_IN_SET()º¯Êý±»ÓÅ»¯¶øÊ¹ÓÃλÔËË㣡Èç¹ûstr²»ÊÇÔÚstrlistÀïÃæ»òÈç¹ûstrlistÊÇ¿Õ×Ö·û´®£¬·µ»Ø0¡£Èç¹ûÈκÎÒ»¸ö²ÎÊýÊÇNULL£¬·µ»ØNULL¡£Èç¹ûµÚÒ»¸ö²ÎÊý°üº¬Ò»¸ö¡°,¡±£¬¸Ãº¯Êý½«¹¤×÷²»Õý³£¡£
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2
 
MAKE_SET(bits,str1,str2,...)
·µ»ØÒ»¸ö¼¯ºÏ (°üº¬ÓÉ¡°,¡±×Ö·û·Ö¸ôµÄ×Ó´®×é³ÉµÄÒ»¸ö×Ö·û´®)£¬ÓÉÏàÓ¦µÄλÔÚbits¼¯ºÏÖеĵÄ×Ö·û´®×é³É¡£str1¶ÔÓ¦ÓÚλ0£¬str2¶ÔӦλ1£¬µÈµÈ¡£ÔÚstr1, str2, ...ÖеÄNULL´®²»Ìí¼Óµ½½á¹ûÖС£
mysql> SELECT MAKE_SET(1,'a','b','c');
        -> 'a'
mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
        -> 'hello,world'
mysql> SELECT MAKE_SET(0,'a','b','c');
        -> ''
EXPORT_SET(bits,on,off,[separator,[number_of_bits]])
·µ»ØÒ»¸ö×Ö·û´®£¬ÔÚÕâÀï¶ÔÓÚÔÚ¡°bits¡±ÖÐÉ趨ÿһ룬ÄãµÃµ½Ò»¸ö¡°on¡±×Ö·û´®£¬²¢ÇÒ¶ÔÓÚÿ¸ö¸´Î»(reset)µÄ룬ÄãµÃµ½Ò»¸ö¡°off¡±×Ö·û´®¡£Ã¿¸ö×Ö·û´®Óá°separator¡±·Ö¸ô(ȱʡ¡°,¡±)£¬²¢ÇÒÖ»ÓС°bits¡±µÄ¡°number_of_bits¡± (ȱʡ64)λ±»Ê¹Óá£
mysql> select EXPORT_SET(5,'Y','N',',',4)
        -> Y,N,Y,N 
LCASE(str)
¡¡
LOWER(str)
·µ»Ø×Ö·û´®str£¬¸ù¾Ýµ±Ç°×Ö·û¼¯Ó³Éä(ȱʡÊÇISO-8859-1 Latin1)°ÑËùÓеÄ×Ö·û¸Ä±ä³ÉСд¡£¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£
mysql> select LCASE('QUADRATICALLY');
        -> 'quadratically'
 
UCASE(str)
¡¡
UPPER(str)
·µ»Ø×Ö·û´®str£¬¸ù¾Ýµ±Ç°×Ö·û¼¯Ó³Éä(ȱʡÊÇISO-8859-1 Latin1)°ÑËùÓеÄ×Ö·û¸Ä±ä³É´óд¡£¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£
mysql> select UCASE('Hej');
        -> 'HEJ'

¸Ãº¯Êý¶Ô¶à×Ö½ÚÊǿɿ¿µÄ¡£

LOAD_FILE(file_name)
¶ÁÈëÎļþ²¢ÇÒ×÷Ϊһ¸ö×Ö·û´®·µ»ØÎļþÄÚÈÝ¡£Îļþ±ØÐëÔÚ·þÎñÆ÷ÉÏ£¬Äã±ØÐëÖ¸¶¨µ½ÎļþµÄÍêÕû·¾¶Ãû£¬¶øÇÒÄã±ØÐëÓÐfileȨÏÞ¡£Îļþ±ØÐëËùÓÐÄÚÈݶ¼ÊǿɶÁµÄ²¢ÇÒСÓÚmax_allowed_packet¡£Èç¹ûÎļþ²»´æÔÚ»òÓÉÓÚÉÏÃæÔ­ÒòÖ®Ò»²»Äܱ»¶Á³ö£¬º¯Êý·µ»ØNULL¡£
mysql> UPDATE table_name
           SET blob_column=LOAD_FILE("/tmp/picture")
           WHERE id=1;

MySQL±ØÒªÊ±×Ô¶¯±ä»»Êý×ÖΪ×Ö·û´®£¬²¢ÇÒ·´¹ýÀ´Ò²Èç´Ë£º

mysql> SELECT 1+"1";
        -> 2
mysql> SELECT CONCAT(2,' test');
        -> '2 test'

Èç¹ûÄãÏëÒªÃ÷È·µØ±ä»»Ò»¸öÊý×Öµ½Ò»¸ö×Ö·û´®£¬°ÑËü×÷Ϊ²ÎÊý´«µÝµ½CONCAT()¡£

Èç¹û×Ö·û´®º¯ÊýÌṩһ¸ö¶þ½øÖÆ×Ö·û´®×÷Ϊ²ÎÊý£¬½á¹û×Ö·û´®Ò²ÊÇÒ»¸ö¶þ½øÖÆ×Ö·û´®¡£±»±ä»»µ½Ò»¸ö×Ö·û´®µÄÊý×Ö±»µ±×÷ÊÇÒ»¸ö¶þ½øÖÆ×Ö·û´®¡£Õâ½öÓ°Ïì±È½Ï¡£

7.4.11 ÈÕÆÚºÍʱ¼äº¯Êý

¶ÔÓÚÿ¸öÀàÐÍÓµÓеÄÖµ·¶Î§ÒÔ¼°²¢ÇÒÖ¸¶¨ÈÕÆÚºÎʱ¼äÖµµÄÓÐЧ¸ñʽµÄÃèÊö¼û7.3.6 ÈÕÆÚºÍʱ¼äÀàÐÍ¡£

ÕâÀïÊÇÒ»¸öʹÓÃÈÕÆÚº¯ÊýµÄÀý×Ó¡£ÏÂÃæµÄ²éѯѡÔñÁËËùÓмǼ£¬Æädate_colµÄÖµÊÇÔÚ×îºó30ÌìÒÔÄÚ£º

mysql> SELECT something FROM table
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
·µ»ØÈÕÆÚdateµÄÐÇÆÚË÷Òý(1=ÐÇÆÚÌ죬2=ÐÇÆÚÒ», ¡­¡­7=ÐÇÆÚÁù)¡£ÕâЩË÷ÒýÖµ¶ÔÓ¦ÓÚODBC±ê×¼¡£
mysql> select DAYOFWEEK('1998-02-03');
        -> 3
 
WEEKDAY(date)
·µ»ØdateµÄÐÇÆÚË÷Òý(0=ÐÇÆÚÒ»£¬1=ÐÇÆÚ¶þ, ¡­¡­6= ÐÇÆÚÌì)¡£
mysql> select WEEKDAY('1997-10-04 22:23:00');
        -> 5
mysql> select WEEKDAY('1997-11-05');
        -> 2
 
DAYOFMONTH(date)
·µ»ØdateµÄÔ·ÝÖÐÈÕÆÚ£¬ÔÚ1µ½31·¶Î§ÄÚ¡£
mysql> select DAYOFMONTH('1998-02-03');
        -> 3
DAYOFYEAR(date)
·µ»ØdateÔÚÒ»ÄêÖеÄÈÕÊý, ÔÚ1µ½366·¶Î§ÄÚ¡£
mysql> select DAYOFYEAR('1998-02-03');
        -> 34
MONTH(date)
·µ»ØdateµÄÔ·ݣ¬·¶Î§1µ½12¡£
mysql> select MONTH('1998-02-03');
        -> 2
 
DAYNAME(date)
·µ»ØdateµÄÐÇÆÚÃû×Ö¡£
mysql> select DAYNAME("1998-02-05");
        -> 'Thursday'
MONTHNAME(date)
·µ»ØdateµÄÔ·ÝÃû×Ö¡£
mysql> select MONTHNAME("1998-02-05");
        -> 'February'
 
QUARTER(date)
·µ»ØdateÒ»ÄêÖеļ¾¶È£¬·¶Î§1µ½4¡£
mysql> select QUARTER('98-04-01');
        -> 2
 
WEEK(date)
¡¡
WEEK(date,first)
¶ÔÓÚÐÇÆÚÌìÊÇÒ»ÖܵĵÚÒ»ÌìµÄµØ·½£¬ÓÐÒ»¸öµ¥¸ö²ÎÊý£¬·µ»ØdateµÄÖÜÊý£¬·¶Î§ÔÚ0µ½52¡£2¸ö²ÎÊýÐÎʽWEEK()ÔÊÐíÄãÖ¸¶¨ÐÇÆÚÊÇ·ñ¿ªÊ¼ÓÚÐÇÆÚÌì»òÐÇÆÚÒ»¡£Èç¹ûµÚ¶þ¸ö²ÎÊýÊÇ0£¬ÐÇÆÚ´ÓÐÇÆÚÌ쿪ʼ£¬Èç¹ûµÚ¶þ¸ö²ÎÊýÊÇ1£¬´ÓÐÇÆÚÒ»¿ªÊ¼¡£
mysql> select WEEK('1998-02-20');
        -> 7
mysql> select WEEK('1998-02-20',0);
        -> 7
mysql> select WEEK('1998-02-20',1);
        -> 8
YEAR(date)
·µ»ØdateµÄÄê·Ý£¬·¶Î§ÔÚ1000µ½9999¡£
mysql> select YEAR('98-02-03');
        -> 1998
HOUR(time)
·µ»ØtimeµÄСʱ£¬·¶Î§ÊÇ0µ½23¡£
mysql> select HOUR('10:05:03');
        -> 10
MINUTE(time)
·µ»ØtimeµÄ·ÖÖÓ£¬·¶Î§ÊÇ0µ½59¡£
mysql> select MINUTE('98-02-03 10:05:03');
        -> 5
SECOND(time)
»ØÀ´timeµÄÃëÊý£¬·¶Î§ÊÇ0µ½59¡£
mysql> select SECOND('10:05:03');
        -> 3
PERIOD_ADD(P,N)
Ôö¼ÓN¸öÔµ½½×¶ÎP£¨ÒÔ¸ñʽYYMM»òYYYYMM)¡£ÒÔ¸ñʽYYYYMM·µ»ØÖµ¡£×¢Òâ½×¶Î²ÎÊýP²»ÊÇÈÕÆÚÖµ¡£
mysql> select PERIOD_ADD(9801,2);
        -> 199803
PERIOD_DIFF(P1,P2)
·µ»ØÔÚʱÆÚP1ºÍP2Ö®¼äÔÂÊý£¬P1ºÍP2Ó¦¸ÃÒÔ¸ñʽYYMM»òYYYYMM¡£×¢Ò⣬ʱÆÚ²ÎÊýP1ºÍP2²»ÊÇÈÕÆÚÖµ¡£
mysql> select PERIOD_DIFF(9802,199703);
        -> 11
    
DATE_ADD(date,INTERVAL expr type)
¡¡
DATE_SUB(date,INTERVAL expr type)
¡¡
ADDDATE(date,INTERVAL expr type)
¡¡
SUBDATE(date,INTERVAL expr type)
ÕâЩ¹¦ÄÜÖ´ÐÐÈÕÆÚÔËËã¡£¶ÔÓÚMySQL 3.22£¬ËûÃÇÊÇеġ£ADDDATE()ºÍSUBDATE()ÊÇDATE_ADD()ºÍDATE_SUB()µÄͬÒå´Ê¡£ÔÚMySQL 3.23ÖУ¬Äã¿ÉÒÔʹÓÃ+ºÍ-¶ø²»ÊÇDATE_ADD()ºÍDATE_SUB()¡££¨¼ûÀý×Ó£©dateÊÇÒ»¸öÖ¸¶¨¿ªÊ¼ÈÕÆÚµÄDATETIME»òDATEÖµ£¬exprÊÇÖ¸¶¨¼Óµ½¿ªÊ¼ÈÕÆÚ»ò´Ó¿ªÊ¼ÈÕÆÚ¼õÈ¥µÄ¼ä¸ôÖµÒ»¸ö±í´ïʽ£¬exprÊÇÒ»¸ö×Ö·û´®£»Ëü¿ÉÒÔÒÔÒ»¸ö¡°-¡±¿ªÊ¼±íʾ¸º¼ä¸ô¡£typeÊÇÒ»¸ö¹Ø¼ü´Ê£¬Ö¸Ã÷±í´ïʽӦ¸ÃÈçºÎ±»½âÊÍ¡£EXTRACT(type FROM date)º¯Êý´ÓÈÕÆÚÖзµ»Ø¡°type¡±¼ä¸ô¡£Ï±íÏÔʾÁËtypeºÍexpr²ÎÊýÔõÑù±»¹ØÁª£º
typeÖµ º¬Òå ÆÚÍûµÄexpr¸ñʽ
SECOND Ãë SECONDS
MINUTE ·ÖÖÓ MINUTES
HOUR ʱ¼ä HOURS
DAY Ìì DAYS
MONTH ÔÂ MONTHS
YEAR Äê YEARS
MINUTE_SECOND ·ÖÖÓºÍÃë "MINUTES:SECONDS"
HOUR_MINUTE СʱºÍ·ÖÖÓ "HOURS:MINUTES"
DAY_HOUR ÌìºÍСʱ "DAYS HOURS"
YEAR_MONTH ÄêºÍÔ "YEARS-MONTHS"
HOUR_SECOND Сʱ, ·ÖÖÓ£¬ "HOURS:MINUTES:SECONDS"
DAY_MINUTE Ìì, Сʱ, ·ÖÖÓ "DAYS HOURS:MINUTES"
DAY_SECOND Ìì, Сʱ, ·ÖÖÓ, Ãë "DAYS HOURS:MINUTES:SECONDS"

MySQLÔÚexpr¸ñʽÖÐÔÊÐíÈκαêµã·Ö¸ô·û¡£±íʾÏÔʾµÄÊǽ¨ÒéµÄ·Ö¸ô·û¡£Èç¹ûdate²ÎÊýÊÇÒ»¸öDATEÖµ²¢ÇÒÄãµÄ¼ÆËã½ö½ö°üº¬YEAR¡¢MONTHºÍDAY²¿·Ö(¼´£¬Ã»ÓÐʱ¼ä²¿·Ö)£¬½á¹ûÊÇÒ»¸öDATEÖµ¡£·ñÔò½á¹ûÊÇÒ»¸öDATETIMEÖµ¡£

mysql> SELECT "1997-12-31 23:59:59" + INTERVAL 1 SECOND;
        -> 1998-01-01 00:00:00
mysql> SELECT INTERVAL 1 DAY + "1997-12-31";
        -> 1998-01-01
mysql> SELECT "1998-01-01" - INTERVAL 1 SECOND;
       -> 1997-12-31 23:59:59 
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
                       INTERVAL 1 SECOND);
        -> 1998-01-01 00:00:00
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
                       INTERVAL 1 DAY);
        -> 1998-01-01 23:59:59
mysql> SELECT DATE_ADD("1997-12-31 23:59:59",
                       INTERVAL "1:1" MINUTE_SECOND);
        -> 1998-01-01 00:01:00
mysql> SELECT DATE_SUB("1998-01-01 00:00:00",
                       INTERVAL "1 1:1:1" DAY_SECOND);
        -> 1997-12-30 22:58:59
mysql> SELECT DATE_ADD("1998-01-01 00:00:00",
                       INTERVAL "-1 10" DAY_HOUR);
        -> 1997-12-30 14:00:00
mysql> SELECT DATE_SUB("1998-01-02", INTERVAL 31 DAY);
        -> 1997-12-02
mysql> SELECT EXTRACT(YEAR FROM "1999-07-02");
       -> 1999
mysql> SELECT EXTRACT(YEAR_MONTH FROM "1999-07-02 01:02:03");
       -> 199907
mysql> SELECT EXTRACT(DAY_MINUTE FROM "1999-07-02 01:02:03");
       -> 20102

Èç¹ûÄãÖ¸¶¨Ì«¶ÌµÄ¼ä¸ôÖµ(²»°üÀ¨type¹Ø¼ü´ÊÆÚÍûµÄ¼ä¸ô²¿·Ö)£¬MySQL¼ÙÉèÄãÊ¡µôÁ˼ä¸ôÖµµÄ×î×óÃæ²¿·Ö¡£ÀýÈ磬Èç¹ûÄãÖ¸¶¨Ò»¸ötypeÊÇDAY_SECOND£¬Öµexpr±»Ï£ÍûÓÐÌ졢Сʱ¡¢·ÖÖÓºÍÃ벿·Ö¡£Èç¹ûÄãÏó"1:10"ÕâÑùÖ¸¶¨Öµ£¬MySQL¼ÙÉèÈÕ×ÓºÍСʱ²¿·ÖÊǶªÊ§µÄ²¢ÇÒÖµ´ú±í·ÖÖÓºÍÃë¡£»»¾ä»°Ëµ£¬"1:10" DAY_SECONDÒÔËüµÈ¼ÛÓÚ"1:10" MINUTE_SECONDµÄ·½Ê½½âÊÍ£¬Õâ¶ÔÄÇMySQL½âÊÍTIMEÖµ±íʾ¾­¹ýµÄʱ¼ä¶ø·Ç×÷ΪһÌìµÄʱ¼äµÄ·½Ê½ÓжþÒåÐÔ¡£Èç¹ûÄãʹÓÃȷʵ²»ÕýÈ·µÄÈÕÆÚ£¬½á¹ûÊÇNULL¡£Èç¹ûÄãÔö¼ÓMONTH¡¢YEAR_MONTH»òYEAR²¢ÇÒ½á¹ûÈÕÆÚ´óÓÚÐÂÔ·ݵÄ×î´óÖµÌìÊý£¬ÈÕ×ÓÔÚÐÂÔÂÓÃ×î´óµÄÌìµ÷Õû¡£

mysql> select DATE_ADD('1998-01-30', Interval 1 month);
        -> 1998-02-28
×¢Ò⣬´ÓÇ°ÃæµÄÀý×ÓÖдÊINTERVALºÍtype¹Ø¼ü´Ê²»ÊÇÇø·Ö´óСдµÄ¡£  
TO_DAYS(date)
¸ø³öÒ»¸öÈÕÆÚdate£¬·µ»ØÒ»¸öÌìÊý(´Ó0ÄêµÄÌìÊý)¡£
mysql> select TO_DAYS(950501);
        -> 728779
mysql> select TO_DAYS('1997-10-07');
        -> 729669

TO_DAYS()²»´òËãÓÃÓÚʹÓøñÁиßÀïÀú(1582)³öÏÖǰµÄÖµ¡£

FROM_DAYS(N)
¸ø³öÒ»¸öÌìÊýN£¬·µ»ØÒ»¸öDATEÖµ¡£
mysql> select FROM_DAYS(729669);
        -> '1997-10-07'

TO_DAYS()²»´òËãÓÃÓÚʹÓøñÁиßÀïÀú(1582)³öÏÖǰµÄÖµ¡£

DATE_FORMAT(date,format)
¸ù¾Ýformat×Ö·û´®¸ñʽ»¯dateÖµ¡£ÏÂÁÐÐÞÊηû¿ÉÒÔ±»ÓÃÔÚformat×Ö·û´®ÖУº
%M ÔÂÃû×Ö(January¡­¡­December)
%W ÐÇÆÚÃû×Ö(Sunday¡­¡­Saturday)
%D ÓÐÓ¢Óïǰ׺µÄÔ·ݵÄÈÕÆÚ(1st, 2nd, 3rd, µÈµÈ¡££©
%Y Äê, Êý×Ö, 4 λ
%y Äê, Êý×Ö, 2 λ
%a ËõдµÄÐÇÆÚÃû×Ö(Sun¡­¡­Sat)
%d Ô·ÝÖеÄÌìÊý, Êý×Ö(00¡­¡­31)
%e Ô·ÝÖеÄÌìÊý, Êý×Ö(0¡­¡­31)
%m ÔÂ, Êý×Ö(01¡­¡­12)
%c ÔÂ, Êý×Ö(1¡­¡­12)
%b ËõдµÄÔ·ÝÃû×Ö(Jan¡­¡­Dec)
%j Ò»ÄêÖеÄÌìÊý(001¡­¡­366)
%H Сʱ(00¡­¡­23)
%k Сʱ(0¡­¡­23)
%h Сʱ(01¡­¡­12)
%I Сʱ(01¡­¡­12)
%l Сʱ(1¡­¡­12)
%i ·ÖÖÓ, Êý×Ö(00¡­¡­59)
%r ʱ¼ä,12 Сʱ(hh:mm:ss [AP]M)
%T ʱ¼ä,24 Сʱ(hh:mm:ss)
%S Ãë(00¡­¡­59)
%s Ãë(00¡­¡­59)
%p AM»òPM
%w Ò»¸öÐÇÆÚÖеÄÌìÊý(0=Sunday ¡­¡­6=Saturday £©
%U ÐÇÆÚ(0¡­¡­52), ÕâÀïÐÇÆÚÌìÊÇÐÇÆÚµÄµÚÒ»Ìì
%u ÐÇÆÚ(0¡­¡­52), ÕâÀïÐÇÆÚÒ»ÊÇÐÇÆÚµÄµÚÒ»Ìì
%% Ò»¸öÎÄ×Ö¡°%¡±¡£

ËùÓÐµÄÆäËû×Ö·û²»×ö½âÊͱ»¸´ÖƵ½½á¹ûÖС£

mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
        -> 'Saturday October 1997'
mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
        -> '22:23:00'
mysql> select DATE_FORMAT('1997-10-04 22:23:00',
                          '%D %y %a %d %m %b %j');
        -> '4th 97 Sat 04 10 Oct 277'
mysql> select DATE_FORMAT('1997-10-04 22:23:00',
                          '%H %k %I %r %T %S %w');
        -> '22 22 10 10:23:00 PM 22:23:00 00 6'

MySQL3.23ÖУ¬ÔÚ¸ñʽÐÞÊηû×Ö·ûǰÐèÒª%¡£ÔÚMySQL¸üÔçµÄ°æ±¾ÖУ¬%ÊÇ¿ÉÑ¡µÄ¡£

TIME_FORMAT(time,format)
ÕâÏóÉÏÃæµÄDATE_FORMAT()º¯ÊýÒ»ÑùʹÓ㬵«ÊÇformat×Ö·û´®Ö»Äܰüº¬´¦ÀíСʱ¡¢·ÖÖÓºÍÃëµÄÄÇЩ¸ñʽÐÞÊηû¡£ÆäËûÐÞÊηû²úÉúÒ»¸öNULLÖµ»ò0¡£
CURDATE()
¡¡
CURRENT_DATE
ÒÔ'YYYY-MM-DD'»òYYYYMMDD¸ñʽ·µ»Ø½ñÌìÈÕÆÚÖµ£¬È¡¾öÓÚº¯ÊýÊÇÔÚÒ»¸ö×Ö·û´®»¹ÊÇÊý×ÖÉÏÏÂÎı»Ê¹Óá£
mysql> select CURDATE();
        -> '1997-12-15'
mysql> select CURDATE() + 0;
        -> 19971215
CURTIME()
¡¡
CURRENT_TIME
ÒÔ'HH:MM:SS'»òHHMMSS¸ñʽ·µ»Øµ±Ç°Ê±¼äÖµ£¬È¡¾öÓÚº¯ÊýÊÇÔÚÒ»¸ö×Ö·û´®»¹ÊÇÔÚÊý×ÖµÄÉÏÏÂÎı»Ê¹Óá£
mysql> select CURTIME();
        -> '23:50:26'
mysql> select CURTIME() + 0;
        -> 235026
NOW()
¡¡
SYSDATE()
¡¡
CURRENT_TIMESTAMP
ÒÔ'YYYY-MM-DD HH:MM:SS'»òYYYYMMDDHHMMSS¸ñʽ·µ»Øµ±Ç°µÄÈÕÆÚºÍʱ¼ä£¬È¡¾öÓÚº¯ÊýÊÇÔÚÒ»¸ö×Ö·û´®»¹ÊÇÔÚÊý×ÖµÄÉÏÏÂÎı»Ê¹Óá£
mysql> select NOW();
        -> '1997-12-15 23:50:26'
mysql> select NOW() + 0;
        -> 19971215235026
UNIX_TIMESTAMP()
¡¡
UNIX_TIMESTAMP(date)
Èç¹ûûÓвÎÊýµ÷Ó㬷µ»ØÒ»¸öUnixʱ¼ä´Á¼Ç(´Ó'1970-01-01 00:00:00'GMT¿ªÊ¼µÄÃëÊý)¡£Èç¹ûUNIX_TIMESTAMP()ÓÃÒ»¸ödate²ÎÊý±»µ÷Óã¬Ëü·µ»Ø´Ó'1970-01-01 00:00:00' GMT¿ªÊ¼µÄÃëÊýÖµ¡£date¿ÉÒÔÊÇÒ»¸öDATE×Ö·û´®¡¢Ò»¸öDATETIME×Ö·û´®¡¢Ò»¸öTIMESTAMP»òÒÔYYMMDD»òYYYYMMDD¸ñʽµÄ±¾µØÊ±¼äµÄÒ»¸öÊý×Ö¡£
mysql> select UNIX_TIMESTAMP();
        -> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
        -> 875996580

µ±UNIX_TIMESTAMP±»ÓÃÓÚÒ»¸öTIMESTAMPÁУ¬º¯Êý½«Ö±½Ó½ÓÊÜÖµ£¬Ã»ÓÐÒþº¬µÄ¡°string-to-unix-timestamp¡±±ä»»¡£

FROM_UNIXTIME(unix_timestamp)
ÒÔ'YYYY-MM-DD HH:MM:SS'»òYYYYMMDDHHMMSS¸ñʽ·µ»Øunix_timestamp²ÎÊýËù±íʾµÄÖµ£¬È¡¾öÓÚº¯ÊýÊÇÔÚÒ»¸ö×Ö·û´®»¹ÊÇ»òÊý×ÖÉÏÏÂÎÄÖб»Ê¹Óá£
mysql> select FROM_UNIXTIME(875996580);
        -> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580) + 0;
        -> 19971004222300
FROM_UNIXTIME(unix_timestamp,format)
·µ»Ø±íʾ Unix ʱ¼ä±ê¼ÇµÄÒ»¸ö×Ö·û´®£¬¸ù¾Ýformat×Ö·û´®¸ñʽ»¯¡£format¿ÉÒÔ°üº¬ÓëDATE_FORMAT()º¯ÊýÁгöµÄÌõĿͬÑùµÄÐÞÊηû¡£
mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
                            '%Y %D %M %h:%i:%s %x');
        -> '1997 23rd December 03:43:30 x'
SEC_TO_TIME(seconds)
·µ»Øseconds²ÎÊý£¬±ä»»³ÉСʱ¡¢·ÖÖÓºÍÃ룬ֵÒÔ'HH:MM:SS'»òHHMMSS¸ñʽ»¯£¬È¡¾öÓÚº¯ÊýÊÇÔÚÒ»¸ö×Ö·û´®»¹ÊÇÔÚÊý×ÖÉÏÏÂÎÄÖб»Ê¹Óá£
mysql> select SEC_TO_TIME(2378);
        -> '00:39:38'
mysql> select SEC_TO_TIME(2378) + 0;
        -> 3938
TIME_TO_SEC(time)
·µ»Øtime²ÎÊý£¬×ª»»³ÉÃë¡£
mysql> select TIME_TO_SEC('22:23:00');
        -> 80580
mysql> select TIME_TO_SEC('00:39:38');
        -> 2378

7.4.12 ÆäËûº¯Êý

DATABASE()
·µ»Øµ±Ç°µÄÊý¾Ý¿âÃû×Ö¡£
mysql> select DATABASE();
        -> 'test'

Èç¹ûûÓе±Ç°µÄÊý¾Ý¿â£¬DATABASE()·µ»Ø¿Õ×Ö·û´®¡£

USER()
¡¡
SYSTEM_USER()
¡¡
SESSION_USER()
·µ»Øµ±Ç°MySQLÓû§Ãû¡£
mysql> select USER();
        -> 'davida@localhost'

ÔÚMySQL 3.22.11»òÒÔºó°æ±¾ÖУ¬Õâ°üÀ¨Óû§ÃûºÍ¿Í»§Ö÷»úÃû¡£Äã¿ÉÒÔÏóÕâÑùÖ»ÌáÈ¡Óû§Ãû²¿·Ö(ÖµÊÇ·ñ°üÀ¨Ö÷»úÃû²¿·Ö¾ù¿É¹¤×÷)£º

mysql> select substring_index(USER(),"@",1);
        -> 'davida'
PASSWORD(str)
´Ó´¿Îı¾¿ÚÁîstr¼ÆËãÒ»¸ö¿ÚÁî×Ö·û´®¡£¸Ãº¯Êý±»ÓÃÓÚΪÁËÔÚuserÊÚȨ±íµÄPasswordÁÐÖд洢¿ÚÁî¶ø¼ÓÃÜMySQL¿ÚÁî¡£
mysql> select PASSWORD('badpwd');
        -> '7f84554057dd964b'

PASSWORD()¼ÓÃÜÊÇ·Ç¿ÉÄæµÄ¡£PASSWORD()²»ÒÔÓëUnix¿ÚÁî¼ÓÃܵÄÏàͬµÄ·½·¨Ö´ÐпÚÁî¼ÓÃÜ¡£Äã²»Ó¦¸Ã¼Ù¶¨Èç¹ûÄãµÄUnix ¿ÚÁîºÍÄãµÄMySQL¿ÚÁîÊÇÒ»ÑùµÄ£¬PASSWORD()½«µ¼ÖÂÓëÔÚUnix¿ÚÁîÎļþ´æ´¢µÄÏàͬµÄ¼ÓÃÜÖµ¡£¼ûENCRYPT()¡£

ENCRYPT(str[,salt])
ʹÓÃUnix crypt()ϵͳµ÷ÓüÓÃÜstr¡£salt²ÎÊýÓ¦¸ÃÊÇÒ»¸öÓÐ2¸ö×Ö·ûµÄ×Ö·û´®¡££¨MySQL 3.22.16ÖУ¬salt¿ÉÒÔ³¤ÓÚ2¸ö×Ö·û¡££©
mysql> select ENCRYPT("hello");
        -> 'VxuFAJXVARROc'

Èç¹ûcrypt()ÔÚÄãµÄϵͳÉϲ»¿ÉÓã¬ENCRYPT()×ÜÊÇ·µ»ØNULL¡£ENCRYPT()Ö»±£ÁôstrÆðʼ8¸ö×Ö·û¶øºöÂÔËùÓÐÆäËû£¬ÖÁÉÙÔÚijЩϵͳÉÏÊÇÕâÑù¡£Õ⽫ÓɵײãµÄcrypt()ϵͳµ÷ÓõÄÐÐΪ¾ö¶¨¡£

ENCODE(str,pass_str)
ʹÓÃpass_str×÷Ϊ¿ÚÁî¼ÓÃÜstr¡£ÎªÁ˽âÃܽá¹û£¬Ê¹ÓÃDECODE()¡£½á¹ûÊÇÒ»¸ö¶þ½øÖÆ×Ö·û´®£¬Èç¹ûÄãÏëÒªÔÚÁÐÖб£´æËü£¬Ê¹ÓÃÒ»¸öBLOBÁÐÀàÐÍ¡£
DECODE(crypt_str,pass_str)
ʹÓÃpass_str×÷Ϊ¿ÚÁî½âÃܼÓÃܵÄ×Ö·û´®crypt_str¡£crypt_strÓ¦¸ÃÊÇÒ»¸öÓÉENCODE()·µ»ØµÄ×Ö·û´®¡£
MD5(string)
¶Ô×Ö·û´®¼ÆËãMD5УÑéºÍ¡£Öµ×÷Ϊһ¸ö32³¤µÄÊ®Áù½øÖÆÊý×Ö±»·µ»Ø¿ÉÒÔ£¬ÀýÈçÓÃ×÷¹þÏ£(hash)¼ü¡£
mysql> select MD5("testing")
        -> 'ae2b1fca515949e5d54fb22b8ed95575'

ÕâÊÇÒ»¸ö¡°RSAÊý¾Ý°²È«¹«Ë¾µÄMD5ÏûÏ¢ÕªÒªËã·¨¡±¡£

LAST_INSERT_ID([expr])
·µ»Ø±»²åÈëÒ»¸öAUTO_INCREMENTÁеÄ×îºóÒ»¸ö×Ô¶¯²úÉúµÄÖµ¡£¼û20.4.29 mysql_insert_id()¡£
mysql> select LAST_INSERT_ID();
        -> 195

²úÉúµÄ×îºóIDÒÔÿ¸öÁ¬½ÓΪ»ù´¡ÔÚ·þÎñÆ÷±»Î¬»¤£¬Ëü²»»á±»ÆäËû¿Í»§¸Ä±