MySQL 4.1.0 中文參考手冊 --- 6.3 用於 SELECT 和 WHERE 子句的函式 (1) (轉)
MySQL Reference Manual for version 4.1.0-alpha.
6.3 用於
和 WHERE
子句的
一個 SQL 語句中的 select_expression
或 where_definition
可由任何使用了下面所描述函式的組成。
包含 NULL
的表示式總是得出一個 NULL
值結果,除非表示式中的操作和函式在文件中有另外的說明。
注意:在一個函式名和跟隨它的括號之間必須不存在空格。這有助於 MySQL 語法分析區分函式和對恰巧與函式同名表或列的引用。然而,引數左右兩邊的空格卻是允許的。
你可以強制 MySQL 接受函式名後存在空格的形式,這需要透過以 --ansi
選項啟動 mysqld
,或在 mysql_connect()
中使用 CLIENT_IGNORE_SPACE
,但是,在這種情況下,所有的函式名均將成為保留字。檢視章節 執行 MySQL.
為了簡潔,從 mysql
程式輸出的例子以縮寫的形式顯示。因此:
mysql> SELECT MOD(29,9); 1 rows in set (0.00 sec) +-----------+ | mod(29,9) | +-----------+ | 2 | +-----------+
將被顯示為這樣:
mysql> SELECT MOD(29,9); -> 2
6.3.1 無型別的特殊運算子和函式
6.3.1.1 圓括號
( ... )
括號,使用它來強制一個表示式的計算順序。
mysql> SELECT 1+2*3; -> 7 mysql> SELECT (1+2)*3; -> 9
6.3.1.2 比較運算子
比較運算子的結果是 1
(TRUE)、0
(FALSE) 或 NULL
。這些函式可工作於數字和字串上。根據需要,字串將會自動地被轉換到數字,以及數字被轉換成字串(比如在 中)。
MySQL 使用下列規則進行比較:
- 如果一個或兩個引數是
NULL
,比較的結果是NULL
,除了<=>
運算子。 - 如果在一個比較操作中兩個引數均是字串,他們將作為字串被比較。
- 如果兩個引數均是整數,他們作為整數被比較。
- 十六進位制值如果不與一個數字進行比較,那麼它將當作一個二進位制字串。
- 如果引數之一是一個
TIMESTAMP
或DATETIME
列,而另一引數是一個常數,在比較之前,這個常數被轉換為一個時間戳。這樣做是為了對 OC 更友好。 - 在所有其它情況下,引數作為浮點(real)數字被比較。
預設地,字串使用當前字符集以忽略字母大小寫的方式進行比較(預設的字符集為 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; -> 0
>=
- 大於或等於:
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; -> 1 1 0
為了能夠與其它程式更好的工作,在使用IS NULL
是 MySQL 支援下列額外選擇性:- 透過它,你可以找到最後插入的記錄行:
SELECT * FROM tbl_name WHERE auto_col IS NULL
這個操作可以透過設定SQL_AUTO_IS_NULL=0
來禁止。檢視章節 . - 對於
NOT NULL
的DATE
和DATETIME
列,可以透過使用下列語句找到特殊的值0000-00-00
:SELECT * FROM tbl_name WHERE date_column IS NULL
這需要透過某些 ODBC 應用程式才能工作(因為 ODBC 不支援一個0000-00-00
日期)
- 透過它,你可以找到最後插入的記錄行:
expr BETWEEN min AND max
- 如果
expr
大於或等於min
,並且expr
小於或等於max
,BETWEEN
返回1
,否則返回0
。它等價於表示式(min <= expr AND expr <= max)
,只要所有的引數均是相同的型別。 否則型別會依照上面的規則發生轉換,但是應用於所有三個引數。注意,在 MySQL 4.0.5 之前,引數被轉換到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 NOT BETWEEN min AND max
- 等同於
NOT (expr BETWEEN min AND max)
。 expr IN (value,...)
- 如果
expr
是IN
列表中的作一值,它將返回1
,否則返回0
。如果所有的值均是常數,那麼所有的值被依照expr
的型別進行計算和排序。然後以一個二進位制搜尋方式完成專案的搜尋。這就意味著,如果IN
列表完全由常陣列成,IN
將是非常快的。如果expr
是一個字母大小寫敏感的字串表示式,字串比較將以大小寫敏感方式執行:mysql> SELECT 2 IN (0,3,5,'wefwf'); -> 0 mysql> SELECT 'wefwf' IN (0,3,5,'wefwf'); -> 1
從 MySQL 4.1 開始(符合 SQL-99 標準),如果左手邊的表示式是NULL
,或者在列表中沒有發現相匹配的值並且列表中的一個表示式是NULL
,IN
均返回NULL
。 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
值使用=
進行比較總是為 false ! COALESCE(list)
- 返回列表中第一個非
NULL
的元素:mysql> SELECT COALESCE(NULL,1); -> 1 mysql> SELECT COALESCE(NULL,NULL,NULL); -> NULL
INTERVAL(N,N1,N2,N3,...)
- Returns 如果
N
<N1
返回0
,如果N
<N2
返回1
,等等。所有的引數均被當作整數。為了函式能正確地工作,它要求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
如果以任何一個標準運算子(=
, <>
..., 但除了 LIKE
)對一個忽略大小寫的字串進行比較,尾部的空白空間(空格、TAB 和換行)均被忽略。
mysql> SELECT "a" ="A n"; -> 1
6.3.1.3 邏輯運算子
在 SQL 中,所有的邏輯運算子返回的值均為 TRUE、FALSE 或 NULL (未知)。在 MySQL 中,它們由 1
(TRUE)、0
(FALSE) 和 NULL
實現。這些大部分在不同的 SQL 間是相同的,然而某些可能會以一個非零值返回 TRUE。
NOT
!
- 邏輯非。如果運算元為
0
,返回1
;如果運算元為非零,返回0
;如果運算元為NOT NULL
,返回NULL
。mysql> SELECT NOT 10; -> 0 mysql> SELECT NOT 0; -> 1 mysql> SELECT NOT NULL; -> NULL mysql> SELECT ! (1+1); -> 0 mysql> SELECT ! 1+1; -> 1
最後一個例子返回1
,因為表示式是與(!1)+1
一樣被計算的。 AND
&&
- 邏輯與。如果所有的運算元都是非零或非
NULL
的,返回1
;如果有一個或多個運算元為0
,則返回0
,只要運算元中有NULL
返回值就為NULL
。mysql> SELECT 1 && 1; -> 1 mysql> SELECT 1 && 0; -> 0 mysql> SELECT 1 && NULL; -> NULL mysql> SELECT 0 && NULL; -> 0 mysql> SELECT NULL && 0; -> 0
請注意,在 MySQL 4.0.5 以前版本中,當遇到一個NULL
時就停止計算,而不是繼續程式檢查可能存在的0
。這就意味著,在這些版本中,SELECT (NULL AND 0)
返回NULL
,而不是0
。在 4.0.5 中,程式碼已被重新設計了,已便於在任何仍然使用情況下,返回值總是能如 ANSI 所規定的那樣。 OR
||
- 邏輯或。如果任何一個運算元是非零的,返回值為
1
,如果任一運算元為NULL
,返回值為NULL
,否則返回0
。mysql> SELECT 1 || 1; -> 1 mysql> SELECT 1 || 0; -> 1 mysql> SELECT 0 || 0; -> 0 mysql> SELECT 0 || NULL; -> NULL mysql> SELECT 1 || NULL; -> 1
XOR
- 邏輯異或。如果任一運算元為
NULL
,返回值為NULL
。對於非NULL
的運算元,如果有奇數個非零的運算元,結果返回為1
,否則返回0
。mysql> SELECT 1 XOR 1; -> 0 mysql> SELECT 1 XOR 0; -> 1 mysql> SELECT 1 XOR NULL; -> NULL mysql> SELECT 1 XOR 1 XOR 1; -> 1
a XOR b
算術相等於(a AND (NOT b)) OR ((NOT a) and b)
。XOR
在 MySQL 4.0.2 中被新增。
6.3.1.4 控制流函式
IFNULL(expr1,expr2)
- 如果
expr1
為非NULL
的,IFNULL()
返回expr1
,否則返回expr2
。IFNULL()
返回一個數字或字串值,這取決於它被使用的語境:mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'yes'); -> 'yes'
在 MySQL 4.0.6 和版本中,IFNULL(expr1,expr2)
的預設返回值以STRING
、REAL
或INTEGER
順序更加'general'了兩個表示式。當你基於一個表示式建立一個表或在一個臨時表中 MySQL 不得不一個從IFNULL()
返回的值時,這個與較早 MySQL 版本的不同將更加值得注意。CREATE TABLE foo SELECT IFNULL(1,"test") as test;
在 MySQL 4.0.6 中,列 'test' 的型別為CHAR(4)
,然而在較早的版本中,你得到的卻是BIGINT
。 NULLIF(expr1,expr2)
- 如果
expr1 = expr2
為真,返回NULL
,否則返回expr1
。它等同於CASE WHEN x = y THEN NULL ELSE x END
:mysql> SELECT NULLIF(1,1); -> NULL mysql> SELECT NULLIF(1,2); -> 1
注意,如果引數不相等,在 MySQL 中,expr1
被求值兩次。 IF(expr1,expr2,expr3)
- 如果
expr1
為真(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'),'no','yes'); -> 'no'
如果expr2
或expr3
明確地為NULL
,那麼函式IF()
的返回值型別為非NULL
列的型別。(這在選擇在 MySQL 4.0.3 中新加入)。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)
的測試結果。這可能不是你所期望的。在第二種情況下,比較測試原浮點數是否為一個非零值。比較的結果被作為整數使用。預設的IF()
返回值型別 (當結果儲存在臨時表中時,這是非常重要的) 在 MySQL 3.23 中按下列方式確定: 表示式 返回值 表示式(expr2)或表示式(expr3)返回值為字串 字串 表示式(expr2)或表示式(expr3)返回值為浮點型值 浮點型 表示式(expr2)或表示式(expr3)返回值為整型 整型 如果表示式(expr2)和表示式(expr3)均是字串,同時兩個字串均是忽略字母大小寫的,那麼返回值也是忽略字母大小寫的(從 MySQL 3.23.51 開始)。 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
- 第一個形式當
value=compare-value
時返回result
。第二個形式當第一個為真值的condition
出現時,返回該條件的結果。如果沒有匹配的結果值,那麼ELSE
後的結果將被返回。如果沒有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
返回值的型別 (INTEGER
、DOUBLE
或 STRING
) 與第一個返回值(第一個 THEN
後的表示式)的型別相同。
6.3.2 字串函式
如果返回結果的長度超過引數 max_allowed_packet
的大小,字串值函式將返回 NULL
。檢視章節 。
對於操作字串位置的函式,第一個位置被標記為 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
的最左邊的字元是一個多位元組的字元,根據多位元組字元的成分字元的 ASCII 碼值透過下面的公式計算返回那個的編碼:((first byte ASCII code)*256+(second byte ASCII code))[*256+third byte ASCII code...]
。如果最左邊的字元不是一個多位元組字元,返回值與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_or_S)
- 如果 N_OR_S 是一個數字,返回
N
的字串表示的十六進位制值形式,這裡N
是一個長長的(BIGINT
)數字。這個函式等價於CONV(N,10,16)
。如果 N_OR_S 是一個字串,N_OR_S 中的每個字元均被轉換為 2 位十六進位制數字,並以十六進位制的字串形式返回。這是0xff
形式的字串反轉操作。mysql> SELECT HEX(255); -> 'FF' mysql> SELECT HEX("abc"); -> 616263 mysql> SELECT 0x616263; -> "abc"
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'
CONCAT_WS(separator, str1, str2,...)
CONCAT_WS()
支援 CONCAT 加上一個分隔符,它是一個特殊形式的CONCAT()
。第一個引數剩餘引數間的分隔符。分隔符可以是與剩餘引數一樣的字串。如果分隔符是NULL
,返回值也將為NULL
。這個函式會跳過分隔符引數後的任何NULL
和空字串。分隔符將被加到被連線的字串之間:mysql> SELECT CONCAT_WS(",","First name","Second name","Last Name"); -> 'First name,Second name,Last Name' mysql> SELECT CONCAT_WS(",","First name",NULL,"Last Name"); -> 'First name,Last Name'
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()
和CHARACTER_LENGTH()
對於多位元組字元只計數一次。 BIT_LENGTH(str)
- 返回字串
str
的位元長度:mysql> SELECT BIT_LENGTH('text'); -> 32
LOCATE(substr,str)
POSITION(substr IN str)
- 返回子串
substr
在字串str
中第一次出現的位置。如果子串substr
在str
中不存在,返回值為0
:mysql> SELECT LOCATE('bar', 'foobarbar'); -> 4 mysql> SELECT LOCATE('xbar', 'foobar'); -> 0
這個函式是多位元組安全的。在 MySQL 3.23 中,這個函式是字母大小寫敏感的,當在 MySQL 4.0 中時,如有任一引數是一個二進位制字串,它才是字母大小寫敏感的。 LOCATE(substr,str,pos)
- 返回子串
substr
在字串str
中的第pos
位置後第一次出現的位置。如果substr
不在str
中返回0
:mysql> SELECT LOCATE('bar', 'foobarbar',5); -> 7
這個函式是多位元組安全的。在 MySQL 3.23 中,這個函式是字母大小寫敏感的,當在 MySQL 4.0 中時,如有任一引數是一個二進位制字串,它才是字母大小寫敏感的。 INSTR(str,substr)
- 返回子串
substr
在字串str
中第一次出現的位置。這與有兩個引數形式的LOCATE()
相似,只是引數的位置被顛倒了:mysql> SELECT INSTR('foobarbar', 'bar'); -> 4 mysql> SELECT INSTR('xbar', 'foobar'); -> 0
這個函式是多位元組安全的。在 MySQL 3.23 中,這個函式是字母大小寫敏感的,當在 MySQL 4.0 中時,如有任一引數是一個二進位制字串,它才是字母大小寫敏感的。 LPAD(str,len,padstr)
- 用字串
padstr
對str
進行左邊填補直至它的長度達到len
個字元長度,然後返回str
。如果str
的長度長於len'
,那麼它將被截除到len
個字元。mysql> SELECT LPAD('hi',4,'??'); -> '??hi'
RPAD(str,len,padstr)
- 用字串
padstr
對str
進行右邊填補直至它的長度達到len
個字元長度,然後返回str
。如果str
的長度長於len'
,那麼它將被截除到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 pFOR len)
MID(str,pos,len)
- 從字串
str
的pos
位置起返回len
個字元的子串。使用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('', '.', 2); -> '' mysql> SELECT SUBSTRING_INDEX('', '.', -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
的近音字。兩個發音差不多的字串應該有同樣的近音字。一個標準的近音字為 4 個字元長,但是函式SOUNDEX()
卻返回一個任意長的字串。你可以在結果上使用SUBSTRING()
標準的近音字。提供的字元中所有的非數字字母的字元均被忽略。所有在 A-Z 範圍之外的國際 alpha 字元被視為母音: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('', 'w', 'Ww'); -> 'WwW'
這個函式是多位元組安全的。 REPEAT(str,count)
- 返回一個由重複了
count
次的字串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)
- Returns a value 如果字串
str
在由N
個子串組成的列表strlist
中,返回一個1
到N
的值。一個字串列表是由透過字元 “,” 分隔的多個子串組成。如果第一個引數是一個常數字符串,並且第二個引數是一個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 bit)你將得到一個 'off' 字串。每個字串均被“分隔符”(預設為“,”)分隔,並且只有 'number_of_bits'(預設為 64) 個 'bits' 被使用:
mysql> SELECT EXPORT_SET(5,'Y','N',',',4) -> Y,N,Y,N
示例(譯者注):mysql> select EXPORT_SET(1,'1','0','',5); -> 10000 # 最左邊第一位為 2 的 0 次冪 mysql> select EXPORT_SET(2,'1','0','',5); -> 01000 # 最左邊第一位為 2 的 0 次冪,第二位為 2 的 1 次冪 mysql> select EXPORT_SET(4,'1','0','',5); -> 00100 # 最左邊第一位為 2 的 0 次冪,第二位為 2 的 1 次冪,第三位為 2 的 2 次冪 mysql> select EXPORT_SET(15,'1','0','',5); -> 11110 # 最左邊第一位為 2 的 1 次冪,第四位為 2 的 3 次冪 mysql> select EXPORT_SET(16,'1','0','',5); -> 00001 # 最左邊第一位為 2 的 1 次冪,第五位為 2 的 4 次冪 # 以上結果在 MySQL 4.0.12 中測試透過
示例結束(譯者注) LCASE(str)
LOWER(str)
- 依照當前字符集設定對映(預設為 ISO-8859-1 Latin1),將字串
str
中的所有字元改變為小寫,然後返回該值:mysql> SELECT LCASE('QUADRATICALLY'); -> 'quadratically'
這個函式是多位元組安全的。 UCASE(str)
UPPER(str)
- 依照當前字符集設定對映(預設為 ISO-8859-1 Latin1),將字串
str
中的所有字元改變為大寫,然後返回該值:mysql> SELECT UCASE('Hej'); -> 'HEJ'
這個函式是多位元組安全的。 LOAD_FILE(file_name)
- 讀入,並將檔案內容作為一個字串返回。這個檔案必須在伺服器上,必須指定檔案完整的路徑名,並且你必須有
FILE
。檔案必須完全可讀,並且小於max_allowed_packet
。如果該檔案不存在,或因為上面的任一原因而不能被讀出,函式返回NULL
:mysql> UPDATE tbl_name SET blob_column=LOAD_FILE("/tmp/picture") WHERE id=1;
如果你沒有使用 MySQL 3.23,你不得不在你的應用程式中讀取檔案,以檔案的資訊建立一個INSERT
語句,來更新資料庫。如果你使用 MySQL++ 庫,下面有一個示例,詳細請檢視 http:///documentation/mysql++/mysql++-examples.html。 QUOTE(str)
- 引用一個字串,並返回一個結果,該結果可作為一個適當轉義過的資料值在一個 SQL 語句中使用。字串被單引號包圍著返回,並且在該字串中每個單引號(“'”)、反斜線符號(“”)、ASCII NUL 和 Control-Z 出現的地方,在該字元之前均被加上了一個反斜線。如果引數是
NULL
,那麼結果值是一個沒有單引號包圍的單詞 “NULL”。QUOTE
函式在 MySQL 4.0.3 中被加入。mysql> SELECT QUOTE("Don't"); -> 'Don't!' mysql> SELECT QUOTE(NULL); -> NULL
6.3.2.1 字串比較函式
在必要的時候,MySQL 會自動地將數字轉換到字串,反之亦然:
mysql> SELECT 1+"1"; -> 2 mysql> SELECT CONCAT(2,' test'); -> '2 test'
如果你希望明確地將一個數字轉換為字串,將它引數傳遞到 CONCAT()
中。
如果將一個二進位制字串作為引數傳遞給一個字串函式,結果返回也是一個二進位制字串。一個數字被轉換到字串,該字串被視為是一個二進位制字串。這僅僅會影響結果。
通常,只要字串比較中的任何一個表示式是區分大小寫的,比較就會以字母大小寫敏感方式執行。
expr LIKE pat [ESCAPE 'escape-char']
- 使用 SQL 的簡單的正規表示式進行比較的模式匹配。返回
1
(TRUE) 或0
(FALSE)。可以在模式中使用下面所示的兩個萬用字元字元與LIKE
配合: 字元 含義%
匹配任意多個字元,甚至是零個字元_
嚴格地匹配一個字元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
下面兩個語句表明,字串比較是忽略大小寫的,除非任一運算元是一個二進位制字串:mysql> SELECT 'abc' LIKE 'ABC'; -> 1 mysql> SELECT 'abc' LIKE BINARY 'ABC'; -> 0
LIKE
允許用在一個數字表示式上。(這是 MySQL 對 ANSI SQLLIKE
的擴充套件。)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 SOUNDS LIKE expr
- 等同於
SOUNDEX(expr)=SOUNDEX(expr)
(適用於 MySQL 4.1 或更新的版本)。 expr REGEpat
expr RLIKE pat
- 依照模式
pat
對字串表示式expr
執行一個模式比較。模式可以是一個擴充套件的正規表示式。檢視章節 。Returns 如果表示式expr
匹配pat
,返回1
,否則返回0
。RLIKE
是REGEXP
的同義詞,它提供了與mSQL
的相容。注意:MySQL 在字串中使用的是 C 的轉義句法(例如 “n”),所以在REGEXP
字串中使用的任何一個 “” 必須被雙寫。在 MySQL 3.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 mysql> SELECT "a" REGEXP "^[a-d]"; -> 1
當決定一個字元的型別時,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
MATCH (col1,col2,...) AGAINST (expr)
MATCH (col1,col2,...) AGAINST (expr IN BOOLEAN MODE)
MATCH ... AGAINST()
用於全文搜尋,返回在列(col1,col2,...)
和查詢expr
之間文字的相關相似的尺度。相關性是一個正的浮點型數字。零相關性意味著不相似。MATCH ... AGAINST()
可用於 MySQL 3.23.23 或更新的版本中。IN BOOLEAN MODE
擴充套件在 MySQL 4.0.1 中被新加入。詳細描述和使用範例,請檢視 。
6.3.2.2 字母大小寫敏感性
BINARY
BINARY
運算子將跟在它後面的字串強制作為一個二進位制字串。這可以很容易地強制一個列的比較以字母大小寫敏感方式進行,即使該列沒有定義為BINARY
或BLOB
?mysql> SELECT "a" = "A"; -> 1 mysql> SELECT BINARY "a" = "A"; -> 0
BINARY string
是CAST(string AS BINARY)
的縮寫。檢視章節 。BINARY
在 MySQL 3.23.0 中被加入。注意,當將一個索引列強制為BINARY
時,在某些語境中,MySQL 將不能有效地使用索引。
如果希望對一個 blob 進行忽略字母大小的比較時,你通常可以在比較前將它轉換到大寫:
SELECT 'A' LIKE UPPER(blob_col) FROM table_name;
我們計劃不久推出在不同字符集間的轉化,以使字串比較有更好的伸縮性。
6.3.3 數字函式
6.3.3.1 算術運算
常用的算術運算子均是可用的。注意,如果兩個引數均是整型,`-', `+' 和 `*' 以 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
最後一個表示式的結果是錯誤的,這是因為乘法結果超過了 64 位BIGINT
計算範圍。 /
- 除法:
mysql> SELECT 3/5; -> 0.60
被 0 除將返回一個NULL
結果:mysql> SELECT 102/(1-1); -> NULL
只有當在一個結果被轉換到一個整數的語境中執行時,除法將會以BIGINT
進行算術計算。
6.3.3.2 數學函式
所有的數學函式在發生錯誤的情況下,均返回 NULL
。
-
- 一元減。 改變引數的符號:
mysql> SELECT - 2; -> -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
是負數、0 或正數。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 mysql> SELECT 29 MOD 9; -> 2
這個函式可安全地使用於BIGINT
值。最後一個示例可在 MySQL 4.1 中工作。 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)
ROUND(X,D)
- 將引數
X
四捨五入到最近的整數,然後返回。兩個引數的形式是將一個數字四捨五入到D
個小數後返回。mysql> SELECT ROUND(-1.23); -> -1 mysql> SELECT ROUND(-1.58); -> -2 mysql> SELECT ROUND(1.58); -> 2 mysql> SELECT ROUND(1.298, 1); -> 1.3 mysql> SELECT ROUND(1.298, 0); -> 1
注意,當引數在兩個整數之間時,ROUND()
的行為取決於 C 庫的實現。某些取整到最近的偶數,總是向下取,總是向上取,也可能總是接近於零。如果你需要某種取整型別,應該使用一個明確定義的函式比如TRUNCATE()
或FLOOR()
代替。 DIV
- 整除。類似於
FLOOR()
,但是它可安全地用於BIGINT
值。mysql> SELECT 5 DIV 2 -> 2
DIV
在 MySQL 4.1.0 中新加入。 EXP(X)
- 返回值
e
(自然對數的底) 的X
次方:mysql> SELECT EXP(2); -> 7.389056 mysql> SELECT EXP(-2); -> 0.135335
LN(X)
- 返回
X
的自然對數:mysql> SELECT LN(2); -> 0.693147 mysql> SELECT LN(-2); -> NULL
這個函式在 MySQL 4.0.3 被新加入。在 MySQL 中,它是LOG(X)
的同義詞。 LOG(X)
LOG(B,X)
- 如果以一個引數呼叫,它返回
X
的自然對數:mysql> SELECT LOG(2); -> 0.693147 mysql> SELECT LOG(-2); -> NULL
如果以兩個引數呼叫,這個函式返回X
任意底B
的對數:mysql> SELECT LOG(2,65536); -> 16.000000 mysql> SELECT LOG(1,100); -> NULL
任意底選項在 MySQL 4.0.3 中被加入。LOG(B,X)
等價於LOG(X)/LOG(B)
。 LOG2(X)
- 返回
X
的以 2 為底的對數:mysql> SELECT LOG2(65536); -> 16.000000 mysql> SELECT LOG2(-100); -> NULL
LOG2()
通常可以用於計數出一個數字需要多少個位元位用於儲存它。這個函式在 MySQL 4.0.3 中被新增。在更早的版本中,可以使用LOG(X)/LOG(2)
來代替它。 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 值(圓周率)。缺少顯示 5 位小數,但是在 MySQL 內部,為 PI 使用全部的雙精度。
mysql> SELECT PI(); -> 3.141593 mysql> SELECT PI()+0.000000000000000000; -> 3.141592653589793116
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
的值。如果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
ATAN(Y,X)
ATAN2(Y,X)
- 返回兩個變數
X
和Y
的反正切。它類似於計算Y / X
的反正切,除了兩個引數的符號用於決定結果的象限:mysql> SELECT ATAN(-2,2); -> -0.785398 mysql> SELECT ATAN2(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.9233482386203 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(20); -> 0.15888261251047 mysql> SELECT RAND(); -> 0.63553050033332 mysql> SELECT RAND(); -> 0.70100469486881
在一個ORDER BY
子句中,不可以使用RAND()
值使用一個列,因為ORDER BY
將多次重複計算列。從 MySQL 3.23 開始,你可以使用:SELECT * FROM table_name ORDER BY RAND()
,這有利於得到一個來自SELECT * FROM table1,table2 WHERE a=b AND c
的集合中的隨機樣本。注意,在一個 WHERE
子句中的RAND()
將在每次WHERE
執行時被重新計算。RAND()
並不是預期完美的隨機數發生器,但是可以代替做為產生特別的隨機數一個的方法,這樣便於在兩個不同平臺下的同一 MySQL 版本間移動。LEAST(X,Y,...)
- 有兩個或更多個引數,返回最小(最小值)的引數。引數使用下列規則進行比較:
- 如果返回值用於一個
INTEGER
語境,或所有的引數是整數值,它們作為整數比較。 - 如果返回值用於一個
REAL
語境,或所有的引數均是實數值,它們作為實數被比較。 - 如果任何一個引數是字母大小寫敏感的,引數作為大小寫敏感的字串進行比較。
- 在其它情況下,引數做為忽略大小寫的字元中進行比較:
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 mysql> SELECT TRUNCATE(-1.999,1); -> -1.9
從 MySQL 3.23.51 開始,所有數字被四捨五入到零。如果D
是負數,那麼數字的整個部分被對準零位輸出:mysql> SELECT TRUNCATE(122,-2); -> 100
注意, 十進值小數在中通常不以精確數字儲存,而是雙精度型的值,你可能會被下列結果所愚弄:mysql> SELECT TRUNCATE(10.28*100,0); -> 1027
上面結果的發生是因為 10.28 實際上是以某些像 10.2799999999999999 的形式被儲存的。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-998556/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 4.1.0 中文參考手冊 --- 6.8 MySQL 全文搜尋 (轉)MySql
- MySQL 4.1.0 中文參考手冊 --- 6.2 列型別 (轉)MySql型別
- MySQL 4.1.0 中文參考手冊 --- 6.9 MySQL 查詢快取 (轉)MySql快取
- MySQL 4.1.0 中文參考手冊 --- 6.4 資料操縱:SELECT, INSERT, UPDATE, DELETE (轉)MySqldelete
- MySQL 4.1.0 中文參考手冊 --- 6.7 MySQL 事務與鎖定命令 (轉)MySql
- MySQL 4.1.0 中文參考手冊 --- 6.5 資料定義: CREATE、DROP、ALTER (轉)MySql
- MySQL 4.1.0 中文參考手冊 --- 6.6 基本的 MySQL 使用者實用命令 (轉)MySql
- delphi函式參考手冊 (轉)函式
- MySQL中文參考手冊5(安裝MySQL下) (轉)MySql
- Oracle分析函式參考手冊(轉)一Oracle函式
- Oracle分析函式參考手冊(轉)二Oracle函式
- MySQL 5.1中文參考手冊MySql
- Oracle 9i 分析函式參考手冊(1)Oracle函式
- Oracle 9i 分析函式參考手冊(轉)Oracle函式
- InnoDB 中文參考手冊 --- 11 表和索引結構 (轉)索引
- DOJO API 中文參考手冊API
- MySQL 5.1參考手冊MySql
- mysql 5.1 參考手冊MySql
- mysql最新版中文參考手冊線上瀏覽MySql
- Oracle 9i 分析函式參考手冊Oracle函式
- Arduino參考手冊-函式和變數及電路圖UI函式變數
- InnoDB 中文參考手冊 --- 10 multiversioning 的實現 (轉)
- InnoDB 中文參考手冊 --- 13 出錯處理 (轉)
- DOM參考手冊及事件參考手冊事件
- oracle 9i分析函式參考手冊 (二)Oracle函式
- Oracle 9i 分析函式參考手冊(2)Oracle函式
- Oracle 9i 分析函式參考手冊(3)Oracle函式
- Oracle 9i 分析函式參考手冊(6)Oracle函式
- Oracle 9i 分析函式參考手冊(5)Oracle函式
- Oracle 9i 分析函式參考手冊(4)Oracle函式
- Oracle 9i 分析函式參考手冊(7)Oracle函式
- Oracle 9i 分析函式參考手冊(8)Oracle函式
- MySQL最佳化WHERE子句(轉)MySql
- mysql檢視--mysql 5.1 參考手冊MySql
- Git命令參考手冊(轉)Git
- SQL 語法參考手冊(轉)
- SQL語法參考手冊(轉)SQL
- InnoDB 中文參考手冊 --- 6 備份和恢復 InnoDB 資料庫 (轉)資料庫