mysql-logo.gif (3082 bytes)MySQL¤¤¤å°Ñ¦Ò¤â¥U

ĶªÌ¡G®Ë¤l (clyan@sohu.com¡^      ¥D­¶¡Ghttp://linuxdb.yeah.net

ĶªÌ¡G®Ë¤l (clyan@sohu.com¡^
GB ½X¥D­¶¡Ghttp://linuxdb.yeah.net

Big5 Âà½XªÌ¡Gstatue (statue@bbs.yzu.edu.tw¡^
µü·JÂà´«¡G´^ªZ¿³ (wilson@mailbox.com.tw)
Big5 ½X¥D­¶¡G http://cnpa.yzu.edu.tw/~cfc/docs/mysqldoc_big5/manual_toc.html
Big5 ½X¤À¯¸¡G http://php.wilson.gs/mysqldoc/big5/manual_toc.html


²Ä¤@³¹, «e¤@³¹, ¤U¤@³¹, ³Ì«á¤@³¹¡A¥Ø¿ý.


7 MySQL»y¨¥°Ñ¦Ò

7.1 ¤å¦r¡G«ç»ò¼g¦r²Å¦ê©M¼Æ¦r

7.1.1 ¦r²Å¦ê

¤@­Ó¦r²Å¦ê¬O¤@­Ó¦r²Å§Ç¦C¡A¥Ñ³æ¤Þ¸¹(¡§'¡¨)©ÎÂù¤Þ¸¹(¡§"¡¨)¦r²Å(«áªÌ¥u¦³§A¤£¦bANSI¼Ò¦¡¹B¦æ)¥]³ò¡C¨Ò¦p¡G

'a string'
"another string"

¦b¦r²Å¦ê¤º¡A¬Y­Ó¶¶§Ç¦³¯S®íªº·N¸q¡C³o¨Ç¶¶§Çªº¨C¤@­Ó¥H¤@±ø¤Ï±×½u(¡§\¡¨)¶}©l¡AºÙ¬°Âà¸q¦r²Å¡CMySQLÃѧO¤U¦CÂà¸q¦r²Å¡G

\0
¤@­ÓASCII 0 (NUL)¦r²Å¡C
\n
¤@­Ó·s¦æ²Å¡C
\t
¤@­Ó©w¦ì²Å¡C
\r
¤@­Ó¦^¨®²Å¡C
\b
¤@­Ó°h®æ²Å¡C
\'
¤@­Ó³æ¤Þ¸¹(¡§'¡¨)²Å¡C
\"
¤@­ÓÂù¤Þ¸¹(¡§"¡¨)²Å¡C
\\
¤@­Ó¤Ï±×½u(¡§\¡¨)²Å¡C
\%
¤@­Ó¡§%¡¨²Å¡C¥¦¥Î©ó¦b¥¿¤å¤¤·j¯Á¡§%¡¨ªº¤å¦r¹ê¨Ò¡A§_«h³o¸Ì¡§%¡¨±N¸ÑÄÀ¬°¤@­Ó³q°t²Å¡C
\_
¤@­Ó¡§_¡¨²Å¡C¥¦¥Î©ó¦b¥¿¤å¤¤·j¯Á¡§_¡¨ªº¤å¦r¹ê¨Ò¡A§_«h³o¸Ì¡§_¡¨±N¸ÑÄÀ¬°¤@­Ó³q°t²Å¡C

ª`·N¡A¦pªG§A¦b¬Y¨Ç¥¿¤åÀô¹Ò¤¤¨Ï¥Î¡§\%¡¨©Î¡§\%_¡¨¡A³o¨Ç±Nªð¦^¦r²Å¦ê¡§\%¡¨©M¡§\_¡¨¦Ó¤£¬O¡§%¡¨©M¡§_¡¨¡C

¦³´XºØ¤èªk¦b¤@­Ó¦r²Å¦ê¤º¥]¬A¤Þ¸¹¡G

¤U­±Åã¥ÜªºSELECTºt¥Ü¤Þ¸¹©MÂà¸q¦p¦ó¤u§@¡G

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 |
+--------------------+
 

¦pªG§A·Q­n§â¤G¶i¨î¼Æ¾Ú´¡¤J¨ì¤@­ÓBLOB¦C¡A¤U¦C¦r²Å¥²¶·¥ÑÂà¸q§Ç¦Cªí¥Ü¡G

NUL
ASCII 0¡C§AÀ³¸Ó¥Î'\0'¡]¤@­Ó¤Ï±×½u©M¤@­ÓASCII '0'¡^ªí¥Ü¥¦¡C
\
ASCII 92¡A¤Ï±×½u¡C¥Î'\\'ªí¥Ü¡C
'
ASCII 39¡A³æ¤Þ¸¹¡C¥Î¡§\'¡¨ªí¥Ü¡C
"
ASCII 34¡AÂù¤Þ¸¹¡C¥Î¡§\"¡¨ªí¥Ü¡C

¦pªG§A¼gC¥N½X¡A§A¥i¥H¨Ï¥ÎC API¨ç¼Æmysql_escape_string()¨Ó¬°INSERT»y¥yÂà¸q¦r²Å¡C¨£20.3 C API ¨ç¼Æ·§­z¡C¦b Perl¤¤¡A§A¥i¥H¨Ï¥ÎDBI¥]¤¤ªºquote¤èªkÅÜ´«¯S®íªº¦r²Å¨ì¥¿½TªºÂà¸q§Ç¦C¡C¨£20.5.2 DBI¤¶­±¡C

§AÀ³¸Ó¦b¥ô¦ó¥i¯à¥]§t¤W­z¥ô¦ó¯S®í¦r²Åªº¦r²Å¦ê¤W¨Ï¥ÎÂà¸q¨ç¼Æ¡I

7.1.2 ¼Æ¦r

¾ã¼Æªí¥Ü¬°¤@­Ó¼Æ¦r¶¶§Ç¡C¯BÂI¼Æ¨Ï¥Î¡§.¡¨§@¬°¤@­Ó¤Q¶i¨î¤À¹j²Å¡C³o¨âºØÃþ«¬ªº¼Æ¦r¥i¥H«e¸m¡§-¡¨ªí©ú¤@­Ó­t­È¡C

¦³®Ä¾ã¼Æªº¨Ò¤l¡G

1221
0
-32

¦³®Ä¯BÂI¼Æªº¨Ò¤l¡G

294.42
-32032.6809e+10
148.00

¤@­Ó¾ã¼Æ¥i¥H¦b¯BÂI¤W¤U¤å¨Ï¥Î¡Q¥¦¸ÑÄÀ¬°µ¥­Èªº¯BÂI¼Æ¡C

7.1.3 ¤Q¤»¶i¨î­È

MySQL¤ä´©¤Q¤»¶i¨î­È¡C¦b¼Æ¦r¤W¤U¤å¡A¥¦­Ìªí²{Ãþ¦ü©ó¤@­Ó¾ã¼Æ(64¦ìºë«×)¡C¦b¦r²Å¦ê¤W¤U¤å¡A¥¦­Ìªí²{Ãþ¦ü©ó¤@­Ó¤G¶i¨î¦r²Å¦ê¡A³o¸Ì¨C¤@¹ï¤Q¤»¶i¨î¼Æ¦r³QÅÜ´«¬°¤@­Ó¦r²Å¡C

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

¤Q¤»¶i¨î¦r²Å¦ê¸g±`³QODBC¨Ï¥Î¡Aµ¹¥XBLOB¦Cªº­È¡C

7.1.4 NULL­È

NULL­È·N¨ýµÛ¡§µL¼Æ¾Ú¡¨¨Ã¥B¤£¦P©ó¨Ò¦p¼Æ¦rÃþ«¬ªº0¬°©Î¦r²Å¦êÃþ«¬ªºªÅ¦r²Å¦ê¡C¨£18.15 NULL­È°ÝÃD¡C

·í¨Ï¥Î¤å¥»¤å¥ó¾É¤J©Î¾É¥X®æ¦¡(LOAD DATA INFILE, SELECT ... INTO OUTFILE)®É¡ANULL¥i¥H¥Î\Nªí¥Ü¡C¨£7.16 LOAD DATA INFILE¥yªk¡C

7.1.5 ¸ê®Æ®w¡Bªí¡B¯Á¤Þ¡B¦C©M§O¦Wªº©R¦W

¸ê®Æ®w¡Bªí¡B¯Á¤Þ¡B¦C©M§O¦Wªº¦W¦r³£¿í¦uMySQL¦P¼Ëªº³W«h:

ª`·N¡A±qMySQL3.23.6¶}©l³W«h§ïÅܤF¡A¦¹®É§Ú­Ì¤Þ¤J¤F¥Î'¤Þ¥Îªº¼ÐÃѲÅ(¸ê®Æ®w¡Bªí©M¦C©R¦W)¡]¦pªG§A¥HANSI¼Ò¦¡¹B¦æ¡A"¤]±N¥Î©ó¤Þ¥Î¼ÐÃѲš^¡C

¼ÐÃѲŠ³Ì¤jªø«× ¤¹³\ªº¦r²Å
¸ê®Æ®w 64 ¦b¤@­Ó¥Ø¿ý¦W¤¹³\ªº¥ô¦ó¦r²Å¡A°£¤F/.
ªí 64 ¦b¤å¥ó¦W¤¤¤¹³\ªº¥ô¦ó¦r²Å¡A°£¤F/©Î.
¦C 64 ©Ò¦³¦r²Å
§O¦W 255 ©Ò¦³¦r²Å

ª`·N¡A°£¤F¥H¤W¡A§A¦b¤@­Ó¼ÐÃѲŤ¤¤£¯à¦³ASCII(0)©ÎASCII(255)¡C

ª`·N¡A¦pªG¼ÐÃѲŬO¤@­Ó­­¨îµü©Î¥]§t¯S®í¦r²Å¡A·í§A¨Ï¥Î¥¦®É¡A§A¥²¶·Á`¬O¥Î`¤Þ¥Î¥¦¡G

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

¦b MySQLªº¥ý«eª©¥»¡A©R¦W³W«h¦p¤U¡G

«ØÄ³§A¤£¨Ï¥Î¹³1e³o¼Ëªº¦W¦r¡A¦]¬°¤@­Óªí¹F¦¡¦p1e+1¬O¤G¸q©Êªº¡C¥¦¥i¥H¸ÑÄÀ¬°ªí¹F¦¡1e + 1©Î¼Æ¦r1e+1¡C

¦bMySQL¤¤¡A§A¯à¨Ï¥Î¤U¦Cªí®æªº¥ô¦ó¤@ºØ¤Þ¥Î¦C¡G

¦C¤Þ¥Î §t¸q
col_name ¨Ó¦Û©ó¥ô·Nªíªº¦Ccol_name¡A¥Î©ó¥]§t¸Óªíªº¤@­Ó¦Cªº¬d¸ß¤¤
tbl_name.col_name ¨Ó¦Û·í«eªº¸ê®Æ®wªºªítbl_nameªº¦Ccol_name
db_name.tbl_name.col_name ¦æ¦Ccol_name±qªí®ætbl_name¸ê®Æ®wdb_name¡C³o­Ó§Î¦¡¦bMySQL3.22©Î¥H«áª©¥»¥i¥Î¡C
`column_name` ¬O¤@­ÓÃöÁäµü©Î¥]§t¯S®í¦r²Åªº¦C¡C

¦b¤@±ø»y¥yªº¦C¤Þ¥Î¤¤¡A§A¤£¥²«ü©w¤@­Ótbl_name©Îdb_name.tbl_name«eºó¡A°£«D¤Þ¥Î·|¦³¤G¸q©Ê¡C¨Ò¦p¡A°²©wªít1©Mt2¡A¨C­Ó§¡¥]§t¦Cc¡A¨Ã¥B§A¥Î¤@­Ó¨Ï¥Ît1©Mt2ªºSELECT»y¥yÀ˯Ác¡C¦b³oºØ±¡ªp¤U¡Ac¦³¤G¸q©Ê¡A¦]¬°¥¦¦b¨Ï¥Îªíªº»y¥y¤¤¤£¬O°ß¤@ªº¡A¦]¦¹§A¥²¶·³q¹L¼g¥Xt1.c©Ît2.c¨Ó«ü©ú§A·Q­n­þ­Óªí¡C¦P¼Ë¡A¦pªG§A±q¸ê®Æ®wdb1¤¤¤@­Óªít©M¦b¸ê®Æ®wdb2ªº¤@­ÓªítÀ˯Á¡A§A¥²¶·¥Îdb1.t.col_name©Mdb2.t.col_name¤Þ¥Î³o¨Ç¼Æ¾Úªíªº¦C¡C

¥yªk.tbl_name·N¨ýµÛ¦b·í«eªº¸ê®Æ®w¤¤ªºªítbl_name¡A¸Ó¥yªk¬°¤FODBCªº­Ý®e©Ê³Q±µ¨ü¡A¦]¬°¤@¨ÇODBCµ{¦¡¥Î¤@­Ó¡§.¡¨¦r²Å§@¬°¸ê®Æ®wªí¦Wªº«eºó¡C

7.1.5.1 ¦W¦rªº¤j¤p¼g±Ó·P©Ê

¦bMySQL¤¤¡A¸ê®Æ®w©Mªí¹ïÀ³©ó¦b¨º¨Ç¥Ø¿ý¤Uªº¥Ø¿ý©M¤å¥ó¡A¦]¦Ó¡A¤º¦bªº§@·~¨t²Îªº±Ó·P©Ê¨M©w¸ê®Æ®w©Mªí©R¦Wªº¤j¤p¼g±Ó·P©Ê¡C³o·N¨ýµÛ¸ê®Æ®w©Mªí¦W¦bUnix¤W¬O°Ï¤À¤j¤p¼gªº¡A¦Ó¦bWin32¤W©¿²¤¤j¤p¼g¡C

ª`·N¡G¦bWin32¤W¡AºÉºÞ¸ê®Æ®w©Mªí¦W¬O©¿²¤¤j¤p¼gªº¡A§A¤£À³¸Ó¦b¦P¤@­Ó¬d¸ß¤¤¨Ï¥Î¤£¦Pªº¤j¤p¼g¨Ó¤Þ¥Î¤@­Óµ¹©wªº¸ê®Æ®w©Mªí¡C¤U¦C¬d¸ß±N¤£¤u§@¡A¦]¬°¥¦§@¬°my_table©M§@¬°MY_TABLE¤Þ¥Î¤@­Óªí¡G

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

¦C¦W¦b©Ò¦³±¡ªp¤U³£¬O©¿²¤¤j¤p¼gªº¡C

ªíªº§O¦W¬O°Ï¤À¤j¤p¼gªº¡C¤U¦C¬d¸ß±N¤£¤u§@¡A: ¦]¬°¥¦¥Îa©MA¤Þ¥Î§O¦W¡G

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

¦Cªº§O¦W¬O©¿²¤¤j¤p¼gªº¡C

7.2 ¥Î¤áÅܼÆ

MySQL¤ä´©°õ¦æºü¯S©wªºÅܼơA¥Î@variablename¥yªk¡C¤@­ÓÅܼƦW¥i¥H¥Ñ·í«e¦r²Å¶°ªº¼Æ¦r¦r¥À¦r²Å©M¡§_¡¨¡B¡§$¡¨©M¡§.¡¨²Õ¦¨¡C¹w³]¦r²Å¶°¬OISO-8859-1 Latin1¡Q³o¥i¥H³q¹L­«·s½sĶMySQL§ïÅÜ¡C¨£9.1.1 ¥Î©ó¼Æ¾Ú©M±Æ§Çªº¦r²Å¶°¡C

ÅܼƤ£¥²³Qªì©l¤Æ¡C¹w³]¦a¡A¥L­Ì¥]§tNULL¨Ã¯àÀx¦s¾ã¼Æ¡B¹ê¼Æ©Î¤@­Ó¦r²Å¦ê­È¡C·í°õ¦æºü°h¥X®É¡A¹ï©ó¤@­Ó°õ¦æºüªº©Ò¦³ÅܼƦ۰ʦa³QÄÀ©ñ¡C

§A¥i¥H¥ÎSET¥yªk³]¸m¤@­ÓÅܼơG

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

§A¤]¥i¥H¥Î@variable:=expr¥yªk¦b¤@­Óªí¹F¦¡¤¤³]¸m¤@­ÓÅܼơG

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

¡]³o¸Ì¡A§Ú­Ì¤£±o¤£¨Ï¥Î:=¥yªk¡A¦]¬°=¬O¬°¤ñ¸û«O¯dªº¡^

7.3 ¦CÃþ«¬

MySQL¤ä´©¤j¶qªº¦CÃþ«¬¡A¥¦¥i¥H³Q¤À¬°3Ãþ¡G¼Æ¦rÃþ«¬¡B¤é´Á©M®É¶¡Ãþ«¬¥H¤Î¦r²Å¦ê(¦r²Å)Ãþ«¬¡C¥»¸`­º¥ýµ¹¥X¥i¥ÎÃþ«¬ªº¤@­Ó·§­z¡A¨Ã¥BÁ`µ²¨C­Ó¦CÃþ«¬ªºÀx¦s»Ý¨D¡AµM«á´£¨Ñ¨C­ÓÃþ¤¤ªºÃþ«¬©Ê½èªº§ó¸Ô²Óªº´y­z¡C·§­z¦³·N²¤Æ¡A§ó¸Ô²Óªº»¡©úÀ³¸Ó¦Ò¼{¨ì¦³Ãö¯S©w¦CÃþ«¬ªºªþ¥[¸ê°T¡A¨Ò¦p§A¯à¬°¨ä«ü©w­Èªº¤¹³\®æ¦¡¡C

¥ÑMySQL¤ä´©ªº¦CÃþ«¬¦C¦b¤U­±¡C¤U¦C¥N½X¦r¥À¥Î©ó´y­z¤¤¡G

M
«ü¥X³Ì¤jªºÅã¥Ü¤Ø¤o¡C³Ì¤jªº¦XªkªºÅã¥Ü¤Ø¤o¬O 255 ¡C
D
¾A¥Î©ó¯BÂIÃþ«¬¨Ã¥B«ü¥X¸òÀH¦b¤Q¶i¨î¤p¼ÆÂI«áªº¼Æ½Xªº¼Æ¶q¡C³Ì¤j¥i¯àªº­È¬O30¡A¦ý¬OÀ³¸Ó¤£¤j©óM-2¡C

¤è¬A¸¹(¡§[¡¨©M¡§]¡¨)«ü¥X¥i¿ïªºÃþ«¬­×¹¢²Åªº³¡¤À¡C

ª`·N¡A¦pªG§A«ü©w¤@­Ó¤F¬°ZEROFILL¡AMySQL±N¬°¸Ó¦C¦Û°Ê¦a¼W¥[UNSIGNEDÄݩʡC

TINYINT[(M)] [UNSIGNED] [ZEROFILL]
¤@­Ó«Ü¤pªº¾ã¼Æ¡C¦³²Å¸¹ªº½d³ò¬O-128¨ì127¡AµL²Å¸¹ªº½d³ò¬O0¨ì255¡C
SMALLINT[(M)] [UNSIGNED] [ZEROFILL]
¤@­Ó¤p¾ã¼Æ¡C¦³²Å¸¹ªº½d³ò¬O-32768¨ì32767¡AµL²Å¸¹ªº½d³ò¬O0¨ì65535¡C
MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]
¤@­Ó¤¤µ¥¤j¤p¾ã¼Æ¡C¦³²Å¸¹ªº½d³ò¬O-8388608¨ì8388607¡AµL²Å¸¹ªº½d³ò¬O0¨ì16777215¡C
INT[(M)] [UNSIGNED] [ZEROFILL]
¤@­Ó¥¿±`¤j¤p¾ã¼Æ¡C¦³²Å¸¹ªº½d³ò¬O-2147483648¨ì2147483647¡AµL²Å¸¹ªº½d³ò¬O0¨ì4294967295¡C
INTEGER[(M)] [UNSIGNED] [ZEROFILL]
³o¬OINTªº¤@­Ó¦P¸qµü¡C
BIGINT[(M)] [UNSIGNED] [ZEROFILL]
¤@­Ó¤j¾ã¼Æ¡C¦³²Å¸¹ªº½d³ò¬O-9223372036854775808¨ì9223372036854775807¡AµL²Å¸¹ªº½d³ò¬O0¨ì18446744073709551615¡Cª`·N¡A©Ò¦³ºâ³N¹Bºâ¥Î¦³²Å¸¹ªºBIGINT©ÎDOUBLE­È§¹¦¨¡A¦]¦¹§A¤£À³¸Ó¨Ï¥Î¤j©ó9223372036854775807¡]63¦ì)ªº¦³²Å¸¹¤j¾ã¼Æ¡A°£¤F¦ì¨ç¼Æ¡Iª`·N¡A·í¨â­Ó°Ñ¼Æ¬OINTEGER­È®É¡A-¡B+©M*±N¨Ï¥ÎBIGINT¹Bºâ¡I³o·N¨ýµÛ¦pªG§A­¼2­Ó¤j¾ã¼Æ(©Î¨Ó¦Û©óªð¦^¾ã¼Æªº¨ç¼Æ)¡A¦pªGµ²ªG¤j©ó9223372036854775807¡A§A¥i¥H±o¨ì·N¥~ªºµ²ªG¡C¤@­Ó¯BÂI¼Æ¦r¡A¤£¯à¬OµL²Å¸¹ªº¡A¹ï¤@­Ó³æºë«×¯BÂI¼Æ¡A¨äºë«×¥i¥H¬O<=24¡A¹ï¤@­ÓÂùºë«×¯BÂI¼Æ¡A¬O¦b25 ©M53¤§¶¡¡A³o¨ÇÃþ«¬¦pFLOAT©MDOUBLEÃþ«¬°¨¤W¦b¤U­±´y­z¡CFLOAT(X)¦³¹ïÀ³ªºFLOAT©MDOUBLE¬Û¦Pªº½d³ò¡A¦ý¬OÅã¥Ü¤Ø¤o©M¤p¼Æ¦ì¼Æ¬O¥¼©w¸qªº¡C¦bMySQL3.23¤¤¡A³o¬O¤@­Ó¯u¥¿ªº¯BÂI­È¡C¦b§ó¦­ªºMySQLª©¥»¤¤¡AFLOAT(precision)Á`¬O¦³2¦ì¤p¼Æ¡C¸Ó¥yªk¬°¤FODBC­Ý®e©Ê¦Ó´£¨Ñ¡C
FLOAT[(M,D)] [ZEROFILL]
¤@­Ó¤p(³æºë±K)¯BÂI¼Æ¦r¡C¤£¯àµL²Å¸¹¡C¤¹³\ªº­È¬O-3.402823466E+38¨ì-1.175494351E-38¡A0 ©M1.175494351E-38¨ì3.402823466E+38¡CM¬OÅã¥Ü¼e«×¦ÓD¬O¤p¼Æªº¦ì¼Æ¡C¨S¦³°Ñ¼ÆªºFLOAT©Î¦³<24 ªº¤@­Ó°Ñ¼Æªí¥Ü¤@­Ó³æºë±K¯BÂI¼Æ¦r¡C
DOUBLE[(M,D)] [ZEROFILL]
¤@­Ó¥¿±`¤j¤p(Âùºë±K)¯BÂI¼Æ¦r¡C¤£¯àµL²Å¸¹¡C¤¹³\ªº­È¬O-1.7976931348623157E+308¨ì-2.2250738585072014E-308¡B 0©M2.2250738585072014E-308¨ì1.7976931348623157E+308¡CM¬OÅã¥Ü¼e«×¦ÓD¬O¤p¼Æ¦ì¼Æ¡C¨S¦³¤@­Ó°Ñ¼ÆªºDOUBLE©ÎFLOAT(X)¡]25 < = X < = 53¡^¥Nªí¤@­ÓÂùºë±K¯BÂI¼Æ¦r¡C
DOUBLE PRECISION[(M,D)] [ZEROFILL]
¡@
REAL[(M,D)] [ZEROFILL]
³o¨Ç¬ODOUBLE¦P¸qµü¡C
DECIMAL[(M[,D])] [ZEROFILL]
¤@­Ó¥¼À£ÁY(unpack)ªº¯BÂI¼Æ¦r¡C¤£¯àµL²Å¸¹¡C¦æ¬°¦p¦P¤@­ÓCHAR¦C¡G¡§¥¼À£ÁY¡¨·N¨ýµÛ¼Æ¦r§@¬°¤@­Ó¦r²Å¦ê³QÀx¦s¡A­Èªº¨C¤@¦ì¨Ï¥Î¤@­Ó¦r²Å¡C¤p¼ÆÂI¡A¨Ã¥B¹ï©ó­t¼Æ¡A¡§-¡¨²Å¸¹¤£¦bM¤¤­pºâ¡C¦pªGD¬O0¡A­È±N¨S¦³¤p¼ÆÂI©Î¤p¼Æ³¡¤À¡CDECIMAL­Èªº³Ì¤j½d³ò»PDOUBLE¬Û¦P¡A¦ý¬O¹ï¤@­Óµ¹©wªºDECIMAL¦C¡A¹ê»Úªº½d³ò¥i¥H³q¹LM©MDªº¿ï¾Ü³Q­­¨î¡C¦pªGD³Q¬Ù²¤¡A¥¦³Q³]¸m¬°0¡C¦pªGM³Q¬Ù±¼¡A¥¦³Q³]¸m¬°10¡Cª`·N¡A¦bMySQL3.22¸Ì¡AM°Ñ¼Æ¥]¬A²Å¸¹©M¤p¼ÆÂI¡C
NUMERIC(M,D) [ZEROFILL]
³o¬ODECIMALªº¤@­Ó¦P¸qµü¡C
DATE
¤@­Ó¤é´Á¡C¤ä´©ªº½d³ò¬O'1000-01-01'¨ì'9999-12-31'¡CMySQL¥H'YYYY-MM-DD'®æ¦¡¨ÓÅã¥ÜDATE­È¡A¦ý¬O¤¹³\§A¨Ï¥Î¦r²Å¦ê©Î¼Æ¦r§â­È½áµ¹DATE¦C¡C
DATETIME
¤@­Ó¤é´Á©M®É¶¡²Õ¦X¡C¤ä´©ªº½d³ò¬O'1000-01-01 00:00:00'¨ì'9999-12-31 23:59:59'¡CMySQL¥H'YYYY-MM-DD HH:MM:SS'®æ¦¡¨ÓÅã¥ÜDATETIME­È¡A¦ý¬O¤¹³\§A¨Ï¥Î¦r²Å¦ê©Î¼Æ¦r§â­È½áµ¹DATETIMEªº¦C¡C
TIMESTAMP[(M)]
¤@­Ó®É¶¡ÂW°O¡C½d³ò¬O'1970-01-01 00:00:00'¨ì2037¦~ªº¬Y®É¡CMySQL¥HYYYYMMDDHHMMSS¡BYYMMDDHHMMSS¡BYYYYMMDD©ÎYYMMDD®æ¦¡¨ÓÅã¥ÜTIMESTAMP­È¡A¨ú¨M©ó¬O§_M¬O14¡]©Î¬Ù²¤)¡B12¡B8©Î6¡A¦ý¬O¤¹³\§A¨Ï¥Î¦r²Å¦ê©Î¼Æ¦r§â­È½áµ¹TIMESTAMP¦C¡C¤@­ÓTIMESTAMP¦C¹ï©ó°O¿ý¤@­ÓINSERT©ÎUPDATE¾Þ§@ªº¤é´Á©M®É¶¡¬O¦³¥Îªº¡A¦]¬°¦pªG§A¤£¦Û¤vµ¹¥¦½á­È¡A¥¦¦Û°Ê¦a³Q³]¸m¬°³Ìªñ¾Þ§@ªº¤é´Á©M®É¶¡¡C§A¥H¥i¥H³q¹L½áµ¹¥¦¤@­ÓNULL­È³]¸m¥¦¬°·í«eªº¤é´Á©M®É¶¡¡C¨£7.3.6 ¤é´Á©M®É¶¡Ãþ«¬¡C
TIME
¤@­Ó®É¶¡¡C½d³ò¬O'-838:59:59'¨ì'838:59:59'¡CMySQL¥H'HH:MM:SS'®æ¦¡¨ÓÅã¥ÜTIME­È¡A¦ý¬O¤¹³\§A¨Ï¥Î¦r²Å¦ê©Î¼Æ¦r§â­È½áµ¹TIME¦C¡C
YEAR[(2|4)]
¤@­Ó2©Î4¦ì¼Æ¦r®æ¦¡ªº¦~(¹w³]¬O4¦ì)¡C¤¹³\ªº­È¬O1901¨ì2155¡A©M0000¡]4¦ì¦~®æ¦¡¡^¡A¦pªG§A¨Ï¥Î2¦ì¡A1970-2069( 70-69)¡CMySQL¥HYYYY®æ¦¡¨ÓÅã¥ÜYEAR­È¡A¦ý¬O¤¹³\§A§â¨Ï¥Î¦r²Å¦ê©Î¼Æ¦r­È½áµ¹YEAR¦C¡C¡]YEARÃþ«¬¦bMySQL3.22¤¤¬O·sÃþ«¬¡C¡^
CHAR(M) [BINARY]
¤@­Ó©wªø¦r²Å¦ê¡A·íÀx¦s®É¡AÁ`¬O¬O¥ÎªÅ®æ¶ñº¡¥kÃä¨ì«ü©wªºªø«×¡CMªº½d³ò¬O1 ¡ã 255­Ó¦r²Å¡C·í­È³QÀ˯Á®É¡AªÅ®æ§À³¡³Q§R°£¡CCHAR­È®Ú¾Ú¹w³]¦r²Å¶°¥H¤j¤p¼g¤£°Ï¤Àªº¤è¦¡±Æ§Ç©M¤ñ¸û¡A°£«Dµ¹¥XBINARYÃöÁäµü¡CNATIONAL CHAR¡]µu§Î¦¡NCHAR)¬OANSI SQLªº¤è¦¡¨Ó©w¸qCHAR¦CÀ³¸Ó¨Ï¥Î¹w³]¦r²Å¶°¡C³o¬OMySQLªº¹w³]¡CCHAR¬OCHARACTERªº¤@­ÓÁY¼g¡C
[NATIONAL] VARCHAR(M) [BINARY]
¤@­ÓÅܪø¦r²Å¦ê¡Cª`·N¡G·í­È³QÀx¦s®É¡A§À³¡ªºªÅ®æ³Q§R°£(³o¤£¦P©óANSI SQL³W½d)¡CMªº½d³ò¬O1 ¡ã 255­Ó¦r²Å¡C VARCHAR­È®Ú¾Ú¹w³]¦r²Å¶°¥H¤j¤p¼g¤£°Ï¤Àªº¤è¦¡±Æ§Ç©M¤ñ¸û¡A°£«Dµ¹¥XBINARYÃöÁäµü­È¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤơC VARCHAR¬OCHARACTER VARYING¤@­ÓÁY¼g¡C
TINYBLOB
¡@
TINYTEXT
¤@­ÓBLOB©ÎTEXT¦C¡A³Ì¤jªø«×¬°255(2^8-1)­Ó¦r²Å¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤơC
BLOB
¡@
TEXT
¤@­ÓBLOB©ÎTEXT¦C¡A³Ì¤jªø«×¬°65535(2^16-1)­Ó¦r²Å¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤơC
MEDIUMBLOB
¡@
MEDIUMTEXT
¤@­ÓBLOB©ÎTEXT¦C¡A³Ì¤jªø«×¬°16777215(2^24-1)­Ó¦r²Å¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤơC
LONGBLOB
¡@
LONGTEXT
¤@­ÓBLOB©ÎTEXT¦C¡A³Ì¤jªø«×¬°4294967295(2^32-1)­Ó¦r²Å¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤÆ
ENUM('value1','value2',...)
ªTÁ|¡C¤@­Ó¶È¦³¤@­Ó­Èªº¦r²Å¦ê¹ï¹³¡A³o­Ó­È¦¡¿ï¦Û»P­È¦Cªí'value1'¡B'value2', ...,©ÎNULL¡C¤@­ÓENUM³Ì¦h¯à¦³65535¤£¦Pªº­È¡C
SET('value1','value2',...)
¤@­Ó¶°¦X¡C¯à¦³¹s­Ó©Î¦h­Ó­Èªº¤@­Ó¦r²Å¦ê¹ï¹³¡A¨ä¤¤¨C¤@­Ó¥²¶·±q­È¦Cªí'value1', 'value2', ...¿ï¥X¡C¤@­ÓSET³Ì¦h¯à¦³64­Ó¦¨­û¡C

7.3.1 ¦CÃþ«¬Àx¦s»Ý¨D

¹ï©ó¨C­Ó¥ÑMySQL¤ä´©ªº¦CÃþ«¬ªºÀx¦s»Ý¨D¦b¤U­±«öÃþ¦C¥X¡C

7.3.2 ¼Æ¦rÃþ«¬

¦CÃþ«¬ »Ý­nªºÀx¦s¶q
TINYINT 1 ¦r¸`
SMALLINT 2 ­Ó¦r¸`
MEDIUMINT 3 ­Ó¦r¸`
INT 4 ­Ó¦r¸`
INTEGER 4 ­Ó¦r¸`
BIGINT 8 ­Ó¦r¸`
FLOAT(X) 4 ¦pªG X < = 24 ©Î 8 ¦pªG 25 < = X < = 53
FLOAT 4 ­Ó¦r¸`
DOUBLE 8 ­Ó¦r¸`
DOUBLE PRECISION 8 ­Ó¦r¸`
REAL 8 ­Ó¦r¸`
DECIMAL(M,D) M¦r¸`(D+2 , ¦pªGM < D)
NUMERIC(M,D) M¦r¸`(D+2 , ¦pªGM < D)

7.3.3 ¤é´Á©M®É¶¡Ãþ«¬

¦CÃþ«¬ »Ý­nªºÀx¦s¶q
DATE 3 ­Ó¦r¸`
DATETIME 8 ­Ó¦r¸`
TIMESTAMP 4 ­Ó¦r¸`
TIME 3 ­Ó¦r¸`
YEAR 1 ¦r¸`

7.3.4 ¦êÃþ«¬

¦CÃþ«¬ »Ý­nªºÀx¦s¶q
CHAR(M) M¦r¸`¡A1 <= M <= 255
VARCHAR(M) L+1 ¦r¸`, ¦b¦¹L <= M©M1 <= M <= 255
TINYBLOB, TINYTEXT L+1 ¦r¸`, ¦b¦¹L< 2 ^ 8
BLOB, TEXT L+2 ¦r¸`, ¦b¦¹L< 2 ^ 16
MEDIUMBLOB, MEDIUMTEXT L+3 ¦r¸`, ¦b¦¹L< 2 ^ 24
LONGBLOB, LONGTEXT L+4 ¦r¸`, ¦b¦¹L< 2 ^ 32
ENUM('value1','value2',...) 1 ©Î 2 ­Ó¦r¸`, ¨ú¨M©óªTÁ|­Èªº¼Æ¥Ø(³Ì¤j­È65535¡^
SET('value1','value2',...) 1¡A2¡A3¡A4©Î8­Ó¦r¸`, ¨ú¨M©ó¶°¦X¦¨­ûªº¼Æ¶q(³Ì¦h64­Ó¦¨­û¡^

VARCHAR©MBLOB©MTEXTÃþ«¬¬OÅܪøÃþ«¬¡A¹ï©ó¨äÀx¦s»Ý¨D¨ú¨M©ó¦C­Èªº¹ê»Úªø«×(¦b«e­±ªºªí®æ¥H Lªí¥Ü)¡A¦Ó¤£¬O¨ú¨M©óÃþ«¬ªº³Ì¤j¥i¯à¤Ø¤o¡C¨Ò¦p¡A¤@­ÓVARCHAR(10)¦C¯à«O¦s³Ì¤jªø«×¬°10­Ó¦r²Åªº¤@­Ó¦r²Å¦ê¡A¹ê»ÚªºÀx¦s»Ý­n¬O¦r²Å¦êªºªø«×(L)¡A¥[¤W1­Ó¦r¸`¥H°O¿ý¦r²Å¦êªºªø«×¡C¹ï©ó¦r²Å¦ê'abcd'¡AL¬O4¦ÓÀx¦s­n¨D¬O5­Ó¦r¸`¡C

BLOB©MTEXTÃþ«¬»Ý­n1¡A2¡A3©Î4­Ó¦r¸`¨Ó°O¿ý¦C­Èªºªø«×¡A³o¨ú¨M©óÃþ«¬ªº³Ì¤j¥i¯àªø«×¡C

¦pªG¤@­Óªí¥]¬A¥ô¦óÅܪøªº¦CÃþ«¬¡A°O¿ý®æ¦¡±N¤]¬OÅܪøªº¡Cª`·N¡A·í¤@­Óªí³Q³Ð«Ø®É¡AMySQL¥i¯à¦b¬Y¨Ç±ø¥ó¤U±N¤@­Ó¦C±q¤@­ÓÅܪøÃþ«¬§ïÅܬ°¤@­Ó©wªøÃþ«¬©Î¬Û¤Ï¡C¨£7.7.1 Áô¦¡¦C«ü©wÅܤơC

¤@­ÓENUM¹ï¹³ªº¤j¤p¥Ñ¤£¦PªTÁ|­Èªº¼Æ¶q¨M©w¡C1¦r¸`³Q¥Î©óªTÁ|¡A³Ì¤j¨ì255­Ó¥i¯àªº­È¡Q2­Ó¦r¸`¥Î©óªTÁ|¡A³Ì¤j¨ì65535 ­È¡C

¤@­ÓSET¹ï¹³ªº¤j¤p¥Ñ¤£¦Pªº¶°¦X¦¨­ûªº¼Æ¶q¨M©w¡C¦pªG¶°¦X¤j¤p¬ON¡A¹ï¹³¥e¾Ú(N+7)/8­Ó¦r¸`¡A¥|±Ë¤­¤J¬°1¡A2¡A3¡A4©Î8 ­Ó¦r¸`¡C¤@­ÓSET³Ì¦h¯à¦³64­Ó¦¨­û¡C

7.3.5 ¼Æ¦rÃþ«¬

MySQL¤ä´©©Ò¦³ªºANSI/ISO SQL92ªº¼Æ¦rÃþ«¬¡C³o¨ÇÃþ«¬¥]¬A·Ç½T¼Æ¦rªº¼Æ¾ÚÃþ«¬(NUMERIC, DECIMAL, INTEGER,©MSMALLINT)¡A¤]¥]¬Aªñ¦ü¼Æ¦rªº¼Æ¾ÚÃþ«¬(FLOAT, REAL,©MDOUBLE PRECISION)¡CÃöÁäµüINT¬OINTEGERªº¤@­Ó¦P¸qµü¡A¦ÓÃöÁäµüDEC¬ODECIMAL¤@­Ó¦P¸qµü¡C

NUMERIC©MDECIMALÃþ«¬³QMySQL¹ê²{¬°¦P¼ËªºÃþ«¬¡A³o¦bSQL92¼Ð·Ç¤¹³\¡C¥L­Ì³Q¥Î©ó«O¦s­È¡A¸Ó­Èªº·Ç½Tºë«×¬O·¥¨ä­«­nªº­È¡A¨Ò¦p»Pª÷¿ú¦³Ãöªº¼Æ¾Ú¡C·íÁn©ú¤@­ÓÃþ¬O³o¨ÇÃþ«¬¤§¤@®É¡Aºë«×©M³W¼Òªº¯à³Q(¨Ã¥B³q±`¬O)«ü©w¡Q¨Ò¦p¡G

salary DECIMAL(9,2) 

¦b³o­Ó¨Ò¤l¤¤¡A9(precision)¥Nªí±N³Q¥Î©óÀx¦s­ÈªºÁ`ªº¤p¼Æ¦ì¼Æ¡A¦Ó2(scale)¥Nªí±N³Q¥Î©óÀx¦s¤p¼ÆÂI«áªº¦ì¼Æ¡C¦]¦¹¡A¦b³oºØ±¡ªp¤U¡A¯à³QÀx¦s¦bsalary¦C¤¤ªº­Èªº½d³ò¬O±q-9999999.99¨ì9999999.99¡C¦bANSI/ISO SQL92¤¤¡A¥yªkDECIMAL(p)µ¥»ù©óDECIMAL(p,0)¡C¦P¼Ë¡A¥yªkDECIMALµ¥»ù©óDECIMAL(p,0)¡A³o¸Ì¹ê²{³Q¤¹³\¨M©w­Èp¡CMySQL·í«e¤£¤ä´©DECIMAL/NUMERIC¼Æ¾ÚÃþ«¬ªº³o¨ÇÅܺاΦ¡ªº¥ô¤@ºØ¡C³o¤@¯ë»¡¨Ó¤£¬O¤@­ÓÄY­«ªº°ÝÃD¡A¦]¬°³o¨ÇÃþ«¬ªº¥D­n¯q³B±o¦Û©ó©úÅã¦a±±¨îºë«×©M³W¼Òªº¯à¤O¡C

DECIMAL©MNUMERIC­È§@¬°¦r²Å¦êÀx¦s¡A¦Ó¤£¬O§@¬°¤G¶i¨î¯BÂI¼Æ¡A¥H«K«O¦s¨º¨Ç­Èªº¤p¼Æºë«×¡C¤@­Ó¦r²Å¥Î©ó­Èªº¨C¤@¦ì¡B¤p¼ÆÂI(¦pªGscale>0)©M¡§-¡¨²Å¸¹(¹ï©ó­t­È)¡C¦pªGscale¬O0¡ADECIMAL©MNUMERIC­È¤£¥]§t¤p¼ÆÂI©Î¤p¼Æ³¡¤À¡C

DECIMAL©MNUMERIC­È±o³Ì¤jªº½d³ò»PDOUBLE¤@¼Ë¡A¦ý¬O¹ï©ó¤@­Óµ¹©wªºDECIMAL©ÎNUMERIC¦C¡A¹ê»Úªº½d³ò¥i¥Ñ¨î¥Ñµ¹©w¦Cªºprecision©Îscale­­¨î¡C·í³o¼Ëªº¦C½áµ¹¤F¤p¼ÆÂI«á­±ªº¦ì¶W¹L«ü©wscale©Ò¤¹³\ªº¦ìªº­È¡A¸Ó­È®Ú¾Úscale¥|±Ë¤­¤J¡C·í¤@­ÓDECIMAL©ÎNUMERIC¦C³Q½áµ¹¤F¨ä¤j¤p¶W¹L«ü©w(©Î¹w³]ªº¡^precision©MscaleÁô§tªº½d³òªº­È¡AMySQLÀx¦sªí¥Ü¨º­Ó½d³òªº¬ÛÀ³ªººÝÂI­È¡C

§@¬°¹ïANSI/ISO SQL92¼Ð·ÇªºÂX®i¡AMySQL¤]¤ä´©¤Wªí©Ò¦Cªº¾ã«¬Ãþ«¬TINYINT¡BMEDIUMINT©MBIGINT¡C¥t¤@­ÓÂX®i¬OMySQL¤ä´©¥i¿ï¦a«ü©w¤@­Ó¾ã«¬­ÈÅã¥Üªº¼e«×¡A¥Î¬A¸¹¸ò¦b°ò¥»ÃöÁäµü¤§«á(¨Ò¦p¡AINT(4))¡C³o­Ó¥i¿ïªº¼e«×«ü©w³Q¥Î©ó¨ä¼e«×¤p©ó¦C«ü©w¼e«×ªº­È±o¥ª¶ñ¸ÉÅã¥Ü¡A¦ý¬O¤£­­¨î¯à¦b¦C¤¤³QÀx¦sªº­Èªº½d³ò¡A¤]¤£­­¨î­È±N³QÅã¥Üªº¦ì¼Æ¡A¨ä¼e«×¶W¹L¦C«ü©wªº¼e«×¡C·í»P¥i¿ïªºÂX®iÄÝ©ÊZEROFILL¤@°_¨Ï¥Î®É¡A¹w³]ªºªÅ®æ¶ñ¸É¥Î¹s¥N´À¡C¨Ò¦p¡A¹ï©óÁn©ú¬°INT(5) ZEROFILLªº¦C¡A¤@­Ó¬°4ªº­È§@¬°00004³QÀ˯Á¡Cª`·N¡A¦pªG§A¦b¤@­Ó¾ã«¬¦CÀx¦s¶W¹LÅã¥Ü¼e«×ªº§ó¤j­È¡A·íMySQL¹ï©ó¬Y¨Ç½ÆÂøªºÁpµ²(join)²£¥ÍÁ{®Éªí®É¡A§A¥i¯à·|¹J¨ì°ÝÃD¡A¦]¬°¦b³o¨Ç±¡ªp¤U¡AMySQL¬Û«H¼Æ¾Ú½T¹ê¾A¦X­ì¨Óªº¦C¼e«×¡C

©Ò¦³ªº¾ã«¬Ãþ«¬¥i¥H¦³¤@­Ó¥i¿ï(«D¼Ð·Çªº)ÄÝ©ÊUNSIGNED¡C·í§A·Q­n¦b¦C¤¤¶È¤¹³\¥¿¼Æ¨Ã¥B§A»Ý­n¤@­Óµy¤j¤@ÂIªº¦C½d³ò¡A¥i¥H¨Ï¥ÎµL²Å¸¹­È¡C

FLOATÃþ«¬³Q¥Î¨Ó¼Ð¥Üªñ¦ü¼Æ¦rªº¼Æ¾ÚÃþ«¬¡CANSI/ISO SQL92¼Ð·Ç¤¹³\¤@­Ó¥i¿ïªººë«×»¡©ú(¦ý¤£¬O«ü¼Æªº½d³ò)¡A¸ò¦bÃöÁäµüFLOAT«á­±ªº¬A¸¹¤º¦ì¼Æ¡CMySQL¹ê²{¤]¤ä´©³o­Ó¥i¿ïªººë«×»¡©ú¡C·íÃöÁäµüFLOAT³Q¥Î©ó¤@­Ó¦CÃþ«¬¦Ó¨S¦³ºë«×»¡©ú®É¡AMySQL¨Ï¥Î4­Ó¦r¸`Àx¦s­È¡C¤@­ÓÅܺتº¥yªk¤]³Q¤ä´©¡A¦bFLOATÃöÁäµü«á­±ªº¬A¸¹µ¹¥X2­Ó¼Æ¦r¡C¥Î³o­Ó¿ï¶µ¡A²Ä¤@­Ó¼Æ¦rÄ~Äòªí¥Ü¦b¦r¸`­pºâªº­ÈÀx¦s»Ý¨D¡A¦Ó²Ä¤G­Ó¼Æ¦r«ü©w­n³QÀx¦sªº©MÅã¥Ü¸òÀH¤p¼ÆÂI«áªº¦ì¼Æ(´N¹³DECIMAL©MNUMERIC)¡C·íMySQL­n¨D¬°³o¼Ë¤@­Ó¦C¡A¤@­Ó¤p¼ÆÂI«áªº¤p¼Æ¦ì¶W¹L¦C«ü©wªº­È¡AÀx¦s­È®É¡A¸Ó­È³Q¥|±Ë¤­¤J¡A¥h±¼ÃB¥~ªº¦ì¡C

REAL©MDOUBLE PRECISIONÃþ«¬¤£±µ¨üºë«×»¡©ú¡C§@¬°¹ï ANSI/ISO SQL92 ¼Ð·ÇªºÂX®i¡AMySQLÃѧO¥XDOUBLE§@¬°DOUBLE PRECISIONÃþ«¬ªº¤@­Ó¦P¸qµü¡C»PREALºë«×¤ñ¥Î©óDOUBLE PRECISIONªº§ó¤pªº¼Ð·Ç­n¨D¬Û¤Ï¡AMySQL¹ê²{¤F¨âºØ¡A§@¬°8¦r¸`Âùºë«×¯BÂI­È(·í¹B¦æ¤£¬O¡§Ansi¼Ò¦¡¡¨®É)¡C¬°¤F³Ì¤jªº²¾´Ó©Ê¡Aªñ¦ü¼Æ¦rªº¼Æ¾Ú­ÈªºÀx¦s©Ò»Ý¥N½XÀ³¸Ó¨Ï¥Î¨S¦³ºë«×©Î¤p¼Æ¦ì¼Æ»¡©úªºFLOAT©ÎDOUBLE PRECISION¡C

·í­n¨D¦b¼Æ¦rªº¦CÀx¦s¶W¥X¸Ó¦CÃþ«¬¤¹³\ªº½d³òªº­È®É¡AMySQL°Å¤Á¸Ó­È¨ì½d³ò¤ºªº¥¿½TºÝÂI­È¨Ã¥BÀx¦s°Å¤Á«áªºµ²ªG­È¡C

¨Ò¦p¡A¤@­ÓINT¦Cªº½d³ò¬O-2147483648¨ì2147483647¡C¦pªG§A¸Õ¹Ï´¡¤J-9999999999¨ì¤@­ÓINT¦C¤¤¡A­È³Q°Å¤Á¨ì½d³òªº§C³¡ºÝÂI¡A¨ÃÀx¦s-2147483648¡C¦P¼Ë¡A¦pªG§A¸Õ¹Ï´¡¤J9999999999¡A2147483647³QÀx¦s¡C

¦pªGINT¦C¬OUNSIGNED¡A¦Cªº½d³òªº¤j¤p¬O¬Û¦Pªº¡A¦ý¬O¥¦ªººÝÂI²¾¨ì¤F0©M4294967295¡C¦pªG§A¸Õ¹ÏÀx¦s-9999999999©M9999999999¡A¦b¦C³QÀx¦sªº­ÈÅܬ°0©M4294967296¡C

¹ï©óALTER TABLE¡BLOAD DATA INFILE¡BUPDATE©M¦h¦æINSERT»y¥y¡A¥Ñ©ó°Å¤Á©Òµo¥ÍªºÅÜ´«§@¬°¡§Äµ§i¡¨³Q³ø§i¡C

7.3.6 ¤é´Á©M®É¶¡Ãþ«¬

¤é´Á©M®É¶¡Ãþ«¬¬ODATETIME¡BDATE¡BTIMESTAMP¡BTIME©MYEAR¡C³o¨Çªº¨C¤@­Ó³£¦³¦Xªk­Èªº¤@­Ó½d³ò¡A¦Ó¡§¹s¡¨·í§A«ü©w½T¹ê¤£¦Xªkªº­È®É³Q¨Ï¥Î¡Cª`·N¡AMySQL¤¹³\§AÀx¦s¬Y­Ó¡§¤£ÄY®æ¦a¡¨¦Xªkªº¤é´Á­È¡A¨Ò¦p1999-11-31¡A­ì¦]§Ú­Ì»{¬°¥¦¬OÀ³¥Îµ{¦¡ªº³d¥ô¨Ó³B²z¤é´ÁÀˬd¡A¦Ó¤£¬OSQL¦øªA¾¹¡C¬°¤F¨Ï¤é´ÁÀˬd§ó¡§§Ö¡¨¡AMySQL¶ÈÀˬd¤ë¥÷¦b0-12ªº½d³ò¡A¤Ñ¦b0-31ªº½d³ò¡C¤W­z½d³ò³o¼Ë³Q©w¸q¬O¦]¬°MySQL¤¹³\§A¦b¤@­ÓDATE©ÎDATETIME¦C¤¤Àx¦s¤é´Á¡A³o¸Ìªº¤Ñ©Î¤ë¬O¹s¡C³o¹ïÀx¦s§A¤£ª¾¹D·Ç½Tªº¤é´Áªº¤@­Ó¥Í¤éªºÀ³¥Îµ{¦¡¨Ó»¡¬O·¥¨ä¦³¥Îªº¡A¦b³oºØ±¡ªp¤U¡A§A²³æ¦aÀx¦s¤é´Á¹³1999-00-00©Î1999-01-00¡C¡]·íµM§A¤£¯à´Á±æ±q¨ç¼Æ¦pDATE_SUB()©ÎDATE_ADD()±o¨ìÃþ¦ü¥H³o¨Ç¤é´Áªº¥¿½T­È)¡C

·í¥Î¤é´Á©M®É¶¡¤u§@®É¡A³o¸Ì¬Oªº¤@¨Ç­n°O¦íªº¤@¯ë¦Ò¼{¡G

7.3.6.1 Y2K°ÝÃD©M¤é´ÁÃþ«¬

MySQL¥»¨­Y2K¦w¥þªº(¨£1.6 2000¦~¤@­P©Ê)¡A¦ý¬O§e¥æµ¹MySQLªº¿é¤J­È¥i¯à¤£¬O¡C¤@­Ó¥]§t2¦ì¦~¥÷­Èªº¥ô¦ó¿é¤J¬O¥Ñ¤G¸q©Êªº¡A¦]¬°¥@¬ö¬O¥¼ª¾ªº¡C³o¼Ëªº­È¥²¶·³Q¸ÑÄÀ¦¨4¦ì§Î¦¡¡A¦]¬°MySQL¤º³¡¨Ï¥Î4¦ìÀx¦s¦~¥÷¡C

¹ï©óDATETIME, DATE, TIMESTAMP©MYEARÃþ«¬¡AMySQL¨Ï¥Î¤U¦C³W«hªº¸ÑÄÀ¤G¸q©Êªº¦~¥÷­È¡G

°O±o³o¨Ç³W«h¶È¶È´£¨Ñ¹ï©ó§A¼Æ¾Úªº§t¸qªº¦X²z²q´ú¡C¦pªGMySQL¨Ï¥Îªº±Òµo³W«h¤£²£¥Í¥¿½Tªº­È¡A§AÀ³¸Ó´£¨ÑµL¤G¸qªº¥]§t4¦ì¦~­Èªº¿é¤J¡C

7.3.6.2 DATETIME, DATE©MTIMESTAMPÃþ«¬

DATETIME, DATE©MTIMESTAMPÃþ«¬¬O¬ÛÃöªº¡C¥»¸`´y­z¥L­Ìªº¯S¼x¡A¥L­Ì¬O¦p¦óÃþ¦üªº¦Ó¤S¤£¦Pªº¡C

DATETIMEÃþ«¬¥Î¦b§A»Ý­n¦P®É¥]§t¤é´Á©M®É¶¡¸ê°Tªº­È®É¡CMySQLÀ˯Á¨Ã¥B¥H'YYYY-MM-DD HH:MM:SS'®æ¦¡Åã¥ÜDATETIME­È¡A¤ä´©ªº½d³ò¬O'1000-01-01 00:00:00'¨ì'9999-12-31 23:59:59'¡C¡]¡§¤ä´©¡¨·N¨ýµÛºÉºÞ§ó¦­ªº­È¥i¯à¤u§@¡A¦ý¤£¯à«Oµý¥L­Ì¥i¥H¡C¡^

DATEÃþ«¬¥Î¦b§A¶È»Ý­n¤é´Á­È®É¡A¨S¦³®É¶¡³¡¤À¡CMySQLÀ˯Á¨Ã¥B¥H'YYYY-MM-DD'®æ¦¡Åã¥ÜDATE­È¡A¤ä´©ªº½d³ò¬O'1000-01-01'¨ì'9999-12-31'¡C

TIMESTAMP¦CÃþ«¬´£¨Ñ¤@ºØÃþ«¬¡A§A¥i¥H¨Ï¥Î¥¦¦Û°Ê¦a¥Î·í«eªº¤é´Á©M®É¶¡¼Ð°OINSERT©ÎUPDATEªº¾Þ§@¡C¦pªG§A¦³¦h­ÓTIMESTAMP¦C¡A¥u¦³²Ä¤@­Ó¦Û°Ê§ó·s¡C

¦Û°Ê§ó·s²Ä¤@­ÓTIMESTAMP¦C¦b¤U¦C¥ô¦ó±ø¥ó¤Uµo¥Í¡G

°£²Ä¤@­Ó¥H¥~ªºTIMESTAMP¦C¤]¥i¥H³]¸m¨ì·í«eªº¤é´Á©M®É¶¡¡A¥u­n±N¦C³]¬°NULL¡A©ÎNOW()¡C

³q¹L©ú½T¦a³]¸m§Æ±æªº­È¡A§A¥i¥H³]¸m¥ô¦óTIMESTAMP¦C¬°¤£¦P©ó·í«e¤é´Á©M®É¶¡ªº­È¡A§Y¨Ï¹ï²Ä¤@­ÓTIMESTAMP¦C¤]¬O³o¼Ë¡C¨Ò¦p¡A¦pªG¡A·í§A³Ð«Ø¤@­Ó¦æ®É¡A§A·Q­n¤@­ÓTIMESTAMP³Q³]¸m¨ì·í«eªº¤é´Á©M®É¶¡¡A¦ý¦b¥H«áµL½×¦ó®É¦æ³Q§ó·s®É³£¤£§ïÅÜ¡A§A¥i¥H¨Ï¥Î³o­ÓÄݩʡG

¥t¤@¤è­±¡A§A¥i¯àµo²{¡A·í¦æ³Q³Ð«Ø¨Ã¥B»·Â÷ÀH«áªº§ó§ï®É¡A«Ü®e©ö¥Î¤@­Ó§A¥ÎNOW()ªì©l¤ÆªºDATETIME¦C¡C

TIMESTAMP­È¥i¥H±q1970ªº¬Y®Éªº¶}©l¤@ª½¨ì2037¦~¡Aºë«×¬°¤@¬í¡A¨ä­È§@¬°¼Æ¦rÅã¥Ü¡C

¦bMySQLÀ˯Á¨Ã¥BÅã¥ÜTIMESTAMP­È¨ú¨M©óÅã¥Ü¤Ø¤oªº®æ¦¡¦p¤Uªí¡C¡§§¹¾ã¡¨TIMESTAMP®æ¦¡¬O14¦ì¡A¦ý¬OTIMESTAMP¦C¥i¥H¥Î§óµuªºÅã¥Ü¤Ø¤o³Ð³y¡G

¦CÃþ«¬ Åã¥Ü®æ¦¡
TIMESTAMP(14) YYYYMMDDHHMMSS
TIMESTAMP(12) YYMMDDHHMMSS
TIMESTAMP(10) YYMMDDHHMM
TIMESTAMP(8) YYYYMMDD
TIMESTAMP(6) YYMMDD
TIMESTAMP(4) YYMM
TIMESTAMP(2) YY

©Ò¦³ªºTIMESTAMP¦C³£¦³¦P¼ËªºÀx¦s¤j¤p¡A¤£¦Ò¼{Åã¥Ü¤Ø¤o¡C³Ì±`¨£ªºÅã¥Ü¤Ø¤o¬O6¡B8¡B12¡B©M14¡C§A¥i¥H¦bªí³Ð«Ø®É¶¡«ü©w¤@­Ó¥ô·NªºÅã¥Ü¤Ø¤o¡A¦ý¬O­È0©Î¤ñ14¤j³Q±j¨î¨ì14¡C¦b±q1¡ã13½d³òªº©_¼Æ­È¤Ø¤o³Q±j¨î¬°¤U¤@­Ó§ó¤jªº°¸¼Æ¡C

¨Ï¥Î¤@­Ó±`¥Îªº®æ¦¡¶°ªº¥ô¦ó¤@­Ó¡A§A¥i¥H«ü©wDATETIME¡BDATE©MTIMESTAMP­È¡G

¤£¦XªkDATETIME, DATE©ÎTIMESTAMP­È³QÅÜ´«¨ì¾A·íÃþ«¬ªº¡§¹s¡¨­È('0000-00-00 00:00:00', '0000-00-00'©Î00000000000000)¡C

¹ï©ó¥]¬Aªº¤é´Á³¡¤À¤À¹j²Åªº«ü©w¬°¦r²Å¦êªº­È¡A¤£¥²­n¬°¤p©ó10ªº¤ë©Î¤Ñªº­È«ü©w2¦ì¼Æ¦r¡A'1979-6-9'»P'1979-06-09'¬O¤@¼Ëªº¡C¦P¼Ë, ¹ï©ó¥]¬Aªº®É¶¡³¡¤À¤À¹j²Åªº«ü©w¬°¦r²Å¦êªº­È¡A¤£¥²¬°¤p©ó10ªº¤p®É¡B¤ë©Î¬í«ü©w2¦ì¼Æ¦r¡A'1979-10-30 1:2:3'»P'1979-10-30 01:02:03'¬O¤@¼Ëªº¡C

«ü©w¬°¼Æ¦rÀ³¸Ó¬O6¡B8¡B12©Î14¦ìªø¡C¦pªG¼Æ¦r¬O8©Î14¦ìªø¡A¥¦³Q°²©w¥HYYYYMMDD©ÎYYYYMMDDHHMMSS®æ¦¡¨Ã¥B¦~¥÷¥ÑÀY4¦ì¼Æ¦rµ¹¥X¡C¦pªG¼Æ¦r¬O6©Î12¦ìªø¡A¥¦³Q°²©w¬O¥HYYMMDD©ÎYYMMDDHHMMSS®æ¦¡¥B¦~¥÷¥ÑÀY2¦ì¼Æ¦rµ¹¥X¡C¤£¬O³o¨Çªø«×¤§¤@ªº¼Æ¦r³q¹L¶ñ¸É«eÀYªº¹s¨ì³Ì±µªñªºªø«×¨Ó¸ÑÄÀ¡C

«ü©w¬°µL¤À¹j²Åªº¦r²Å¦ê¥Î¥¦­Ìµ¹©wªºªø«×¨Ó¸ÑÄÀ¡C¦pªG¦r²Å¦êªø«×¬O8©Î14­Ó¦r²Å¡A¦~¥÷³Q°²©wÀY4­Ó¦r²Åµ¹¥X¡A§_«h¦~¥÷³Q°²©w¥ÑÀY2­Ó¦r²Åµ¹¥X¡C¹ï©ó¦r²Å¦ê¤¤§e²{ªº¦h­Ó³¡¤À¡A¦r²Å¦ê±q¥ª¨ì¥kÃä³Q¸ÑÄÀ¡A¥H§ä¥X¦~¡B¤ë¡B¤é¡B¤p®É¡B¤ÀÄÁ©M¬í­È¡A³o·N¨ýµÛ¡A§A¤£À³¸Ó¨Ï¥Î¤Ö©ó 6 ­Ó¦r²Åªº¦r²Å¦ê¡C¨Ò¦p¡A¦pªG§A«ü©w'9903'¡A»{¬°±N¥Nªí1999¦~3¤ë¡A§A·|µo²{MySQL§â¤@­Ó¡§¹s¡¨¤é´Á´¡¤J¨ì§Aªºªí¤¤¡A³o¬O¦]¬°¦~¥÷©M¤ë¥÷­È99©M03¡A¦ý¬O¤é´Á³¡¤À¥á¥¢(¹s)¡A¦]¦¹¸Ó­È¤£¬O¤@­Ó¦Xªkªº¤é´Á¡C

TIMESTAMP¦C¨Ï¥Î³Q«ü©wªº­Èªº§¹¾ãºë«×ªºÀx¦s¦Xªkªº­È¡A¤£¦Ò¼{Åã¥Ü¤j¤p¡C³o¦³´X­Ó§t·N¡G

¦b¬YºØµ{«×¤W¡A§A¥i¥H§â¤@ºØ¤é´ÁÃþ«¬ªº­È½áµ¹¤@­Ó¤£¦Pªº¤é´ÁÃþ«¬ªº¹ï¹³¡CµM¦Ó¡A³o¥i¯à­È¦³¤@¨Ç§ïÅܩθê°Tªº·l¥¢¡G

·í«ü©w¤é´Á­È®É¡A·í¤ß¬Y¨Ç¯Ê³´¡G

7.3.6.3 TIMEÃþ«¬

MySQLÀ˯Á¨Ã¥H'HH:MM:SS'®æ¦¡Åã¥ÜTIME­È(©Î¹ï¤j¤p®É­È¡A'HHH:MM:SS'®æ¦¡)¡CTIME­Èªº½d³ò¥i¥H±q'-838:59:59'¨ì'838:59:59'¡C¤p®É³¡¤À¥i¯à«Ü¤jªºªº­ì¦]¬OTIMEÃþ«¬¤£¶È¥i¥H³Q¨Ï¥Î¦bªí¥Ü¤@¤Ñªº®É¶¡(¥¦¥²¶·¬O¤£¨ì24­Ó¤p®É)¡A¦Ó¥B¥Î¦bªí¥Ü¦b2­Ó¨Æ¥ó¤§¶¡¸g¹Lªº®É¶¡©Î®É¶¡¶¡¹j(¥¦¥i¥H¬O¤ñ24­Ó¤p®É¤j¨Ç¡A©Î¬Æ¦Ü¬O­t­È)¡C

§A¯à¥Î¦h¤¤®æ¦¡«ü©wTIME­È¡G

¹ï©ó§@¬°¥]¬A¤@­Ó®É¶¡¤À¹j²Åªº¦r²Å¦ê³Q«ü©wªºTIME­È¡A¤£¥²¬°¤p©ó10ªº¤p®É¡B¤ÀÄÁ©Î¬í­È«ü©w2¦ì¼Æ¦r¡A'8:3:2'»P'08:03:02'¬O¤@¼Ëªº¡C

±N¡§µuªº¡¨TIME­È½á­Èµ¹¤@­ÓTIME¦æ¦C¬O­n®æ¥~¤p¤ß¡CMySQL¨Ï¥Î³Ì¥k¦ì¥Nªí¬íªº°²³]¨Ó¸ÑÄÀ­È¡C(MySQL±NTIME­È¸ÑÄÀ¬°¸g¹Lªº®É¶¡¡A¦Ó«D§@¬°¤@¤Ñªº®É¶¡ )¨Ò¦p¡A§A¥i¯à·Q¨ì'11:12'¡B'1112'©M1112·N¨ýµÛ'11:12:00'¡]11ÂI12¤À)¡A¦ý¬OMySQL¸ÑÄÀ¥L­Ì¬°'00:11:12'¡]11¤À12¬í)¡C¦P¼Ë¡A'12'©M12³Q¸ÑÄÀ¬°'00:00:12'¡C

¦ý¬O¶W¥XTIME½d³ò¤§¥~ªº­È¬O¼Ë¦Xªkªº¡A¥¦³Q°Å¤Á¨ì½d³ò¾A·íªººÝÂI­È¡C¨Ò¦p¡A'-850:00:00'©M'850:00:00'³QÅÜ´«¨ì'-838:59:59'©M'838:59:59'¡C

¤£¦XªkªºTIME­È³QÅÜ´«¨ì'00:00:00'¡Cª`·N¡A¬JµM'00:00:00'¥»¨­¬O¤@­Ó¦XªkªºTIME­È¡A¨S¦³¨ä¥L¤èªk°Ï¤Àªí¤¤Àx¦sªº¤@­Ó'00:00:00'­È¡A­ì¨Óªº­È¬O§_³Q«ü©w¬°'00:00:00'©Î¥¦¬O§_¬O¤£¦Xªkªº¡C

7.3.6.4 YEARÃþ«¬

YEARÃþ«¬¬O¤@­Ó 1 ¦r¸`Ãþ«¬¥Î©óªí¥Ü¦~¥÷¡C

MySQLÀ˯Á¨Ã¥B¥HYYYY®æ¦¡Åã¥ÜYEAR­È¡A¨ä½d³ò¬O1901¨ì2155¡C

§A¯à¥Î¦hºØ®æ¦¡«ü©wYEAR­È¡G

¤£¦XªkYEAR­È³QÅÜ´«¨ì0000¡C

7.3.7 ¦r²Å¦êÃþ«¬

¦r²Å¦êÃþ«¬¬OCHAR¡BVARCHAR¡BBLOB¡BTEXT¡BENUM©MSET¡C

7.3.7.1 CHAR©MVARCHARÃþ«¬

CHAR©MVARCHARÃþ«¬¬OÃþ¦üªº¡A¦ý¬O¦b¥L­Ì³QÀx¦s©MÀ˯Áªº¤è¦¡¤£¦P¡C

¤@­ÓCHAR¦Cªºªø«×³Q­×¥¿¬°¦b§A³Ð³yªí®É§A©ÒÁn©úªºªø«×¡Cªø«×¥i¥H¬O1©M255¤§¶¡ªº¥ô¦ó­È¡C¡]¦bMySQL 3.23¤¤¡ACHARªø«×¥i¥H¬O0¡ã255¡C) ·íCHAR­È³QÀx¦s®É¡A¥L­Ì³Q¥ÎªÅ®æ¦b¥kÃä¶ñ¸É¨ì«ü©wªºªø«×¡C·íCHAR­È³QÀ˯Á®É¡A©ì«áªºªÅ®æ³Q§R¥h¡C

¦bVARCHAR¦C¤¤ªº­È¬OÅܪø¦r²Å¦ê¡C§A¥i¥HÁn©ú¤@­ÓVARCHAR¦C¬O¦b1©M255¤§¶¡ªº¥ô¦óªø«×¡A´N¹³¹ïCHAR¦C¡CµM¦Ó¡A»PCHAR¬Û¤Ï¡AVARCHAR­È¥uÀx¦s©Ò»Ýªº¦r²Å¡A¥~¥[¤@­Ó¦r¸`°O¿ýªø«×¡A­È¤£³Q¶ñ¸É¡Q¬Û¤Ï¡A·í­È³QÀx¦s®É¡A©ì«áªºªÅ®æ³Q§R¥h¡C¡]³o­ÓªÅ®æ§R°£¤£¦P©óANSI SQL³W½d¡C¡^

¦pªG§A§â¤@­Ó¶W¹L¦C³Ì¤jªø«×ªº­È½áµ¹¤@­ÓCHAR©ÎVARCHAR¦C¡A­È³QºIÂ_¥H¾A¦X¥¦¡C

¤UªíÅã¥Ü¤F¨âºØÃþ«¬ªº¦Cªº¤£¦P¡A³q¹Lºt¥ÜÀx¦sÅܪø¦r²Å¦ê­È¨ìCHAR(4)©MVARCHAR(4)¦C¡G

­È CHAR(4) Àx¦s»Ý¨D VARCHAR(4) Àx¦s»Ý¨D
'' ' ' 4 ­Ó¦r¸` '' 1 ¦r¸`
'ab' 'ab ' 4 ­Ó¦r¸` 'ab' 3 ­Ó¦r¸`
'abcd' 'abcd' 4 ­Ó¦r¸` 'abcd' 5 ­Ó¦r¸`
'abcdefgh' 'abcd' 4 ­Ó¦r¸` 'abcd' 5 ­Ó¦r¸`

±qCHAR(4)©MVARCHAR(4)¦CÀ˯Áªº­È¦b¨CºØ±¡ªp¤U³£¬O¤@¼Ëªº¡A¦]¬°©ì«áªºªÅ®æ±qÀ˯ÁªºCHAR¦C¤W³Q§R°£¡C

¦bCHAR©MVARCHAR¦C¤¤Àx¦s©M¤ñ¸û­È¬O¥H¤j¤p¼g¤£°Ï¤Àªº¤è¦¡¶i¦æªº¡A°£«D·í®à¤l³Q³Ð«Ø®É¡ABINARYÄݩʳQ«ü©w¡CBINARYÄݩʷN¨ýµÛ¸Ó¦Cªº­È®Ú¾ÚMySQL¦øªA¾¹¥¿¦b¹B¦æªº¾÷¾¹ªºASCII¶¶§Ç¥H¤j¤p¼g°Ï¤Àªº¤è¦¡Àx¦s©M¤ñ¸û¡C

BINARYÄݩʬO¡§Öߩʡ¨ªº¡C³o·N¨ýµÛ¡A¦pªG¼Ð°O¤FBINARYªº¦C¥Î©ó¤@­Óªí¹F¦¡¤¤¡A¾ã­Óªºªí¹F¦¡§@¬°¤@­ÓBINARY­È³Q¤ñ¸û¡C

MySQL¦bªí³Ð«Ø®É¥i¥HÁô§t¦a§ïÅܤ@­ÓCHAR©ÎVARCHAR¦CªºÃþ«¬¡C¨£7.7.1 Áô§tªºªº¦C»¡©ú§ïÅÜ¡C

7.3.7.2 BLOB©MTEXTÃþ«¬

¤@­ÓBLOB¬O¤@­Ó¯à«O¦s¥iÅܼƶqªº¼Æ¾Úªº¤G¶i¨îªº¤j¹ï¹³¡C4­ÓBLOBÃþ«¬TINYBLOB¡BBLOB¡BMEDIUMBLOB©MLONGBLOB¶È¶È¦b¥L­Ì¯à«O¦s­Èªº³Ì¤jªø«×¤è­±¦³©Ò¤£¦P¡C¨£7.3.1 ¦CÃþ«¬Àx¦s»Ý¨D¡C

4­ÓTEXTÃþ«¬TINYTEXT¡BTEXT¡BMEDIUMTEXT©MLONGTEXT¹ïÀ³©ó4­ÓBLOBÃþ«¬¡A¨Ã¥B¦³¦P¼Ëªº³Ì¤jªø«×©MÀx¦s»Ý¨D¡C¦bBLOB©MTEXTÃþ«¬¤§¶¡ªº°ß¤@®t§O¬O¹ïBLOB­Èªº±Æ§Ç©M¤ñ¸û¥H¤j¤p¼g±Ó·P¤è¦¡°õ¦æ¡A¦Ó¹ïTEXT­È¬O¤j¤p¼g¤£±Ó·Pªº¡C´«¥y¸Ü»¡¡A¤@­ÓTEXT¬O¤@­Ó¤j¤p¼g¤£±Ó·PªºBLOB¡C

¦pªG§A§â¤@­Ó¶W¹L¦CÃþ«¬³Ì¤jªø«×ªº­È½áµ¹¤@­ÓBLOB©ÎTEXT¦C¡A­È³QºIÂ_¥H¾A¦X¥¦¡C

¦b¤j¦h¼Æ¤è­±¡A§A¥i¥H»{¬°¤@­ÓTEXT¦æ¦C¬O§A©Ò§Æ±æ¤jªº¤@­ÓVARCHAR¦C¡C¦P¼Ë¡A§A¥i¥H»{¬°¤@­ÓBLOB¦C¬O¤@­ÓVARCHAR BINARY¦C¡C®t§O¬O¡G

MyODBC©w¸qBLOB¬°LONGVARBINARY¡ATEXT­È¬°LONGVARCHAR¡C

¦]¬°BLOB©MTEXT­È¥i¥H¬O«D±`ªøªº¡A·í¨Ï¥Î¥L­Ì®É¡A§A¥i¯à¹J¨ì¤@¨Ç­­¨î¡G

ª`·N¡A¨C­ÓBLOB©ÎTEXT­È¤º³¡¥Ñ¤@­Ó¿W¥ß¤À°tªº¹ï¹³ªí¥Ü¡C³o»P©Ò¦³ªº¨ä¥L¦CÃþ«¬¬Û¤Ï¡A¥¦­Ì¬O¦b¥´¶}ªí®É¡A«ö¦C³Q¤À°t¤@¦¸Àx¦s¡C

7.3.7.3 ENUMÃþ«¬

¤@­ÓENUM¬O¤@­Ó¦r²Å¹ï¹³¡A¨ä­È³q±`±q¤@­Ó¦bªí³Ð«Ø®É©ú½T³Q¦CÁ|ªº¤¹³\­Èªº¤@±iªí¤¤¿ï¾Ü¡C

¦b¤U¦Cªº¬Y­Ó±¡§Î¤U¡A­È¤]¥i¥HªÅ¦r²Å¦ê("")©ÎNULL¡G

¨CªTÁ|­È¦³¤@­Ó½s¸¹¡G

¨Ò¦p¡A«ü©w¬°ENUM("one", "two", "three")ªº¦C¥i¥H¦³Åã¥Ü¦b¤U­±ªº­Èªº¥ô¦ó¤@­Ó¡C¨C­Ó­Èªº½s¸¹¤]³QÅã¥Ü¡G

­È ½s¸¹
NULL NULL
"" 0
"one" 1
"two" 2
"three" 3

ªTÁ|¥i¥H¦³³Ì¤j65535­Ó¦¨­û¡C

·í§A§â­È½áµ¹¤@­ÓENUM¦C®É¡A¦r¥Àªº¤j¤p¼g¬OµLÃöºò­nªº¡CµM¦Ó¡A¥H«á±q¦C¤¤À˯Áªº­È¤j¤p¼g¤Ç°t¦bªí³Ð«Ø®É¥Î¨Ó«ü©w¤¹³\­Èªº­Èªº¤j¤p¼g¡C

¦pªG§A¦b¤@­Ó¼Æ¦rªº¤W¤U¤åÀô¹Ò¤¤À˯Á¤@­ÓENUM¡A¦C­Èªº½s¸¹³Qªð¦^¡C¦pªG§AÀx¦s¤@­Ó¼Æ¦r¨ì¤@­ÓENUM¤¤¡A¼Æ¦r³Q·í§@¤@­Ó¼Ð¸¹¡A¨Ã¥BÀx¦sªº­È¬O¸Ó½s¸¹ªºªTÁ|¦¨­û¡C

ENUM­È®Ú¾Ú¦C»¡©ú¦CÁ|ªºªTÁ|¦¨­ûªº¦¸§Ç³Q±Æ§Ç¡C¡]´«¥y¸Ü»¡¡AENUM­È®Ú¾Ú¥L­Ìªº½s¸¹¼Æ¦r³Q±Æ§Ç) ¨Ò¦p¡A¹ïENUM("a", "b")¡A"a"±Æ¦b"b"«e­±¡A¦ý¬O¹ïENUM("b", "a")¡A"b"±Æ¦b"a"«e­±¡CªÅ¦r²Å¦ê±Æ§Ç«DªÅ¦r²Å¦ê¤§«e¡A¨Ã¥BNULL±Æ¦b©Ò¦³¨ä¥LªTÁ|­È¤§«e¡C

¦pªG§A·Q­n±o¨ì¤@­ÓENUM¦Cªº©Ò¦³¥i¯àªº­È¡A§AÀ³¸Ó¨Ï¥Î¡GSHOW COLUMNS FROM table_name LIKE enum_column_name¨Ã¥B¤ÀªR¦b²Ä¤G¦CªºENUM©w¸q¡C

7.3.7.4 SETÃþ«¬

¤@­ÓSET¬O¥i¥H¦³¹s©Î¦h­Ó­Èªº¤@­Ó¦r²Å¦ê¹ï¹³¡A¨ä¨C¤@­Ó¥²¶·±qªí³Ð«Ø³y³Q«ü©w¤Fªº¤¹³\­Èªº¤@±i¦Cªí¤¤³Q¿ï¾Ü¡C¥Ñ¦h­Ó¶°¦X¦¨­û²Õ¦¨ªºSET¦C³q¹L¥Ñ¥Ñ³r¸¹¤À¹j(¡§,¡¨)ªº¦¨­û³Q«ü©w¡A¨ä±À½×¬O¸ÓSET¦¨­û­È¤£¯à¥]§t³r¸¹¥»¨­¡C

¨Ò¦p, ¤@­Ó«ü©w¬°SET("one", "two") NOT NULLªº¦C¥i¥H¦³³o¨Ç­Èªº¥ô¦ó¤@­Ó¡G

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

¤@­ÓSET¯à¦³³Ì¦h64­Ó¤£¦Pªº¦¨­û¡C 

MySQL¥Î¼Æ¦r­ÈÀx¦sSET­È¡AÀx¦s­Èªº§C¶¥¦ì¹ïÀ³©ó²Ä¤@­Ó¶°¦X¦¨­û¡C¦pªG§A¦b¼Æ¦r¤W¤U¤å¤¤À˯Á¤@­ÓSET­È¡AÀ˯Áªº­È§â¦ì³]¸m¦ì¹ïÀ³²Õ¦¨¦C­Èªº¶°¦X¦¨­û¡C¦pªG¤@­Ó¼Æ¦r³QÀx¦s¶i¤@­ÓSET¦C¡A¦b¼Æ¦rªº¤G¶i¨îªí¥Ü¤¤³]¸mªº¦ì¨M©w¤F¦b¦C¤¤ªº¶°¦X¦¨­û¡C°²©w¤@­Ó¦C³Q«ü©w¬°SET("a","b","c","d")¡A¨º»ò¦¨­û¦³¤U¦C¦ì­È¡G

SET ¦¨­û ¤Q¶i¨îªº­È ¤G¶i¨îªº­È
a 1 0001
b 2 0010
c 4 0100
d 8 1000

¦pªG§Aµ¹¸Ó¦C½á­È9¡A§Y¤G¶i¨îªº1001¡A³o¼Ë²Ä¤@­Ó©M²Ä¥|­ÓSET­È¦¨­û"a"©M"d"³Q¿ï¾Ü¨Ã¥Bµ²ªG­È¬O"a,d"¡C

¹ï©ó¥]§t¶W¹L¤@­ÓSET¦¨­ûªº­È¡A·í§A´¡¤J­È®É¡AµL©Ò¿×¥H¤°»ò¶¶§Ç¦CÁ|­È¡A¤]µL©Ò¿×µ¹©wªº­È¦CÁ|¤F¦h¤Ö¦¸¡C·í¥H«áÀ˯Á­È®É¡A¦b­È¤¤ªº¨C­Ó¦¨­û±N¥X²{¤@¦¸¡A®Ú¾Ú¥L­Ì¦bªí³Ð«Ø®É³Q«ü©wªº¶¶§Ç¦C¥X¦¨­û¡C¨Ò¦p¡A¦pªG¦C«ü©w¬°SET("a","b","c","d")¡A¨º»ò"a,d"¡B"d,a"©M"d,a,a,d,d"¦bÀ˯Á®É±N§¡§@¬°"a,d"¥X²{¡C

SET­È¥H¼Æ¦r¦¸§Ç³Q±Æ§Ç¡CNULL«ü±Æ¦b«DNULL SET­È¤§«e¡C

³q±`¡A§A¨Ï¥ÎLIKE¾Þ§@²Å©ÎFIND_IN_SET()¨ç¼Æ°õ¦æ¦b¤@­ÓSET¤Wªº¤@­ÓSELECT¡G

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

¦ý¬O¤U¦C¤]·|¤u§@¡G

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

³o¨Ç»y¥yªº²Ä¤@­Ó»y¥y´M§ä¤@­Óºë½Tªº¤Ç°t¡C²Ä¤G­Ó´M§ä¥]§t²Ä¤@­Ó¶°¦X¦¨­ûªº­È¡C

¦pªG§A·Q­n±o¨ì¤@­ÓSET¦Cªº©Ò¦³¥i¯àªº­È¡A§AÀ³¸Ó¨Ï¥Î¡GSHOW COLUMNS FROM table_name LIKE set_column_name¨Ã¥B¤ÀªR¦b²Ä¤G¦CªºSET©w¸q¡C

7.3.8 ¬°¦C¿ï¾Ü¥¿½TªºÃþ«¬

¬°¤F³Ì¦³®Ä¦a¨Ï¥ÎÀx¦sªÅ¶¡¡A¸ÕµÛ¦b©Ò¦³ªº±¡ªp¤U¨Ï¥Î³Ìºë½TªºÃþ«¬¡C¨Ò¦p¡A¦pªG¤@­Ó¾ã¼Æ¦C³Q¥Î©ó¦b¤§¶¡1©M99999ªº­È¡A MEDIUMINT UNSIGNED¬O³Ì¦nªºÃþ«¬¡C

³f¹ô­Èªººë½Tªí¥Ü¬O¤@­Ó±`¨£ªº°ÝÃD¡C¦bMySQL¡A§AÀ³¸Ó¨Ï¥ÎDECIMALÃþ«¬¡A¥¦§@¬°¤@­Ó¦r²Å¦ê³QÀx¦s¡A¤£·|µo¥Íºë½T©Êªº·l¥¢¡C¦pªGºë½T©Ê¤£¬O¤Ó­«­n¡ADOUBLEÃþ«¬¤]¬O¨¬°÷¦nªº¡C

¹ï°ªºë«×¡A§AÁ`¬O¯àÅÜ´«¨ì¥H¤@­ÓBIGINTÀx¦sªº©wÂIÃþ«¬¡C³o¤¹³\§A¥Î¾ã¼Æ°µ©Ò¦³ªº­pºâ¡A¨Ã¥B¶È¦b¥²­n®É±Nµ²ªGÂà´«¦^¯BÂI­È¡C¨£10.6 ¿ï¾Ü¤@­ÓªíÃþ«¬¡C

7.3.9 ¦C¯Á¤Þ

©Ò¦³ªºMySQL¦CÃþ«¬¯à³Q¯Á¤Þ¡C¦b¬ÛÃöªº¦C¤Wªº¨Ï¥Î¯Á¤Þ¬O§ï¶iSELECT¾Þ§@©Ê¯àªº³Ì¦n¤èªk¡C

¤@­Óªí³Ì¦h¥i¦³16­Ó¯Á¤Þ¡C³Ì¤j¯Á¤Þªø«×¬O256­Ó¦r¸`¡AºÉºÞ³o¥i¥H¦b½sĶMySQL®É³Q§ïÅÜ¡C

¹ï©óCHAR©MVARCHAR¦C¡A§A¥i¥H¯Á¤Þ¦Cªº«eºó¡C³o§ó§Ö¨Ã¥B¤ñ¯Á¤Þ¾ã­Ó¦C»Ý­n¸û¤ÖªººÏºÐªÅ¶¡¡C¦bCREATE TABLE»y¥y¤¤¯Á¤Þ¦C«eºóªº»yªk¬Ý°_¨Ó¹³³o¼Ë¡G

KEY index_name (col_name(length)) 

¤U­±ªº¨Ò¤l¬°name¦CªºÀY10­Ó¦r²Å³Ð«Ø¤@­Ó¯Á¤Þ¡G

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

¹ï©óBLOB©MTEXT¦C¡A§A¥²¶·¯Á¤Þ¦Cªº«eºó¡A§A¤£¯à¯Á¤Þ¦Cªº¥þ³¡¡C

7.3.10 ¦h¦C¯Á¤Þ

MySQL¯à¦b¦h­Ó¦C¤W³Ð«Ø¯Á¤Þ¡C¤@­Ó¯Á¤Þ¥i¥H¥Ñ³Ì¦h15­Ó¦C²Õ¦¨¡C¡]¦bCHAR©MVARCHAR¦C¤W¡A§A¤]¥i¥H¨Ï¥Î¦Cªº«eºó§@¬°¤@­Ó¯Á¤Þªº³¡¤À)¡C

¤@­Ó¦h­«¦C¯Á¤Þ¥i¥H»{¬°¬O¥]§t³q¹L¦X¨Ã(concatenate)¯Á¤Þ¦C­È³Ð«Øªº­Èªº¤@­Ó±Æ§Ç¼Æ²Õ¡C

·í§A¬°¦b¤@­ÓWHERE¤l¥y¯Á¤Þªº²Ä¤@¦C«ü©w¤wª¾ªº¼Æ¶q®É¡AMySQL¥H³oºØ¤è¦¡¨Ï¥Î¦h­«¦C¯Á¤Þ¨Ï±o¬d¸ß«D±`§Ö³t¡A§Y¨Ï§A¤£¬°¨ä¥L¦C«ü©w­È¡C

°²©w¤@±iªí¨Ï¥Î¤U¦C»¡©ú³Ð«Ø¡G

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¬O¤@­Ó¦blast_name©Mfirst_name¤Wªº¯Á¤Þ¡A³o­Ó¯Á¤Þ±N³Q¥Î©ó¦blast_name©Îlast_name©Mfirst_nameªº¤@­Ó¤wª¾½d³ò¤º«ü©w­Èªº¬d¸ß¡A¦]¦¹¡Aname¯Á¤Þ±N¨Ï¥Î¦b¤U¦C¬d¸ß¤¤¡G

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";

µM¦Ó¡Aname¯Á¤Þ±N¤£¥Î¦b¤U¦C¸ß°Ý¤¤¡G

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

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

Ãö©óMySQL¨Ï¥Î¯Á¤Þ§ï¶i©Ê¯àªº¤è¦¡ªº§ó¦hªº¸ê°T¡A¨£10.4 ¨Ï¥ÎMySQL¯Á¤Þ¡C

7.3.11 ¨Ï¥Î¨Ó¦Û¨ä¥L¸ê®Æ®w¤ÞÀºªº¦CÃþ«¬

¬°¤F¸ò®e©ö¦a¨Ï¥Î¬°¨ä¥L¨ÑÀ³°ÓªºSQL¹ê²{½s¼gªº¥N½X¡A¤UªíÅã¥Ü¤FMySQL¬M®gªº¦CÃþ«¬¡C³o¨Ç¬M®g¨Ï±o±q¨ä¥L¸ê®Æ®w¤ÞÀº²¾°Êªí©w¸q¨ìMySQL§ó®e©ö¡G

¨ä¥L¨ÑÀ³°ÓÃþ«¬ 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

¦CÃþ«¬¬M®gµo¥Í¦bªí³Ð«Ø®É¡C¦pªG§A¥Î¨ä¥L¨ÑÀ³°Ó¨Ï¥ÎªºÃþ«¬³Ð«Øªí¡A¨º»òµo¥X¤@­ÓDESCRIBE tbl_name»y¥y¡AMySQL¨Ï¥Îµ¥»ùªºMySQLÃþ«¬³ø§iªíµ²ºc¡C

7.4 ¥Î¦bSELECT©MWHERE¤l¥y¤¤ªº¨ç¼Æ

¦b¤@­ÓSQL»y¥y¤¤ªºselect_expression©Îwhere_definition¥i¥Ñ¨Ï¥Î¤U­±´y­zªº¨ç¼Æªº¥ô¦óªí¹F¦¡²Õ¦¨¡C

¥]§tNULLªº¤@­Óªí¹F¦¡Á`¬O²£¥Í¤@­ÓNULL­È¡A§_«h°£«Dªí¹F¦¡©Ò¥]§tªº¾Þ§@²Å©M¨ç¼Æ¦b¤åÀɤ¤»¡©ú¡C

ª`·N¡G¦b¤@­Ó¨ç¼Æ¦W©M¸òÀH¥¦ªº¬A¸¹¤§¶¡¤£³\¨S¦³ªÅ®æ¡C³oÀ°§UMySQL¤ÀªR¾¹°Ï¤À¨ç¼Æ½Õ¥Î©M¨ã¦³¬Û¦P¦W¦rªº¹ïªí©Î¦Cªº¤Þ¥Î¡AºÉºÞ¤¹³\¦b°Ñ¼Æ©P³ò¦³ªÅ®æ¡C

¬°¤F²¼ä¡A¨Ò¤l¥HÁY¼g§Î¦¡Åã¥Ü±qmysqlµ{¦¡¿é¥X¡C¦]¦¹¡G

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

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

³QÅã¥Ü¬°³o¼Ë¡G

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

7.4.1 ¤À²Õ¨ç¼Æ

( ... )
¬A¸¹¡C¨Ï¥Î¥¦­Ì¨Ó±j¨î¦b¤@­Óªí¹F¦¡ªº­pºâ¶¶§Ç¡C
mysql> select 1+2*3;
        -> 7
mysql> select (1+2)*3;
        -> 9

7.4.2 ±`¥Îªººâ³N¾Þ§@

¤@¯ëªººâ³N¾Þ§@²Å¬O¥i¥Îªº¡Cª`·N¦b-¡B+©M*±¡ªp¤U¡A¦pªG¨â­Ó°Ñ¼Æ¬O¾ã¼Æ¡Aµ²ªG¥ÎBIGINT¡]64¦ì¡^ºë«×­pºâ¡I  

+
¥[ªk
mysql> select 3+5;
        -> 8
-
´îªk
mysql> select 3-5;
        -> -2  
*
­¼ªk
mysql> select 3*5;
        -> 15
mysql> select 18014398509481984*18014398509481984.0;
        -> 324518553658426726783156020576256.0
mysql> select 18014398509481984*18014398509481984;
        -> 0

³Ì«á¤@­Óªí¹F¦¡ªºµ²ªG¬O¤£¥¿½Tªº¡A¦]¬°¾ã¼Æ­¼¿nªºµ²ªG¶W¹L¥ÎBIGINT­pºâªº64¦ì½d³ò¡C

/
°£ªk
mysql> select 3/5;
        -> 0.60

³Q¹s°£²£¥Í¤@­ÓNULLµ²ªG¡G

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

¤@­Ó°£ªk¥ÎBIGINTºâ³N­pºâ¡A¥u­n¦b¥¦ªºµ²ªG³QÂà´«¨ì¤@­Ó¾ã¼Æªº¤W¤U¤å¤¤°õ¦æ¡I

7.4.3 ¦ì¨ç¼Æ

MySQL¬°¦ì¾Þ§@¨Ï¥ÎBIGINT¡]64¦ì)ºâªk¡A¦]¦¹³o¨Ç¾Þ§@²Å¦³³Ì¤j64¦ìªº¤@­Ó½d³ò¡C

|
¦ì©Î
mysql> select 29 | 15;
        -> 31
&
¦ì»P
mysql> select 29 & 15;
        -> 13
 
<<
¥ª²¾¦ì¤@­Óªø(BIGINT)¼Æ¦r¡C
mysql> select 1 << 2
        -> 4
 
>>
¥k²¾¦ì¤@­Óªø(BIGINT)¼Æ¦r¡C
mysql> select 4 >> 2
        -> 1 
~
ÄA­Ë©Ò¦³ªº¦ì¡C
mysql> select 5 & ~1
        -> 4
 
BIT_COUNT(N)
ªð¦^¦b°Ñ¼ÆN³]©wªº¦ìªº¼Æ¶q¡C
mysql> select BIT_COUNT(29);
        -> 4
  

7.4.4 ÅÞ¿è¹Bºâ

©Ò¦³ªºÅÞ¿è¨ç¼Æªð¦^1¡]TRUE¡^©Î0¡]FALSE¡^¡C

NOT
!
ÅÞ¿è«D¡C¦pªG°Ñ¼Æ¬O0¡Aªð¦^1¡A§_«hªð¦^0¡C¨Ò¥~¡G NOT NULLªð¦^NULL¡C
mysql> select NOT 1;
        -> 0
mysql> select NOT NULL;
        -> NULL
mysql> select ! (1+1);
        -> 0
mysql> select ! 1+1;
        -> 1
³Ì«áªº¨Ò¤lªð¦^1¡A¦]¬°ªí¹F¦¡§@¬°(!1)+1­pºâ¡C   
OR
¡@
||
ÅÞ¿è©Î¡C¦pªG¥ô¦ó¤@­Ó°Ñ¼Æ¤£¬O0¨Ã¥B¤£NULL¡Aªð¦^1¡C
mysql> select 1 || 0;
        -> 1
mysql> select 0 || 0;
        -> 0
mysql> select 1 || NULL;
        -> 1
 
AND
¡@
&&
ÅÞ¿è»P¡C¦pªG¥ô¦ó¤@­Ó°Ñ¼Æ¬O0©ÎNULL¡Aªð¦^0¡A§_«hªð¦^1¡C
mysql> select 1 && NULL;
        -> 0
mysql> select 1 && 0;
        -> 0
   

7.4.5 ¤ñ¸û¹Bºâ²Å

¤ñ¸û¾Þ§@±o¥X­È1¡]TRUE¡^¡B0¡]FALSE¡^©ÎNULLµ¥µ²ªG¡C³o¨Ç¨ç¼Æ¤u§@¹B¥Î¦b¼Æ¦r©M¦r²Å¦ê¤W¡C·í»Ý­n®É¡A¦r²Å¦ê¦Û°Ê¦a³QÅÜ´«¨ì¼Æ¦r¥B¼Æ¦r¨ì¦r²Å¦ê(¦p¦bPerl)¡C

MySQL¨Ï¥Î¤U¦C³W«h°õ¦æ¤ñ¸û¡G

¹w³]¦a¡A¦r²Å¦ê¨Ï¥Î·í«eªº¦r²Å¶°¥H¤j¤p¼g±Ó·Pªº¤è¦¡¶i¦æ(¹w³]¬°ISO-8859-1 Latin1¡A¥¦¹ï­^»y¹B¥Î±o«Ü¥X¦â)¡C

¤U­±ªº¨Ò¤lºt¥Ü¤F¹ï©ó¤ñ¸û¾Þ§@¦r²Å¦ê¨ì¼Æ¦rªºÂà´«¡G

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
<=
¤p©ó©Îµ¥©ó
mysql> select 0.1 <= 2;
        -> 1
 
<
¤p©ó
mysql> select 2 <= 2;
        -> 1
  
>=
¤j©ó©Îµ¥©ó
mysql> select 2 >= 2;
        -> 1 
>
¤j©ó
mysql> select 2 > 2;
        -> 0
<=>
¦w¥þµ¥©óNull
mysql> select 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
        -> 1 1 0
  
IS NULL
¡@
IS NOT NULL
´ú¸Õ­È¬O§_¬O©Î¤£¬ONULL
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
¦pªGexpr¹ï¤j©ó©Îµ¥©ómin¥Bexpr¬O¤p©ó©Îµ¥©ómax¡ABETWEENªð¦^1¡A§_«h¥¦ªð¦^0¡C¦pªG©Ò¦³ªº°Ñ¼ÆÃþ«¬¬O¤@¼Ë±o¡A³oµ¥»ù©óªí¹F¦¡(min <= expr AND expr <= max)¡C²Ä¤@­Ó°Ñ¼Æ(expr)¨M©w¤ñ¸û¦p¦ó³Q°õ¦æ¡C¦pªGexpr¬O¤@­Ó¤j¤p¼g¤£±Ó·Pªº¦r²Å¦êªí¹F¦¡¡A¶i¦æ¤@­Ó¤j¤p¼g¤£±Ó·Pªº¦r²Å¦ê¤ñ¸û¡C¦pªGexpr¬O¤@­Ó¤j¤p¼g±Ó·Pªº¦r²Å¦êªí¹F¦¡¡A¶i¦æ¤@­Ó¤j¤p¼g±Ó·Pªº¦r²Å¦ê¤ñ¸û¡C¦pªGexpr¬O¤@­Ó¾ã¼Æªí¹F¦¡¡A¶i¦æ¾ã¼Æ¤ñ¸û¡C§_«h¡A¶i¦æ¤@­Ó¯BÂI(¹ê¼Æ)¤ñ¸û¡C
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,...)
¦pªGexpr¬O¦bINªí¤¤ªº¥ô¦ó­È¡Aªð¦^1¡A§_«hªð¦^0¡C¦pªG©Ò¦³ªº­È¬O±`¼Æ¡A¨º»ò©Ò¦³ªº­È®Ú¾ÚexprÃþ«¬³Q­pºâ©M±Æ§Ç¡AµM«á¶µ¥Øªº·j¯Á¬O¥Î¤G¶i¨îªº·j¯Á§¹¦¨¡C³o·N¨ýµÛ¦pªGIN­Èªí¥þ³¡¥Ñ±`¼Æ²Õ¦¨¡AIN¬O«Ü§Öªº¡C¦pªGexpr¬O¤@­Ó¤j¤p¼g±Ó·Pªº¦r²Å¦êªí¹F¦¡¡A¦r²Å¦ê¤ñ¸û¥H¤j¤p¼g±Ó·P¤è¦¡°õ¦æ¡C
mysql> select 2 IN (0,3,5,'wefwf');
        -> 0
mysql> select 'wefwf' IN (0,3,5,'wefwf');
        -> 1 
expr NOT IN (value,...)
»PNOT (expr IN (value,...))¬Û¦P¡C
ISNULL(expr)
¦pªGexpr¬ONULL¡AISNULL()ªð¦^1¡A§_«h¥¦ªð¦^0¡C
mysql> select ISNULL(1+1);
        -> 0
mysql> select ISNULL(1/0);
        -> 1

ª`·N¡A¨Ï¥Î=ªºNULLªº­È¤ñ¸ûÁ`¬°°²¡I

COALESCE(list)
¦^¨Ólist¤¤²Ä¤@­Ó«DNULLªº³æ¤¸¡C
mysql> select COALESCE(NULL,1);
        -> 1
mysql> select COALESCE(NULL,NULL,NULL);
        -> NULL
INTERVAL(N,N1,N2,N3,...)
¦pªGN< N1¡Aªð¦^0¡A¦pªGN< N2¡Aªð¦^1µ¥µ¥¡C©Ò¦³ªº°Ñ¼Æ³Q·í§@¾ã¼Æ¡C¬°¤F¨ç¼Æ¯à¥¿½T¦a¤u§@¡A¥¦­n¨DN1<N2<N3< ...<Nn¡C³o¬O¦]¬°¨Ï¥Î¤G¶i¨î·j¯Á(«Ü§Ö)¡C
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 ¦r²Å¦ê¤ñ¸û¨ç¼Æ

³q±`¡A¦pªG¦b¦r²Å¦ê¤ñ¸û¤¤ªº¥ô¦óªí¹F¦¡¬O°Ï¤À¤j¤p¼gªº¡A¤ñ¸û¥H¤j¤p¼g±Ó·Pªº¤è¦¡°õ¦æ¡C

expr LIKE pat [ESCAPE 'escape-char']
¨Ï¥ÎSQLªºÂ²³æªº¥¿³Wªí¹F¦¡¤ñ¸ûªº¼Ò¦¡¤Ç°t¡Cªð¦^1¡]TRUE¡^©Î0¡]FALSE¡^¡C¥ÎLIKE¡A§A¥i¥H¦b¼Ò¦¡¤¤¨Ï¥Î¤U¦C2­Ó³q°t²Å¦r²Å¡G
% ¤Ç°t¥ô¦ó¼Æ¥Øªº¦r²Å¡A¬Æ¦Ü¹s­Ó¦r²Å
_ ºë½T¤Ç°t¤@­Ó¦r²Å
mysql> select 'David!' LIKE 'David_';
        -> 1
mysql> select 'David!' LIKE '%D%v%';
        -> 1

¬°¤F´ú¸Õ¤@­Ó³q°t²Åªº¤å¦r¹ê¨Ò¡A¥ÎÂà¸q¦r²Åªº¥[¦b¦r²Å«e­±¡C¦pªG§A¤£«ü©wESCAPE¦r²Å¡A°²©w¬°¡§\¡¨¡G

\% ¤Ç°t¤@%¦r²Å
\_ ¤Ç°t¤@_¦r²Å
mysql> select 'David!' LIKE 'David\_';
        -> 0
mysql> select 'David_' LIKE 'David\_';
        -> 1

¬°¤F«ü©w¤@­Ó¤£¦PªºÂà¸q¦r²Å¡A¨Ï¥ÎESCAPE¤l¥y¡G 
mysql> select 'David_' LIKE 'David|_' ESCAPE '|';
        -> 1

LIKE¤¹³\¥Î¦b¼Æ¦rªºªí¹F¦¡¤W¡I¡]³o¬OMySQL¹ïANSI SQL LIKEªº¤@­ÓÂX¥R¡C)

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

ª`·N¡G¦]¬°MySQL¦b¦r²Å¦ê¤¤¨Ï¥ÎCÂà¸q»yªk(¨Ò¦p¡A¡§\n¡¨)¡A§A¥²¶·¦b§AªºLIKE¦r²Å¦ê¤¤­«½Æ¥ô¦ó¡§\¡¨¡C¨Ò¦p¡A¬°¤F¬d§ä¡§\n¡¨¡A«ü©w¥¦¬°¡§ \\n¡¨¡A¬°¤F¬d§ä¡§\¡¨¡A«ü©w¥¦¬°¡§\\\\¡¨¡]¤Ï±×½u³Q¤ÀªR¾¹­é¥h¤@¦¸¡A¥t¤@¦¸¬O¦b¼Ò¦¡¤Ç°t§¹¦¨®É¡A¯d¤U¤@±ø³æ¿Wªº¤Ï±×½u³Q¤Ç°t)¡C

expr NOT LIKE pat [ESCAPE 'escape-char']
»PNOT (expr LIKE pat [ESCAPE 'escape-char'])¬Û¦P¡C
expr REGEXP pat
¡@
expr RLIKE pat
°õ¦æ¤@­Ó¦r²Å¦êªí¹F¦¡expr¹ï¤@­Ó¼Ò¦¡patªº¼Ò¦¡¤Ç°t¡C¼Ò¦¡¥i¥H¬O¤@­ÓÂX¥Rªº¥¿«hªí¹F¦¡¡C¨£MySQL ¥¿«hªí¹F¦¡¥yªkªº H ´y­z.¦pªGexpr¤Ç°tpat¡Aªð¦^1¡A§_«hªð¦^0¡CRLIKE¬OREGEXPªº¤@­Ó¦P¸qµü¡A´£¨Ñ¤F»PmSQLªº­Ý®e©Ê¡Cª`·N¡G¦]¬°MySQL¦b¦r²Å¦ê¤¤¨Ï¥ÎCÂà¸q»yªk(¨Ò¦p¡A¡§\n¡¨), §A¥²¶·¦b§AªºREGEXP¦r²Å¦ê­«½Æ¥ô¦ó¡§\¡¨¡C¦bMySQL3.23.4¤¤¡AREGEXP¹ï©ó¥¿±`ªº(¤£¬O¤G¶i¨î)¦r²Å¦ê¬O©¿²¤¤j¤p¼g¡C
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
·í¨M©w¤@­Ó¦r²ÅªºÃþ«¬®É¡AREGEXP©MRLIKE¨Ï¥Î·í«eªº¦r²Å¶°(¹w³]¬°ISO-8859-1 Latin1)¡C
expr NOT REGEXP pat
¡@
expr NOT RLIKE pat
»PNOT (expr REGEXP pat)¬Û¦P¡C
STRCMP(expr1,expr2)
¦pªG¦r²Å¦ê¬Û¦P¡ASTRCMP()¦^¨Ó0¡A¦pªG²Ä¤@°Ñ¼Æ®Ú¾Ú·í«eªº±Æ§Ç¦¸§Ç¤p©ó²Ä¤G­Ó¡Aªð¦^-1¡A§_«hªð¦^1¡C
mysql> select STRCMP('text', 'text2');
        -> -1
mysql> select STRCMP('text2', 'text');
        -> 1
mysql> select STRCMP('text', 'text');
        -> 0
 

7.4.7 Ãþ«¬Âà´«¹Bºâ²Å

BINARY
BINARY¾Þ§@²Å±j¨î¸òÀH¥¦«á­±ªº¦r²Å¦ê¬°¤@­Ó¤G¶i¨î¦r²Å¦ê¡C§Y¨Ï¦C¨S³Q©w¸q¬°BINARY©ÎBLOB¡A³o¬O¤@­Ó±j¨î¦C¤ñ¸û°Ï¤À¤j¤p¼gªºÂ²©ö¤èªk¡C
mysql> select "a" = "A";
        -> 1
mysql> select BINARY "a" = "A";
        -> 0

BINARY¦bMySQL 3.23.0¤¤³Q¤Þ¤J¡C

7.4.8 ±±¨î¬y¨ç¼Æ

IFNULL(expr1,expr2)
¦pªGexpr1¤£¬ONULL¡AIFNULL()ªð¦^expr1¡A§_«h¥¦ªð¦^expr2¡CIFNULL()ªð¦^¤@­Ó¼Æ¦r©Î¦r²Å¦ê­È¡A¨ú¨M©ó¥¦³Q¨Ï¥Îªº¤W¤U¤åÀô¹Ò¡C
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)
¦pªGexpr1¬OTRUE(expr1<>0¥Bexpr1<>NULL)¡A¨º»òIF()ªð¦^expr2¡A§_«h¥¦ªð¦^expr3¡CIF()ªð¦^¤@­Ó¼Æ¦r©Î¦r²Å¦ê­È¡A¨ú¨M©ó¥¦³Q¨Ï¥Îªº¤W¤U¤å¡C
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§@¬°¾ã¼Æ­È³Q­pºâ¡A¥¦·N¨ýµÛ¦pªG§A¥¿¦b´ú¸Õ¯BÂI©Î¦r²Å¦ê­È¡A§AÀ³¸Ó¨Ï¥Î¤@­Ó¤ñ¸û¾Þ§@¨Ó°µ¡C

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

¦b¤W­±ªº²Ä¤@ºØ±¡ªp¤¤¡AIF(0.1)ªð¦^0¡A¦]¬°0.1³QÅÜ´«¨ì¾ã¼Æ­È, ¾É­P´ú¸ÕIF(0)¡C³o¥i¯à¤£¬O§A´Á±æªº¡C¦b²Ä¤GºØ±¡ªp¤¤¡A¤ñ¸û´ú¸Õ­ì¨Óªº¯BÂI­È¬Ý¥¦¬O§_¬O«D¹s¡A¤ñ¸ûªºµ²ªG³Q¥Î§@¤@­Ó¾ã¼Æ¡C

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¡A¨ä¤¤value=compare-value¡C²Ä¤G­Óª©¥»¤¤¦pªG²Ä¤@­Ó±ø¥ó¬°¯u¡Aªð¦^result¡C¦pªG¨S¦³¤Ç°tªºresult­È¡A¨º»òµ²ªG¦bELSE«áªºresult³Qªð¦^¡C¦pªG¨S¦³ELSE³¡¤À¡A¨º»òNULL³Qªð¦^¡C
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 ¼Æ¾Ç¨ç¼Æ

©Ò¦³ªº¼Æ¾Ç¨ç¼Æ¦b¤@­Ó¥X¿ùªº±¡ªp¤Uªð¦^NULL¡C

-
³æ¥Ø´î¡C§ïÅܰѼƪº²Å¸¹¡C
mysql> select - 2;
ª`·N¡A¦pªG³o­Ó¾Þ§@²Å»P¤@­ÓBIGINT¨Ï¥Î¡Aªð¦^­È¬O¤@­ÓBIGINT¡I³o·N¨ýµÛ§AÀ³¸ÓÁ×§K¦b¾ã¼Æ¤W¨Ï¥Î-¡A¨º¥i¯à¦³­È-2^63¡I 
ABS(X)
ªð¦^Xªºµ´¹ï­È¡C
mysql> select ABS(2);
        -> 2
mysql> select ABS(-32);
        -> 32

¸Ó¥\¯à¥i¦w¥þ¥Î©óBIGINT­È¡C

SIGN(X)
ªð¦^°Ñ¼Æªº²Å¸¹¡A¬°-1¡B0©Î1¡A¨ú¨M©óX¬O§_¬O­t¼Æ¡B¹s©Î¥¿¼Æ¡C
mysql> select SIGN(-32);
        -> -1
mysql> select SIGN(0);
        -> 0
mysql> select SIGN(234);
        -> 1
   
MOD(N,M)
¡@
%
¼Ò (Ãþ¦üC¤¤ªº%¾Þ§@²Å)¡Cªð¦^N³QM°£ªº¾l¼Æ¡C
mysql> select MOD(234, 10);
        -> 4
mysql> select 253 % 7;
        -> 1
mysql> select MOD(29,9);
        -> 2
³o­Ó¨ç¼Æ¥i¦w¥þ¥Î©óBIGINT­È¡C  
FLOOR(X)
ªð¦^¤£¤j©óXªº³Ì¤j¾ã¼Æ­È¡C

    
mysql> select FLOOR(1.23);
        -> 1
mysql> select FLOOR(-1.23);
        -> -2
ª`·Nªð¦^­È³QÅÜ´«¬°¤@­ÓBIGINT¡I  
CEILING(X)
ªð¦^¤£¤p©óXªº³Ì¤p¾ã¼Æ­È¡C
mysql> select CEILING(1.23);
        -> 2
mysql> select CEILING(-1.23);
        -> -1

ª`·Nªð¦^­È³QÅÜ´«¬°¤@­ÓBIGINT¡I

ROUND(X)
ªð¦^°Ñ¼ÆXªº¥|±Ë¤­¤Jªº¤@­Ó¾ã¼Æ¡C
mysql> select ROUND(-1.23);
        -> -1
mysql> select ROUND(-1.58);
        -> -2
mysql> select ROUND(1.58);
        -> 2
 

ª`·Nªð¦^­È³QÅÜ´«¬°¤@­ÓBIGINT!

ROUND(X,D)
ªð¦^°Ñ¼ÆXªº¥|±Ë¤­¤Jªº¦³D¬°¤p¼Æªº¤@­Ó¼Æ¦r¡C¦pªGD¬°0¡Aµ²ªG±N¨S¦³¤p¼ÆÂI©Î¤p¼Æ³¡¤À¡C
mysql> select ROUND(1.298, 1);
        -> 1.3
mysql> select ROUND(1.298, 0);
        -> 1

ª`·Nªð¦^­È³QÅÜ´«¬°¤@­ÓBIGINT!

EXP(X)
ªð¦^­Èe¡]¦ÛµM¹ï¼Æªº©³¡^ªºX¦¸¤è¡C
mysql> select EXP(2);
        -> 7.389056
mysql> select EXP(-2);
        -> 0.135335
 
LOG(X)
ªð¦^Xªº¦ÛµM¹ï¼Æ¡C
mysql> select LOG(2);
        -> 0.693147
mysql> select LOG(-2);
        -> NULL

¦pªG§A·Q­n¤@­Ó¼Æ¦rXªº¥ô·N©³Bªº¹ï¼Æ¡A¨Ï¥Î¤½¦¡LOG(X)/LOG(B)¡C

LOG10(X)
ªð¦^Xªº¥H10¬°©³ªº¹ï¼Æ¡C
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¦¸¾­¡C
mysql> select POW(2,2);
        -> 4.000000
mysql> select POW(2,-2);
        -> 0.250000
SQRT(X)
ªð¦^«D­t¼ÆXªº¥­¤è®Ú¡C
mysql> select SQRT(4);
        -> 2.000000
mysql> select SQRT(20);
        -> 4.472136
 
PI()
ªð¦^PIªº­È¡]¶ê©P²v¡^¡C
mysql> select PI();
        -> 3.141593
COS(X)
ªð¦^Xªº¾l©¶, ¦b³o¸ÌX¥H©·«×µ¹¥X¡C
mysql> select COS(PI());
        -> -1.000000
 
SIN(X)
ªð¦^Xªº¥¿©¶­È¡A¦b¦¹X¥H©·«×µ¹¥X¡C
mysql> select SIN(PI());
        -> 0.000000
 
TAN(X)
ªð¦^Xªº¥¿¤Á­È¡A¦b¦¹X¥H©·«×µ¹¥X¡C
mysql> select TAN(PI()+1);
        -> 1.557408
 
ACOS(X)
ªð¦^X¤Ï¾l©¶¡A§Y¨ä¾l©¶­È¬OX¡C¦pªGX¤£¦b-1¨ì1ªº½d³ò¡Aªð¦^NULL¡C
mysql> select ACOS(1);
        -> 0.000000
mysql> select ACOS(1.0001);
        -> NULL
mysql> select ACOS(0);
        -> 1.570796
 
ASIN(X)
ªð¦^X¤Ï¥¿©¶­È¡A§Y¨ä¥¿©¶­È¬OX¡CL¦pªGX¤£¦b-1¨ì1ªº½d³ò¡Aªð¦^NULL¡C
mysql> select ASIN(0.2);
        -> 0.201358
mysql> select ASIN('foo');
        -> 0.000000
 
ATAN(X)
ªð¦^Xªº¤Ï¥¿¤Á­È¡A§Y¨ä¥¿¤Á­È¬OX¡C
mysql> select ATAN(2);
        -> 1.107149
mysql> select ATAN(-2);
        -> -1.107149
ATAN2(X,Y)
ªð¦^2­ÓÅܼÆX©MYªº¤Ï¥¿¤Á¡C¥¦Ãþ¦ü©ó­pºâY/Xªº¤Ï¥¿¤Á¡A°£¤F¨â­Ó°Ñ¼Æªº²Å¸¹³Q¥Î¨Ó¨M©wµ²ªGªº¹³­­¡C
mysql> select ATAN(-2,2);
        -> -0.785398
mysql> select ATAN(PI(),0);
        -> 1.570796 
COT(X)
ªð¦^Xªº¾l¤Á¡C
mysql> select COT(12);
        -> -1.57267341
mysql> select COT(0);
        -> NULL
RAND()
¡@
RAND(N)
ªð¦^¦b½d³ò0¨ì1.0¤ºªºÀH¾÷¯BÂI­È¡C¦pªG¤@­Ó¾ã¼Æ°Ñ¼ÆN³Q«ü©w¡A¥¦³Q¥Î§@ºØ¤l­È¡C
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

§A¤£¯à¦b¤@­ÓORDER BY¤l¥y¥ÎRAND()­È¨Ï¥Î¦C¡A¦]¬°ORDER BY±N­«½Æ­pºâ¦C¦h¦¸¡CµM¦Ó¦bMySQL3.23¤¤¡A§A¥i¥H°µ¡G SELECT * FROM table_name ORDER BY RAND()¡A³o¬O¦³§Q©ó±o¨ì¤@­Ó¨Ó¦ÛSELECT * FROM table1,table2 WHERE a=b AND c<d ORDER BY RAND() LIMIT 1000ªº¶°¦XªºÀH¾÷¼Ë¥»¡Cª`·N¦b¤@­ÓWHERE¤l¥y¸Ìªº¤@­ÓRAND()±N¦b¨C¦¸WHERE³Q°õ¦æ®É­«·sµû¦ô¡C

LEAST(X,Y,...)
¦³2©M2­Ó¥H¤Wªº°Ñ¼Æ¡Aªð¦^³Ì¤p(³Ì¤p­È)ªº°Ñ¼Æ¡C°Ñ¼Æ¨Ï¥Î¤U¦C³W«h¶i¦æ¤ñ¸û¡G
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"

¦bMySQL 3.22.5¥H«eªºª©¥»¡A§A¥i¥H¨Ï¥ÎMIN()¦Ó¤£¬OLEAST¡C

GREATEST(X,Y,...)
ªð¦^³Ì¤j(³Ì¤j­È)ªº°Ñ¼Æ¡C°Ñ¼Æ¨Ï¥Î»PLEAST¤@¼Ëªº³W«h¶i¦æ¤ñ¸û¡C
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"
¦bMySQL¦b 3.22.5 ¥H«eªºª©¥», §A¯à¨Ï¥ÎMAX()¦Ó¤£¬OGREATEST.  
DEGREES(X)
ªð¦^°Ñ¼ÆX¡A±q©·«×ÅÜ´«¬°¨¤«×¡C
mysql> select DEGREES(PI());
        -> 180.000000
RADIANS(X)
ªð¦^°Ñ¼ÆX¡A±q¨¤«×ÅÜ´«¬°©·«×¡C
mysql> select RADIANS(90);
        -> 1.570796
TRUNCATE(X,D)
ªð¦^¼Æ¦rX¡AºIÂ_¬°D¦ì¤p¼Æ¡C¦pªGD¬°0¡Aµ²ªG±N¨S¦³¤p¼ÆÂI©Î¤p¼Æ³¡¤À¡C
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 ¦r²Å¦ê¨ç¼Æ

¦pªGµ²ªGªºªø«×¤j©ó¦øªA¾¹°Ñ¼Æmax_allowed_packet¡A¦r²Å¦ê­È¨ç¼Æªð¦^NULL¡C¨£10.2.3 ½Õ¸`¦øªA¾¹°Ñ¼Æ¡C

¹ï©ó°w¹ï¦r²Å¦ê¦ì¸mªº¾Þ§@¡A²Ä¤@­Ó¦ì¸m³Q¼Ð°O¬°1¡C

ASCII(str)
ªð¦^¦r²Å¦êstrªº³Ì¥ª­±¦r²ÅªºASCII¥N½X­È¡C¦pªGstr¬OªÅ¦r²Å¦ê¡Aªð¦^0¡C¦pªGstr¬ONULL¡Aªð¦^NULL¡C
mysql> select ASCII('2');
        -> 50
mysql> select ASCII(2);
        -> 50
mysql> select ASCII('dx');
        -> 100

¤]¥i°Ñ¨£ORD()¨ç¼Æ¡C

ORD(str)
¦pªG¦r²Å¦êstr³Ì¥ª­±¦r²Å¬O¤@­Ó¦h¦r¸`¦r²Å¡A³q¹L¥H®æ¦¡((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]ªð¦^¦r²ÅªºASCII¥N½X­È¨Óªð¦^¦h¦r¸`¦r²Å¥N½X¡C¦pªG³Ì¥ª­±ªº¦r²Å¤£¬O¤@­Ó¦h¦r¸`¦r²Å¡Cªð¦^»PASCII()¨ç¼Æªð¦^ªº¬Û¦P­È¡C
mysql> select ORD('2');
        -> 50
 
CONV(N,from_base,to_base)
¦b¤£¦Pªº¼Æ¦r°ò¤§¶¡ÅÜ´«¼Æ¦r¡Cªð¦^¼Æ¦rNªº¦r²Å¦ê¼Æ¦r¡A±qfrom_base°òÅÜ´«¬°to_base°ò¡A¦pªG¥ô¦ó°Ñ¼Æ¬ONULL¡Aªð¦^NULL¡C°Ñ¼ÆN¸ÑÄÀ¬°¤@­Ó¾ã¼Æ¡A¦ý¬O¥i¥H«ü©w¬°¤@­Ó¾ã¼Æ©Î¤@­Ó¦r²Å¦ê¡C³Ì¤p°ò¬O2¥B³Ì¤jªº°ò¬O36¡C¦pªGto_base¬O¤@­Ó­t¼Æ¡AN³Q»{¬°¬O¤@­Ó¦³²Å¸¹¼Æ¡A§_«h¡AN³Q·í§@µL²Å¸¹¼Æ¡C CONV¥H64¦ìÂIºë«×¤u§@¡C
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)
ªð¦^¤G¶i¨î­ÈNªº¤@­Ó¦r²Å¦êªí¥Ü¡A¦b¦¹N¬O¤@­Óªø¾ã¼Æ(BIGINT)¼Æ¦r¡A³oµ¥»ù©óCONV(N,10,2)¡C¦pªGN¬ONULL¡Aªð¦^NULL¡C
mysql> select BIN(12);
        -> '1100'
OCT(N)
ªð¦^¤K¶i¨î­ÈNªº¤@­Ó¦r²Å¦êªºªí¥Ü¡A¦b¦¹N¬O¤@­Óªø¾ã«¬¼Æ¦r¡A³oµ¥»ù©óCONV(N,10,8)¡C¦pªGN¬ONULL¡Aªð¦^NULL¡C
mysql> select OCT(12);
        -> '14'
 
HEX(N)
ªð¦^¤Q¤»¶i¨î­ÈN¤@­Ó¦r²Å¦êªºªí¥Ü¡A¦b¦¹N¬O¤@­Óªø¾ã«¬(BIGINT)¼Æ¦r¡A³oµ¥»ù©óCONV(N,10,16)¡C¦pªGN¬ONULL¡Aªð¦^NULL¡C
mysql> select HEX(255);
        -> 'FF'
 
CHAR(N,...)
CHAR()±N°Ñ¼Æ¸ÑÄÀ¬°¾ã¼Æ¨Ã¥Bªð¦^¥Ñ³o¨Ç¾ã¼ÆªºASCII¥N½X¦r²Å²Õ¦¨ªº¤@­Ó¦r²Å¦ê¡CNULL­È³Q¸õ¹L¡C
mysql> select CHAR(77,121,83,81,'76');
        -> 'MySQL'
mysql> select CHAR(77,77.3,'77.3');
        -> 'MMM'
 
CONCAT(str1,str2,...)
ªð¦^¨Ó¦Û©ó°Ñ¼Æ³sµ²ªº¦r²Å¦ê¡C¦pªG¥ô¦ó°Ñ¼Æ¬ONULL¡Aªð¦^NULL¡C¥i¥H¦³¶W¹L2­Óªº°Ñ¼Æ¡C¤@­Ó¼Æ¦r°Ñ¼Æ³QÅÜ´«¬°µ¥»ùªº¦r²Å¦ê§Î¦¡¡C
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)
ªð¦^¦r²Å¦êstrªºªø«×¡C
mysql> select LENGTH('text');
        -> 4
mysql> select OCTET_LENGTH('text');
        -> 4

ª`·N¡A¹ï©ó¦h¦r¸`¦r²Å¡A¨äCHAR_LENGTH()¶È­pºâ¤@¦¸¡C

LOCATE(substr,str)
¡@
POSITION(substr IN str)
ªð¦^¤l¦êsubstr¦b¦r²Å¦êstr²Ä¤@­Ó¥X²{ªº¦ì¸m¡A¦pªGsubstr¤£¬O¦bstr¸Ì­±¡Aªð¦^0.
mysql> select LOCATE('bar', 'foobarbar');
        -> 4
mysql> select LOCATE('xbar', 'foobar');
        -> 0
¸Ó¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C  
LOCATE(substr,str,pos)
ªð¦^¤l¦êsubstr¦b¦r²Å¦êstr²Ä¤@­Ó¥X²{ªº¦ì¸m¡A±q¦ì¸mpos¶}©l¡C¦pªGsubstr¤£¬O¦bstr¸Ì­±¡Aªð¦^0¡C
mysql> select LOCATE('bar', 'foobarbar',5);
        -> 7

³o¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

INSTR(str,substr)
ªð¦^¤l¦êsubstr¦b¦r²Å¦êstr¤¤ªº²Ä¤@­Ó¥X²{ªº¦ì¸m¡C³o»P¦³2­Ó°Ñ¼Æ§Î¦¡ªºLOCATE()¬Û¦P¡A°£¤F°Ñ¼Æ³QÄA­Ë¡C
mysql> select INSTR('foobarbar', 'bar');
        -> 4
mysql> select INSTR('xbar', 'foobar');
        -> 0

³o¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

LPAD(str,len,padstr)
ªð¦^¦r²Å¦êstr¡A¥ª­±¥Î¦r²Å¦êpadstr¶ñ¸Éª½¨ìstr¬Olen­Ó¦r²Åªø¡C
mysql> select LPAD('hi',4,'??');
        -> '??hi'
 
RPAD(str,len,padstr)
ªð¦^¦r²Å¦êstr¡A¥k­±¥Î¦r²Å¦êpadstr¶ñ¸Éª½¨ìstr¬Olen­Ó¦r²Åªø¡C  
mysql> select RPAD('hi',5,'?');
        -> 'hi???'
LEFT(str,len)
ªð¦^¦r²Å¦êstrªº³Ì¥ª­±len­Ó¦r²Å¡C
mysql> select LEFT('foobarbar', 5);
        -> 'fooba'

¸Ó¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

RIGHT(str,len)
ªð¦^¦r²Å¦êstrªº³Ì¥k­±len­Ó¦r²Å¡C
mysql> select RIGHT('foobarbar', 4);
        -> 'rbar'

¸Ó¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

SUBSTRING(str,pos,len)
¡@
SUBSTRING(str FROM pos FOR len)
¡@
MID(str,pos,len)
±q¦r²Å¦êstrªð¦^¤@­Ólen­Ó¦r²Åªº¤l¦ê¡A±q¦ì¸mpos¶}©l¡C¨Ï¥ÎFROMªºÅܺاΦ¡¬OANSI SQL92»yªk¡C
mysql> select SUBSTRING('Quadratically',5,6);
        -> 'ratica'

¸Ó¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

SUBSTRING(str,pos)
¡@
SUBSTRING(str FROM pos)
±q¦r²Å¦êstrªº°_©l¦ì¸mposªð¦^¤@­Ó¤l¦ê¡C
mysql> select SUBSTRING('Quadratically',5);
        -> 'ratically'
mysql> select SUBSTRING('foobarbar' FROM 4);
        -> 'barbar'

¸Ó¨ç¼Æ¬O¦h¦r¸`¥i¾aªº¡C

SUBSTRING_INDEX(str,delim,count)
ªð¦^±q¦r²Å¦êstrªº²Äcount­Ó¥X²{ªº¤À¹j²Ådelim¤§«áªº¤l¦ê¡C¦pªGcount¬O¥¿¼Æ¡Aªð¦^³Ì«áªº¤À¹j²Å¨ì¥ªÃä(±q¥ªÃ伯) ªº©Ò¦³¦r²Å¡C¦pªGcount¬O­t¼Æ¡Aªð¦^³Ì«áªº¤À¹j²Å¨ì¥kÃ䪺©Ò¦³¦r²Å(±q¥kÃ伯)¡C
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
        -> 'www.mysql'
mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
        -> 'mysql.com'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C

LTRIM(str)
ªð¦^§R°£¤F¨ä«e¸mªÅ®æ¦r²Åªº¦r²Å¦êstr¡C
mysql> select LTRIM('  barbar');
        -> 'barbar'
RTRIM(str)
ªð¦^§R°£¤F¨ä©ì«áªÅ®æ¦r²Åªº¦r²Å¦êstr¡C
mysql> select RTRIM('barbar   ');
        -> 'barbar'
¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C  
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
ªð¦^¦r²Å¦êstr¡A¨ä©Ò¦³remstr«eºó©Î«áºó³Q§R°£¤F¡C¦pªG¨S¦³­×¹¢²ÅBOTH¡BLEADING©ÎTRAILINGµ¹¥X¡ABOTH³Q°²©w¡C¦pªGremstr¨S³Q«ü©w¡AªÅ®æ³Q§R°£¡C
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'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C

SOUNDEX(str)
ªð¦^strªº¤@­Ó¦P­µ¦r²Å¦ê¡CÅ¥°_¨Ó¡§¤j­P¬Û¦P¡¨ªº2­Ó¦r²Å¦êÀ³¸Ó¦³¬Û¦Pªº¦P­µ¦r²Å¦ê¡C¤@­Ó¡§¼Ð·Ç¡¨ªº¦P­µ¦r²Å¦êªø¬O4­Ó¦r²Å¡A¦ý¬OSOUNDEX()¨ç¼Æªð¦^¤@­Ó¥ô·Nªøªº¦r²Å¦ê¡C§A¥i¥H¦bµ²ªG¤W¨Ï¥ÎSUBSTRING()±o¨ì¤@­Ó¡§¼Ð·Ç¡¨ªº ¦P­µ¦ê¡C©Ò¦³«D¼Æ¦r¦r¥À¦r²Å¦bµ¹©wªº¦r²Å¦ê¤¤³Q©¿²¤¡C©Ò¦³¦bA-Z¤§¥~ªº¦r²Å°ê»Ú¦r¥À³Q·í§@¤¸­µ¡C
mysql> select SOUNDEX('Hello');
        -> 'H400'
mysql> select SOUNDEX('Quadratically');
        -> 'Q36324'
 
SPACE(N)
ªð¦^¥ÑN­ÓªÅ®æ¦r²Å²Õ¦¨ªº¤@­Ó¦r²Å¦ê¡C
mysql> select SPACE(6);
        -> '      '
 
REPLACE(str,from_str,to_str)
ªð¦^¦r²Å¦êstr¡A¨ä¦r²Å¦êfrom_strªº©Ò¦³¥X²{¥Ñ¦r²Å¦êto_str¥N´À¡C
mysql> select REPLACE('www.mysql.com', 'w', 'Ww');
        -> 'WwWwWw.mysql.com'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C

REPEAT(str,count)
ªð¦^¥Ñ­«½ÆcountTimes¦¸ªº¦r²Å¦êstr²Õ¦¨ªº¤@­Ó¦r²Å¦ê¡C¦pªGcount <= 0¡Aªð¦^¤@­ÓªÅ¦r²Å¦ê¡C¦pªGstr©Îcount¬ONULL¡Aªð¦^NULL¡C
mysql> select REPEAT('MySQL', 3);
        -> 'MySQLMySQLMySQL'
 
REVERSE(str)
ªð¦^ÄA­Ë¦r²Å¶¶§Çªº¦r²Å¦êstr¡C
mysql> select REVERSE('abc');
        -> 'cba'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¥i¾aªº¡C

INSERT(str,pos,len,newstr)
ªð¦^¦r²Å¦êstr¡A¦b¦ì¸mpos°_©lªº¤l¦ê¥Blen­Ó¦r²Åªø±o¤l¦ê¥Ñ¦r²Å¦ênewstr¥N´À¡C
mysql> select INSERT('Quadratic', 3, 4, 'What');
        -> 'QuWhattic'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C

ELT(N,str1,str2,str3,...)
¦pªGN= 1¡Aªð¦^str1¡A¦pªGN= 2¡Aªð¦^str2¡Aµ¥µ¥¡C¦pªGN¤p©ó1©Î¤j©ó°Ñ¼Æ­Ó¼Æ¡Aªð¦^NULL¡CELT()¬OFIELD()¤Ï¹Bºâ¡C
mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
        -> 'ej'
mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
        -> 'foo'
FIELD(str,str1,str2,str3,...)
ªð¦^str¦bstr1, str2, str3, ...²M³æªº¯Á¤Þ¡C¦pªGstr¨S§ä¨ì¡Aªð¦^0¡CFIELD()¬OELT()¤Ï¹Bºâ¡C
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)
¦pªG¦r²Å¦êstr¦b¥ÑN¤l¦ê²Õ¦¨ªºªístrlist¤§¤¤¡Aªð¦^¤@­Ó1¨ìNªº­È¡C¤@­Ó¦r²Å¦êªí¬O³Q¡§,¡¨¤À¹jªº¤l¦ê²Õ¦¨ªº¤@­Ó¦r²Å¦ê¡C¦pªG²Ä¤@­Ó°Ñ¼Æ¬O¤@­Ó±`¼Æ¦r²Å¦ê¨Ã¥B²Ä¤G­Ó°Ñ¼Æ¬O¤@ºØÃþ«¬¬°SETªº¦C¡AFIND_IN_SET()¨ç¼Æ³Q³Ì¨Î¤Æ¦Ó¨Ï¥Î¦ì¹Bºâ¡I¦pªGstr¤£¬O¦bstrlist¸Ì­±©Î¦pªGstrlist¬OªÅ¦r²Å¦ê¡Aªð¦^0¡C¦pªG¥ô¦ó¤@­Ó°Ñ¼Æ¬ONULL¡Aªð¦^NULL¡C¦pªG²Ä¤@­Ó°Ñ¼Æ¥]§t¤@­Ó¡§,¡¨¡A¸Ó¨ç¼Æ±N¤u§@¤£¥¿±`¡C
mysql> SELECT FIND_IN_SET('b','a,b,c,d');
        -> 2
 
MAKE_SET(bits,str1,str2,...)
ªð¦^¤@­Ó¶°¦X (¥]§t¥Ñ¡§,¡¨¦r²Å¤À¹jªº¤l¦ê²Õ¦¨ªº¤@­Ó¦r²Å¦ê)¡A¥Ñ¬ÛÀ³ªº¦ì¦bbits¶°¦X¤¤ªºªº¦r²Å¦ê²Õ¦¨¡Cstr1¹ïÀ³©ó¦ì0¡Astr2¹ïÀ³¦ì1¡Aµ¥µ¥¡C¦bstr1, str2, ...¤¤ªºNULL¦ê¤£²K¥[¨ìµ²ªG¤¤¡C
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]])
ªð¦^¤@­Ó¦r²Å¦ê¡A¦b³o¸Ì¹ï©ó¦b¡§bits¡¨¤¤³]©w¨C¤@¦ì¡A§A±o¨ì¤@­Ó¡§on¡¨¦r²Å¦ê¡A¨Ã¥B¹ï©ó¨C­Ó´_¦ì(reset)ªº¦ì¡A§A±o¨ì¤@­Ó¡§off¡¨¦r²Å¦ê¡C¨C­Ó¦r²Å¦ê¥Î¡§separator¡¨¤À¹j(¹w³]¡§,¡¨)¡A¨Ã¥B¥u¦³¡§bits¡¨ªº¡§number_of_bits¡¨ (¹w³]64)¦ì³Q¨Ï¥Î¡C
mysql> select EXPORT_SET(5,'Y','N',',',4)
        -> Y,N,Y,N 
LCASE(str)
¡@
LOWER(str)
ªð¦^¦r²Å¦êstr¡A®Ú¾Ú·í«e¦r²Å¶°¬M®g(¹w³]¬OISO-8859-1 Latin1)§â©Ò¦³ªº¦r²Å§ïÅܦ¨¤p¼g¡C¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C
mysql> select LCASE('QUADRATICALLY');
        -> 'quadratically'
 
UCASE(str)
¡@
UPPER(str)
ªð¦^¦r²Å¦êstr¡A®Ú¾Ú·í«e¦r²Å¶°¬M®g(¹w³]¬OISO-8859-1 Latin1)§â©Ò¦³ªº¦r²Å§ïÅܦ¨¤j¼g¡C¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C
mysql> select UCASE('Hej');
        -> 'HEJ'

¸Ó¨ç¼Æ¹ï¦h¦r¸`¬O¥i¾aªº¡C

LOAD_FILE(file_name)
Ū¤J¤å¥ó¨Ã¥B§@¬°¤@­Ó¦r²Å¦êªð¦^¤å¥ó¤º®e¡C¤å¥ó¥²¶·¦b¦øªA¾¹¤W¡A§A¥²¶·«ü©w¨ì¤å¥óªº§¹¾ã¸ô®|¦W¡A¦Ó¥B§A¥²¶·¦³fileÅv­­¡C¤å¥ó¥²¶·©Ò¦³¤º®e³£¬O¥iŪªº¨Ã¥B¤p©ómax_allowed_packet¡C¦pªG¤å¥ó¤£¦s¦b©Î¥Ñ©ó¤W­±­ì¦]¤§¤@¤£¯à³QŪ¥X¡A¨ç¼Æªð¦^NULL¡C
mysql> UPDATE table_name
           SET blob_column=LOAD_FILE("/tmp/picture")
           WHERE id=1;

MySQL¥²­n®É¦Û°ÊÅÜ´«¼Æ¦r¬°¦r²Å¦ê¡A¨Ã¥B¤Ï¹L¨Ó¤]¦p¦¹¡G

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

¦pªG§A·Q­n©ú½T¦aÅÜ´«¤@­Ó¼Æ¦r¨ì¤@­Ó¦r²Å¦ê¡A§â¥¦§@¬°°Ñ¼Æ¶Ç»¼¨ìCONCAT()¡C

¦pªG¦r²Å¦ê¨ç¼Æ´£¨Ñ¤@­Ó¤G¶i¨î¦r²Å¦ê§@¬°°Ñ¼Æ¡Aµ²ªG¦r²Å¦ê¤]¬O¤@­Ó¤G¶i¨î¦r²Å¦ê¡C³QÅÜ´«¨ì¤@­Ó¦r²Å¦êªº¼Æ¦r³Q·í§@¬O¤@­Ó¤G¶i¨î¦r²Å¦ê¡C³o¶È¼vÅT¤ñ¸û¡C

7.4.11 ¤é´Á©M®É¶¡¨ç¼Æ

¹ï©ó¨C­ÓÃþ«¬¾Ö¦³ªº­È½d³ò¥H¤Î¨Ã¥B«ü©w¤é´Á¦ó®É¶¡­Èªº¦³®Ä®æ¦¡ªº´y­z¨£7.3.6 ¤é´Á©M®É¶¡Ãþ«¬¡C

³o¸Ì¬O¤@­Ó¨Ï¥Î¤é´Á¨ç¼Æªº¨Ò¤l¡C¤U­±ªº¬d¸ß¿ï¾Ü¤F©Ò¦³°O¿ý¡A¨ädate_colªº­È¬O¦b³Ì«á30¤Ñ¥H¤º¡G

mysql> SELECT something FROM table
           WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
DAYOFWEEK(date)
ªð¦^¤é´Ádateªº¬P´Á¯Á¤Þ(1=¬P´Á¤Ñ¡A2=¬P´Á¤@, ¡K¡K7=¬P´Á¤»)¡C³o¨Ç¯Á¤Þ­È¹ïÀ³©óODBC¼Ð·Ç¡C
mysql> select DAYOFWEEK('1998-02-03');
        -> 3
 
WEEKDAY(date)
ªð¦^dateªº¬P´Á¯Á¤Þ(0=¬P´Á¤@¡A1=¬P´Á¤G, ¡K¡K6= ¬P´Á¤Ñ)¡C
mysql> select WEEKDAY('1997-10-04 22:23:00');
        -> 5
mysql> select WEEKDAY('1997-11-05');
        -> 2
 
DAYOFMONTH(date)
ªð¦^dateªº¤ë¥÷¤¤¤é´Á¡A¦b1¨ì31½d³ò¤º¡C
mysql> select DAYOFMONTH('1998-02-03');
        -> 3
DAYOFYEAR(date)
ªð¦^date¦b¤@¦~¤¤ªº¤é¼Æ, ¦b1¨ì366½d³ò¤º¡C
mysql> select DAYOFYEAR('1998-02-03');
        -> 34
MONTH(date)
ªð¦^dateªº¤ë¥÷¡A½d³ò1¨ì12¡C
mysql> select MONTH('1998-02-03');
        -> 2
 
DAYNAME(date)
ªð¦^dateªº¬P´Á¦W¦r¡C
mysql> select DAYNAME("1998-02-05");
        -> 'Thursday'
MONTHNAME(date)
ªð¦^dateªº¤ë¥÷¦W¦r¡C
mysql> select MONTHNAME("1998-02-05");
        -> 'February'
 
QUARTER(date)
ªð¦^date¤@¦~¤¤ªº©u«×¡A½d³ò1¨ì4¡C
mysql> select QUARTER('98-04-01');
        -> 2
 
WEEK(date)
¡@
WEEK(date,first)
¹ï©ó¬P´Á¤Ñ¬O¤@©Pªº²Ä¤@¤Ñªº¦a¤è¡A¦³¤@­Ó³æ­Ó°Ñ¼Æ¡Aªð¦^dateªº©P¼Æ¡A½d³ò¦b0¨ì52¡C2­Ó°Ñ¼Æ§Î¦¡WEEK()¤¹³\§A«ü©w¬P´Á¬O§_¶}©l©ó¬P´Á¤Ñ©Î¬P´Á¤@¡C¦pªG²Ä¤G­Ó°Ñ¼Æ¬O0¡A¬P´Á±q¬P´Á¤Ñ¶}©l¡A¦pªG²Ä¤G­Ó°Ñ¼Æ¬O1¡A±q¬P´Á¤@¶}©l¡C
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ªº¦~¥÷¡A½d³ò¦b1000¨ì9999¡C
mysql> select YEAR('98-02-03');
        -> 1998
HOUR(time)
ªð¦^timeªº¤p®É¡A½d³ò¬O0¨ì23¡C
mysql> select HOUR('10:05:03');
        -> 10
MINUTE(time)
ªð¦^timeªº¤ÀÄÁ¡A½d³ò¬O0¨ì59¡C
mysql> select MINUTE('98-02-03 10:05:03');
        -> 5
SECOND(time)
¦^¨Ótimeªº¬í¼Æ¡A½d³ò¬O0¨ì59¡C
mysql> select SECOND('10:05:03');
        -> 3
PERIOD_ADD(P,N)
¼W¥[N­Ó¤ë¨ì¶¥¬qP¡]¥H®æ¦¡YYMM©ÎYYYYMM)¡C¥H®æ¦¡YYYYMMªð¦^­È¡Cª`·N¶¥¬q°Ñ¼ÆP¤£¬O¤é´Á­È¡C
mysql> select PERIOD_ADD(9801,2);
        -> 199803
PERIOD_DIFF(P1,P2)
ªð¦^¦b®É´ÁP1©MP2¤§¶¡¤ë¼Æ¡AP1©MP2À³¸Ó¥H®æ¦¡YYMM©ÎYYYYMM¡Cª`·N¡A®É´Á°Ñ¼ÆP1©MP2¤£¬O¤é´Á­È¡C
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)
³o¨Ç¥\¯à°õ¦æ¤é´Á¹Bºâ¡C¹ï©óMySQL 3.22¡A¥L­Ì¬O·sªº¡CADDDATE()©MSUBDATE()¬ODATE_ADD()©MDATE_SUB()ªº¦P¸qµü¡C¦bMySQL 3.23¤¤¡A§A¥i¥H¨Ï¥Î+©M-¦Ó¤£¬ODATE_ADD()©MDATE_SUB()¡C¡]¨£¨Ò¤l¡^date¬O¤@­Ó«ü©w¶}©l¤é´ÁªºDATETIME©ÎDATE­È¡Aexpr¬O«ü©w¥[¨ì¶}©l¤é´Á©Î±q¶}©l¤é´Á´î¥hªº¶¡¹j­È¤@­Óªí¹F¦¡¡Aexpr¬O¤@­Ó¦r²Å¦ê¡Q¥¦¥i¥H¥H¤@­Ó¡§-¡¨¶}©lªí¥Ü­t¶¡¹j¡Ctype¬O¤@­ÓÃöÁäµü¡A«ü©úªí¹F¦¡À³¸Ó¦p¦ó³Q¸ÑÄÀ¡CEXTRACT(type FROM date)¨ç¼Æ±q¤é´Á¤¤ªð¦^¡§type¡¨¶¡¹j¡C¤UªíÅã¥Ü¤Ftype©Mexpr°Ñ¼Æ«ç¼Ë³QÃöÁp¡G
type­È §t¸q ´Á±æªºexpr®æ¦¡
SECOND ’ SECONDS
MINUTE ¤ÀÄÁ MINUTES
HOUR ®É¶¡ HOURS
DAY ¤Ñ DAYS
MONTH ¤ë MONTHS
YEAR ¦~ YEARS
MINUTE_SECOND ¤ÀÄÁ©M¬í "MINUTES:SECONDS"
HOUR_MINUTE ¤p®É©M¤ÀÄÁ "HOURS:MINUTES"
DAY_HOUR ¤Ñ©M¤p®É "DAYS HOURS"
YEAR_MONTH ¦~©M¤ë "YEARS-MONTHS"
HOUR_SECOND ¤p®É, ¤ÀÄÁ¡A "HOURS:MINUTES:SECONDS"
DAY_MINUTE ¤Ñ, ¤p®É, ¤ÀÄÁ "DAYS HOURS:MINUTES"
DAY_SECOND ¤Ñ, ¤p®É, ¤ÀÄÁ, ¬í "DAYS HOURS:MINUTES:SECONDS"

MySQL¦bexpr®æ¦¡¤¤¤¹³\¥ô¦ó¼ÐÂI¤À¹j²Å¡Cªí¥ÜÅã¥Üªº¬O«ØÄ³ªº¤À¹j²Å¡C¦pªGdate°Ñ¼Æ¬O¤@­ÓDATE­È¨Ã¥B§Aªº­pºâ¶È¶È¥]§tYEAR¡BMONTH©MDAY³¡¤À(§Y¡A¨S¦³®É¶¡³¡¤À)¡Aµ²ªG¬O¤@­ÓDATE­È¡C§_«hµ²ªG¬O¤@­ÓDATETIME­È¡C

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

¦pªG§A«ü©w¤Óµuªº¶¡¹j­È(¤£¥]¬AtypeÃöÁäµü´Á±æªº¶¡¹j³¡¤À)¡AMySQL°²³]§A¬Ù±¼¤F¶¡¹j­Èªº³Ì¥ª­±³¡¤À¡C¨Ò¦p¡A¦pªG§A«ü©w¤@­Ótype¬ODAY_SECOND¡A­Èexpr³Q§Æ±æ¦³¤Ñ¡B¤p®É¡B¤ÀÄÁ©M¬í³¡¤À¡C¦pªG§A¹³"1:10"³o¼Ë«ü©w­È¡AMySQL°²³]¤é¤l©M¤p®É³¡¤À¬O¥á¥¢ªº¨Ã¥B­È¥Nªí¤ÀÄÁ©M¬í¡C´«¥y¸Ü»¡¡A"1:10" DAY_SECOND¥H¥¦µ¥»ù©ó"1:10" MINUTE_SECONDªº¤è¦¡¸ÑÄÀ¡A³o¹ï¨ºMySQL¸ÑÄÀTIME­Èªí¥Ü¸g¹Lªº®É¶¡¦Ó«D§@¬°¤@¤Ñªº®É¶¡ªº¤è¦¡¦³¤G¸q©Ê¡C¦pªG§A¨Ï¥Î½T¹ê¤£¥¿½Tªº¤é´Á¡Aµ²ªG¬ONULL¡C¦pªG§A¼W¥[MONTH¡BYEAR_MONTH©ÎYEAR¨Ã¥Bµ²ªG¤é´Á¤j©ó·s¤ë¥÷ªº³Ì¤j­È¤Ñ¼Æ¡A¤é¤l¦b·s¤ë¥Î³Ì¤jªº¤Ñ½Õ¾ã¡C

mysql> select DATE_ADD('1998-01-30', Interval 1 month);
        -> 1998-02-28
ª`·N¡A±q«e­±ªº¨Ò¤l¤¤µüINTERVAL©MtypeÃöÁäµü¤£¬O°Ï¤À¤j¤p¼gªº¡C  
TO_DAYS(date)
µ¹¥X¤@­Ó¤é´Ádate¡Aªð¦^¤@­Ó¤Ñ¼Æ(±q0¦~ªº¤Ñ¼Æ)¡C
mysql> select TO_DAYS(950501);
        -> 728779
mysql> select TO_DAYS('1997-10-07');
        -> 729669

TO_DAYS()¤£¥´ºâ¥Î©ó¨Ï¥Î®æ¦C°ª¸Ì¾ú(1582)¥X²{«eªº­È¡C

FROM_DAYS(N)
µ¹¥X¤@­Ó¤Ñ¼ÆN¡Aªð¦^¤@­ÓDATE­È¡C
mysql> select FROM_DAYS(729669);
        -> '1997-10-07'

TO_DAYS()¤£¥´ºâ¥Î©ó¨Ï¥Î®æ¦C°ª¸Ì¾ú(1582)¥X²{«eªº­È¡C

DATE_FORMAT(date,format)
®Ú¾Úformat¦r²Å¦ê®æ¦¡¤Ædate­È¡C¤U¦C­×¹¢²Å¥i¥H³Q¥Î¦bformat¦r²Å¦ê¤¤¡G
%M ¤ë¦W¦r(January¡K¡KDecember)
%W ¬P´Á¦W¦r(Sunday¡K¡KSaturday)
%D ¦³­^»y«eºóªº¤ë¥÷ªº¤é´Á(1st, 2nd, 3rd, µ¥µ¥¡C¡^
%Y ¦~, ¼Æ¦r, 4 ¦ì
%y ¦~, ¼Æ¦r, 2 ¦ì
%a ÁY¼gªº¬P´Á¦W¦r(Sun¡K¡KSat)
%d ¤ë¥÷¤¤ªº¤Ñ¼Æ, ¼Æ¦r(00¡K¡K31)
%e ¤ë¥÷¤¤ªº¤Ñ¼Æ, ¼Æ¦r(0¡K¡K31)
%m ¤ë, ¼Æ¦r(01¡K¡K12)
%c ¤ë, ¼Æ¦r(1¡K¡K12)
%b ÁY¼gªº¤ë¥÷¦W¦r(Jan¡K¡KDec)
%j ¤@¦~¤¤ªº¤Ñ¼Æ(001¡K¡K366)
%H ¤p®É(00¡K¡K23)
%k ¤p®É(0¡K¡K23)
%h ¤p®É(01¡K¡K12)
%I ¤p®É(01¡K¡K12)
%l ¤p®É(1¡K¡K12)
%i ¤ÀÄÁ, ¼Æ¦r(00¡K¡K59)
%r ®É¶¡,12 ¤p®É(hh:mm:ss [AP]M)
%T ®É¶¡,24 ¤p®É(hh:mm:ss)
%S ¬í(00¡K¡K59)
%s ¬í(00¡K¡K59)
%p AM©ÎPM
%w ¤@­Ó¬P´Á¤¤ªº¤Ñ¼Æ(0=Sunday ¡K¡K6=Saturday ¡^
%U ¬P´Á(0¡K¡K52), ³o¸Ì¬P´Á¤Ñ¬O¬P´Áªº²Ä¤@¤Ñ
%u ¬P´Á(0¡K¡K52), ³o¸Ì¬P´Á¤@¬O¬P´Áªº²Ä¤@¤Ñ
%% ¤@­Ó¤å¦r¡§%¡¨¡C

©Ò¦³ªº¨ä¥L¦r²Å¤£°µ¸ÑÄÀ³Q½Æ»s¨ìµ²ªG¤¤¡C

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¤¤¡A¦b®æ¦¡­×¹¢²Å¦r²Å«e»Ý­n%¡C¦bMySQL§ó¦­ªºª©¥»¤¤¡A%¬O¥i¿ïªº¡C

TIME_FORMAT(time,format)
³o¹³¤W­±ªºDATE_FORMAT()¨ç¼Æ¤@¼Ë¨Ï¥Î¡A¦ý¬Oformat¦r²Å¦ê¥u¯à¥]§t³B²z¤p®É¡B¤ÀÄÁ©M¬íªº¨º¨Ç®æ¦¡­×¹¢²Å¡C¨ä¥L­×¹¢²Å²£¥Í¤@­ÓNULL­È©Î0¡C
CURDATE()
¡@
CURRENT_DATE
¥H'YYYY-MM-DD'©ÎYYYYMMDD®æ¦¡ªð¦^¤µ¤Ñ¤é´Á­È¡A¨ú¨M©ó¨ç¼Æ¬O¦b¤@­Ó¦r²Å¦êÁÙ¬O¼Æ¦r¤W¤U¤å³Q¨Ï¥Î¡C
mysql> select CURDATE();
        -> '1997-12-15'
mysql> select CURDATE() + 0;
        -> 19971215
CURTIME()
¡@
CURRENT_TIME
¥H'HH:MM:SS'©ÎHHMMSS®æ¦¡ªð¦^·í«e®É¶¡­È¡A¨ú¨M©ó¨ç¼Æ¬O¦b¤@­Ó¦r²Å¦êÁÙ¬O¦b¼Æ¦rªº¤W¤U¤å³Q¨Ï¥Î¡C
mysql> select CURTIME();
        -> '23:50:26'
mysql> select CURTIME() + 0;
        -> 235026
NOW()
¡@
SYSDATE()
¡@
CURRENT_TIMESTAMP
¥H'YYYY-MM-DD HH:MM:SS'©ÎYYYYMMDDHHMMSS®æ¦¡ªð¦^·í«eªº¤é´Á©M®É¶¡¡A¨ú¨M©ó¨ç¼Æ¬O¦b¤@­Ó¦r²Å¦êÁÙ¬O¦b¼Æ¦rªº¤W¤U¤å³Q¨Ï¥Î¡C
mysql> select NOW();
        -> '1997-12-15 23:50:26'
mysql> select NOW() + 0;
        -> 19971215235026
UNIX_TIMESTAMP()
¡@
UNIX_TIMESTAMP(date)
¦pªG¨S¦³°Ñ¼Æ½Õ¥Î¡Aªð¦^¤@­ÓUnix®É¶¡ÂW°O(±q'1970-01-01 00:00:00'GMT¶}©lªº¬í¼Æ)¡C¦pªGUNIX_TIMESTAMP()¥Î¤@­Ódate°Ñ¼Æ³Q½Õ¥Î¡A¥¦ªð¦^±q'1970-01-01 00:00:00' GMT¶}©lªº¬í¼Æ­È¡Cdate¥i¥H¬O¤@­ÓDATE¦r²Å¦ê¡B¤@­ÓDATETIME¦r²Å¦ê¡B¤@­ÓTIMESTAMP©Î¥HYYMMDD©ÎYYYYMMDD®æ¦¡ªº¥»¦a®É¶¡ªº¤@­Ó¼Æ¦r¡C
mysql> select UNIX_TIMESTAMP();
        -> 882226357
mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
        -> 875996580

·íUNIX_TIMESTAMP³Q¥Î©ó¤@­ÓTIMESTAMP¦C¡A¨ç¼Æ±Nª½±µ±µ¨ü­È¡A¨S¦³Áô§tªº¡§string-to-unix-timestamp¡¨ÅÜ´«¡C

FROM_UNIXTIME(unix_timestamp)
¥H'YYYY-MM-DD HH:MM:SS'©ÎYYYYMMDDHHMMSS®æ¦¡ªð¦^unix_timestamp°Ñ¼Æ©Òªí¥Üªº­È¡A¨ú¨M©ó¨ç¼Æ¬O¦b¤@­Ó¦r²Å¦êÁÙ¬O©Î¼Æ¦r¤W¤U¤å¤¤³Q¨Ï¥Î¡C
mysql> select FROM_UNIXTIME(875996580);
        -> '1997-10-04 22:23:00'
mysql> select FROM_UNIXTIME(875996580) + 0;
        -> 19971004222300
FROM_UNIXTIME(unix_timestamp,format)
ªð¦^ªí¥Ü Unix ®É¶¡¼Ð°Oªº¤@­Ó¦r²Å¦ê¡A®Ú¾Úformat¦r²Å¦ê®æ¦¡¤Æ¡Cformat¥i¥H¥]§t»PDATE_FORMAT()¨ç¼Æ¦C¥Xªº±ø¥Ø¦P¼Ëªº­×¹¢²Å¡C
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°Ñ¼Æ¡AÅÜ´«¦¨¤p®É¡B¤ÀÄÁ©M¬í¡A­È¥H'HH:MM:SS'©ÎHHMMSS®æ¦¡¤Æ¡A¨ú¨M©ó¨ç¼Æ¬O¦b¤@­Ó¦r²Å¦êÁÙ¬O¦b¼Æ¦r¤W¤U¤å¤¤³Q¨Ï¥Î¡C
mysql> select SEC_TO_TIME(2378);
        -> '00:39:38'
mysql> select SEC_TO_TIME(2378) + 0;
        -> 3938
TIME_TO_SEC(time)
ªð¦^time°Ñ¼Æ¡AÂà´«¦¨¬í¡C
mysql> select TIME_TO_SEC('22:23:00');
        -> 80580
mysql> select TIME_TO_SEC('00:39:38');
        -> 2378

7.4.12 ¨ä¥L¨ç¼Æ

DATABASE()
ªð¦^·í«eªº¸ê®Æ®w¦W¦r¡C
mysql> select DATABASE();
        -> 'test'

¦pªG¨S¦³·í«eªº¸ê®Æ®w¡ADATABASE()ªð¦^ªÅ¦r²Å¦ê¡C

USER()
¡@
SYSTEM_USER()
¡@
SESSION_USER()
ªð¦^·í«eMySQL¥Î¤á¦W¡C
mysql> select USER();
        -> 'davida@localhost'

¦bMySQL 3.22.11©Î¥H«áª©¥»¤¤¡A³o¥]¬A¥Î¤á¦W©M«È¤á¥D¾÷¦W¡C§A¥i¥H¹³³o¼Ë¥u´£¨ú¥Î¤á¦W³¡¤À(­È¬O§_¥]¬A¥D¾÷¦W³¡¤À§¡¥i¤u§@)¡G

mysql> select substring_index(USER(),"@",1);
        -> 'davida'
PASSWORD(str)
±q¯Â¤å¥»±K½Xstr­pºâ¤@­Ó±K½X¦r²Å¦ê¡C¸Ó¨ç¼Æ³Q¥Î©ó¬°¤F¦buser±ÂÅvªíªºPassword¦C¤¤Àx¦s±K½X¦Ó¥[±KMySQL±K½X¡C
mysql> select PASSWORD('badpwd');
        -> '7f84554057dd964b'

PASSWORD()¥[±K¬O«D¥i°fªº¡CPASSWORD()¤£¥H»PUnix±K½X¥[±Kªº¬Û¦Pªº¤èªk°õ¦æ±K½X¥[±K¡C§A¤£À³¸Ó°²©w¦pªG§AªºUnix ±K½X©M§AªºMySQL±K½X¬O¤@¼Ëªº¡APASSWORD()±N¾É­P»P¦bUnix±K½X¤å¥óÀx¦sªº¬Û¦Pªº¥[±K­È¡C¨£ENCRYPT()¡C

ENCRYPT(str[,salt])
¨Ï¥ÎUnix crypt()¨t²Î½Õ¥Î¥[±Kstr¡Csalt°Ñ¼ÆÀ³¸Ó¬O¤@­Ó¦³2­Ó¦r²Åªº¦r²Å¦ê¡C¡]MySQL 3.22.16¤¤¡Asalt¥i¥Hªø©ó2­Ó¦r²Å¡C¡^
mysql> select ENCRYPT("hello");
        -> 'VxuFAJXVARROc'

¦pªGcrypt()¦b§Aªº¨t²Î¤W¤£¥i¥Î¡AENCRYPT()Á`¬Oªð¦^NULL¡CENCRYPT()¥u«O¯dstr°_©l8­Ó¦r²Å¦Ó©¿²¤©Ò¦³¨ä¥L¡A¦Ü¤Ö¦b¬Y¨Ç¨t²Î¤W¬O³o¼Ë¡C³o±N¥Ñ©³¼hªºcrypt()¨t²Î½Õ¥Îªº¦æ¬°¨M©w¡C

ENCODE(str,pass_str)
¨Ï¥Îpass_str§@¬°±K½X¥[±Kstr¡C¬°¤F¸Ñ±Kµ²ªG¡A¨Ï¥ÎDECODE()¡Cµ²ªG¬O¤@­Ó¤G¶i¨î¦r²Å¦ê¡A¦pªG§A·Q­n¦b¦C¤¤«O¦s¥¦¡A¨Ï¥Î¤@­ÓBLOB¦CÃþ«