小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

MySQL函數(shù)和操作符

 為你放縱一生 2016-10-26

MySQL函數(shù)和操作符

1. 環(huán)境登錄

無(wú)需密碼自動(dòng)登錄,系統(tǒng)用戶名shiyanlou

2. 環(huán)境介紹

本實(shí)驗(yàn)環(huán)境采用帶桌面的Ubuntu Linux環(huán)境,實(shí)驗(yàn)中會(huì)用到桌面上的程序:

  1. 命令行終端: Linux命令行終端,打開(kāi)后會(huì)進(jìn)入Bash環(huán)境,可以使用Linux命令

  2. Firefox及Opera:瀏覽器,可以用在需要前端界面的課程里,只需要打開(kāi)環(huán)境里寫(xiě)的HTML/JS頁(yè)面即可

  3. gvim:非常好用的Vim編輯器,最簡(jiǎn)單的用法可以參考課程Vim編輯器

  4. gedit及Brackets:如果您對(duì)gvim的使用不熟悉,可以用這兩個(gè)作為代碼編輯器,其中Brackets非常適用于前端代碼開(kāi)發(fā)

3. 環(huán)境使用

使用GVim編輯器輸入實(shí)驗(yàn)所需的代碼及文件,使用Xfce終端(XfceTerminal)運(yùn)行所需命令進(jìn)行操作。

實(shí)驗(yàn)報(bào)告可以在個(gè)人主頁(yè)中查看,其中含有每次實(shí)驗(yàn)的截圖及筆記,以及每次實(shí)驗(yàn)的有效學(xué)習(xí)時(shí)間(指的是在實(shí)驗(yàn)桌面內(nèi)操作的時(shí)間,如果沒(méi)有操作,系統(tǒng)會(huì)記錄為發(fā)呆時(shí)間)。這些都是您學(xué)習(xí)的真實(shí)性證明。

一、操作符

1.1 操作符優(yōu)先級(jí)

以下列表顯示了操作符優(yōu)先級(jí)的由低到高的順序。排列在同一行的操作符具有相同的優(yōu)先級(jí)。

此處輸入圖片的描述

其中,部分操作符的優(yōu)先級(jí)取決于SQL的模式:

  • 默認(rèn)情況下,||是邏輯運(yùn)算符OR。當(dāng)啟用PIPES_AS_CONCAT模式時(shí),||就是一個(gè)字符串連接符,優(yōu)先級(jí)處于^與一元運(yùn)算符之間。
  • 默認(rèn)情況下,!的優(yōu)先級(jí)高于NOT。但當(dāng)啟用HIGH_NOT_PRECEDENCE模式時(shí),!NOT擁有相同的優(yōu)先級(jí)。

1.2 圓括號(hào)( ... )

使用括弧來(lái)規(guī)定表達(dá)式的運(yùn)算順序,例如:

mysql> SELECT 1+2*3;

mysql> SELECT (1+2)*3;

此處輸入圖片的描述

1.3 比較函數(shù)和操作符

比較運(yùn)算產(chǎn)生的結(jié)果為1(TRUE)、0 (FALSE)NULL。這些運(yùn)算可用于數(shù)字和字符串。如果必要的話,字符串可自動(dòng)轉(zhuǎn)換為數(shù)字,而數(shù)字也可自動(dòng)轉(zhuǎn)換為字符串。

本節(jié)中的一些函數(shù)(如LEAST()GREATEST())的返回值并不會(huì)返回1(TRUE)、 0 (FALSE)NULL這樣的結(jié)果。但是按照下述規(guī)則函數(shù)進(jìn)行比較運(yùn)算后其返回值可以為以上結(jié)果:

MySQL按照以下規(guī)則進(jìn)行數(shù)值比較:

  • 若函數(shù)中有一個(gè)或兩個(gè)參數(shù)都是NULL,則比較運(yùn)算的結(jié)果為NULL,除非是等號(hào)比較運(yùn)算符<=>。
  • 若同一個(gè)比較運(yùn)算中的兩個(gè)參數(shù)都是字符串類型,則作為字符串進(jìn)行比較。
  • 若兩個(gè)參數(shù)均為整數(shù),則按照整數(shù)進(jìn)行比較。
  • 十六進(jìn)制值在不作為數(shù)字進(jìn)行比較時(shí),則按照二進(jìn)制字符串處理。
  • 假如參數(shù)中的一個(gè)為TIMESTAMPDATETIME數(shù)據(jù)類型,而其它參數(shù)均為常數(shù),則在進(jìn)行比較前應(yīng)該將常數(shù)轉(zhuǎn)為timestamp類型。這樣做的目的是為了使ODBC的進(jìn)行更加順利。注意:這不用于IN()中的參數(shù)!為了更加可靠,在進(jìn)行對(duì)比時(shí)通常使用完整的datetime/date/time字符串。
  • 在其它情況下,參數(shù)作為浮點(diǎn)數(shù)(實(shí)數(shù))進(jìn)行比較。

在默認(rèn)狀態(tài)下,字符串比較不區(qū)分大小寫(xiě),并使用現(xiàn)有字符集(默認(rèn)為cp1252 Latin1,同時(shí)也適用于英語(yǔ))。

為了達(dá)到比較的目的,可使用CAST()函數(shù)將某個(gè)值轉(zhuǎn)為另外一種類型。使用CONVERT()可以將字符串值轉(zhuǎn)為不同的字符集。

下面對(duì)各類操作符的使用進(jìn)行示例:

  • = 等于:

    mysql> SELECT 1 = 0;
    
    mysql> SELECT '0' = 0;
    
    mysql> SELECT '0.01' = 0;
    

    此處輸入圖片的描述

    對(duì)于行比較,(a, b) = (x, y)相當(dāng)于:(a = x) AND (b = y)。

  • <=> 空值安全的等號(hào):

    這個(gè)操作符與=操作符執(zhí)行相同的比較操作,不過(guò)在兩個(gè)操作碼均為NULL時(shí),其返回至為1而不為NULL,而當(dāng)一個(gè)操作碼為NULL時(shí),其所得值為0而不為NULL。

    mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
    
    mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
    

    此處輸入圖片的描述

    對(duì)于行比較,(a, b) <=> (x, y)相當(dāng)于:(a <=> x) AND (b <=> y)。

  • <>!= 不等于:

    mysql> SELECT '.01' <> '0.01';
    
    mysql> SELECT .01 <> '0.01';
    
    mysql> SELECT 'zapp' <> 'zappp';
    

    此處輸入圖片的描述

    對(duì)于行比較,(a, b) <> (x, y)相當(dāng)于:(a <> x) OR (b <> y)。

  • <=< code=""> 小于等于:

    mysql> SELECT 0.1 <= 2;
    

    對(duì)于行比較,(a, b) <= (x, y)相當(dāng)于:(a <= x) AND (b <= y)。

  • > 大于:

    mysql> SELECT 2 > 2;
    

    對(duì)于行比較,(a, b) > (x, y)相當(dāng)于:(a > x) AND (b > y)。

  • IS boolean_valueIS NOT boolean_value:根據(jù)一個(gè)布爾值來(lái)檢驗(yàn)一個(gè)值,在這里,布爾值可以是TRUE、FALSEUNKNOWN。

    mysql> SELECT 1 IS TRUE, 0 IS FALSE, NULL IS UNKNOWN;
    
    mysql> SELECT 1 IS NOT UNKNOWN, 0 IS NOT UNKNOWN, NULL IS NOT UNKNOWN;
    
    # IS NULL 和 IS NOT NULL 檢驗(yàn)一個(gè)值是否為 NULL。
    
    mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
    
    mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
    

    此處輸入圖片的描述

  • expr BETWEEN min AND max 假如expr大于或等于minexpr小于或等于max, 則BETWEEN的返回值為1,否則是0。若所有參數(shù)都是同一類型,則上述關(guān)系相當(dāng)于表達(dá)式 :min <= expr="" and="" <="max。其它類型的轉(zhuǎn)換 根據(jù)本章開(kāi)篇所述規(guī)律進(jìn)行,且適用于3種參數(shù)中任意一種。

    mysql> SELECT 1 BETWEEN 2 AND 3;
    
    mysql> SELECT 'b' BETWEEN 'a' AND 'c';
    
    mysql> SELECT 2 BETWEEN 2 AND '3';
    

    此處輸入圖片的描述

    expr NOT BETWEEN min AND max這相當(dāng)于NOT(expr BETWEEN min AND max)。

  • COALESCE(value,...) 返回參數(shù)列表當(dāng)中的第一個(gè)非NULL值,在沒(méi)有非NULL值的情況下返回值為NULL。

    mysql> SELECT COALESCE(NULL,1);
    
    mysql> SELECT COALESCE(NULL,NULL,NULL);
    

    此處輸入圖片的描述

  • GREATEST(value1,value2,...)當(dāng)有2個(gè)或2個(gè)以上參數(shù)時(shí),返回值為最大(最大值的)參數(shù)。比較參數(shù)所依據(jù)的規(guī)律同LEAST()相同。

    mysql> SELECT GREATEST(2,0);
    
    mysql> SELECT GREATEST('B','A','C');
    

    此處輸入圖片的描述

    在所有參數(shù)為NULL的情況下,GREATEST()的返回值為NULL。

  • expr IN (value,...)exprIN列表中的任意一個(gè)值,則其返回值為1, 否則返回值為0。假如所有的值都是常數(shù),則其計(jì)算和分類根據(jù) expr的類型進(jìn)行。這時(shí),使用二分搜索來(lái)搜索信息。如果IN值列表全部由常數(shù)組成,則意味著IN的速度非???。如果expr是一個(gè)區(qū)分大小寫(xiě)的字符串表達(dá)式,則字符串比較也按照區(qū)分大小寫(xiě)的方式進(jìn)行。

    mysql> SELECT 2 IN (0,3,5,'wefwf');
    
    mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');
    

    嘗試輸入上述語(yǔ)句并分析結(jié)果,思考第二條語(yǔ)句的可行性。

    IN列表中所列值的個(gè)數(shù)僅受限于max_allowed_packet值。

    為了同SQL標(biāo)準(zhǔn)相一致,在左側(cè)表達(dá)式為NULL的情況下,或是表中找不到匹配項(xiàng)或是表中一個(gè)表達(dá)式為NULL的情況下,IN的返回值均為NULL。

    IN()語(yǔ)法也可用于書(shū)寫(xiě)某些類型的子查詢。

  • expr NOT IN (value,...)這與NOT (expr IN (value,...))相同。

    ISNULL(expr)如果exprNULL,那么ISNULL()的返回值為1,否則返回值為0。

    mysql> SELECT ISNULL(1+1);
    
    mysql> SELECT ISNULL(1/0);
    

    通常使用ISNULL()來(lái)判斷一個(gè)值是否為NULL。(使用=比較符對(duì)比一個(gè)值與NULL值是錯(cuò)誤的)。

  • INTERVAL(N,N1,N2,N3,...)假如N < N1,則返回值為0;假如N < N2 等,則返回值為1;假如N為NULL,則返回值為-1。所有的參數(shù)均按照整數(shù)處理。為了這個(gè)函數(shù)的正確運(yùn)行,必須滿足N1 < N2 < N3 < ……< Nn 。其原因是使用了二分查找(極快速)。

    mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
    
    mysql> SELECT INTERVAL(10, 1, 10, 100, 1000);
    
    mysql> SELECT INTERVAL(22, 23, 30, 44, 200);
    

1.4 邏輯操作符

在SQL中,所有邏輯操作符的計(jì)算所得結(jié)果均為TRUE、FALSENULL(UNKNOWN)。在MySQL中,它們的表達(dá)形式為1 (TRUE)、 0 (FALSE)NULL,這在不同SQL數(shù)據(jù)庫(kù)服務(wù)器上都是通用的,然而有一些服務(wù)器對(duì)TRUE的返回值可能是任意一個(gè)非零值。

  • NOT,! :邏輯NOT。

    當(dāng)操作數(shù)為0時(shí),所得值為1 ;當(dāng)操作數(shù)為非零值時(shí),所得值為0,而當(dāng)操作數(shù)為NOT NULL時(shí),所得的返回值為NULL。

    mysql> SELECT NOT 10;
    
    mysql> SELECT NOT 0;
    
    mysql> SELECT NOT NULL;
    
    mysql> SELECT ! (1+1);
    
    mysql> SELECT ! 1+1;
    

    嘗試運(yùn)行上面的語(yǔ)句,發(fā)現(xiàn)最后一個(gè)例子產(chǎn)生的結(jié)果為 1,原因是表達(dá)式的計(jì)算方式和(!1)+1相同。

  • AND,&&:邏輯AND。

    當(dāng)所有操作數(shù)均為非零值、并且不為NULL時(shí),計(jì)算所得結(jié)果為1,當(dāng)一個(gè)或多個(gè)操作數(shù)為0時(shí),所得結(jié)果為0,其余情況返回值為NULL

    mysql> SELECT 1 && 1;
    
    mysql> SELECT 1 && 0;
    
    mysql> SELECT 1 && NULL;
    
    mysql> SELECT 0 && NULL;
    
  • OR,||:邏輯OR。

    當(dāng)兩個(gè)操作數(shù)均為非NULL值時(shí),如有任意一個(gè)操作數(shù)為非零值,則結(jié)果為1,否則結(jié)果為0。當(dāng)有一個(gè)操作數(shù)為NULL時(shí),如另一個(gè)操作數(shù)為非零值,則結(jié)果為1,否則結(jié)果為NULL。假如兩個(gè)操作數(shù)均為NULL,則所得結(jié)果為NULL。

    mysql> SELECT 1 || 1;
    
    mysql> SELECT 1 || 0;
    
    mysql> SELECT 0 || 0;
    
    mysql> SELECT 0 || NULL;
    
    mysql> SELECT 1 || NULL;
    
  • XOR:邏輯XOR。

    當(dāng)任意一個(gè)操作數(shù)為NULL時(shí),返回值為NULL。對(duì)于非NULL的操作數(shù),假如有奇數(shù)個(gè)操作數(shù)為非零值,則計(jì)算所得結(jié)果為 1 ,否則為 0 。

    mysql> SELECT 1 XOR 1;
    
    mysql> SELECT 1 XOR 0;
    
    mysql> SELECT 1 XOR NULL;
    
    mysql> SELECT 1 XOR 1 XOR 1;
    

    a XOR b的計(jì)算等同于(a AND (NOT b)) OR ((NOT a)和 b)。

二、控制流程函數(shù)

  • 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

    在上面第一條語(yǔ)句返回的是value=compare-value的結(jié)果。而第二條語(yǔ)句的返回結(jié)果是第一條語(yǔ)句的真正的結(jié)果。如果沒(méi)有匹配的結(jié)果值,則返回結(jié)果為ELSE語(yǔ)句后的結(jié)果,如果沒(méi)有ELSE部分,則返回值為NULL。

    mysql> SELECT CASE 1 WHEN 1 THEN 'one'
     -> WHEN 2 THEN 'two' ELSE 'more' END;
    
    mysql> SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;
    
    mysql> SELECT CASE BINARY 'B'
     -> WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
    

    一個(gè)CASE表達(dá)式的默認(rèn)返回值類型是任何返回值的兼容類型,但具體情況視其所在語(yǔ)境而定。如果用在字符串語(yǔ)境中,則返回結(jié)果為字符串類型。如果用在數(shù)字語(yǔ)境中,則返回結(jié)果為十進(jìn)制值、實(shí)數(shù)值或整數(shù)值。

  • IF(expr1,expr2,expr3)

    如果expr1TRUE(expr1 <> 0 and expr1 <> NULL),則IF()的返回值為expr2; 否則返回值則為expr3。IF()的返回值是否為數(shù)字值或字符串值,具體情況視其所在語(yǔ)境而定。

    mysql> SELECT IF(1>2,2,3);
    
    mysql> SELECT IF(1<2,'yes ','no');
    
    mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
    

    如果expr2expr3中只有一個(gè)表達(dá)式是NULL值,則IF()函數(shù)的結(jié)果類型 為非NULL表達(dá)式的結(jié)果類型。

    expr1必須作為一個(gè)整數(shù)值進(jìn)行評(píng)估,也就是說(shuō),假如你正在驗(yàn)證浮點(diǎn)值或字符串值,那么應(yīng)該使用比較運(yùn)算進(jìn)行檢驗(yàn)。

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

    觀察并對(duì)比上述語(yǔ)句的返回結(jié)果,發(fā)現(xiàn)在上述的第一個(gè)例子中,IF(0.1)的返回值為1,原因是IF(0.1)檢驗(yàn)為真。在第二個(gè)例子中,比較檢驗(yàn)了原始浮點(diǎn)值,目的是為了了解是否其為非零值,對(duì)比的結(jié)果是0.1確實(shí)不等于0,那么第一個(gè)表達(dá)式的結(jié)果就是整數(shù)1,因此返回結(jié)果為1

    IF()(這一點(diǎn)在其被儲(chǔ)存到臨時(shí)表時(shí)很重要)的默認(rèn)返回值類型按照以下方式計(jì)算: 此處輸入圖片的描述

    假如expr2expr3都是字符串類型,且其中任何一個(gè)字符串區(qū)分大小寫(xiě),則返回結(jié)果都是區(qū)分大小寫(xiě)。

  • IFNULL(expr1,expr2)

    假如expr1不為NULL,則IFNULL()的返回值為 expr1;否則其返回值為expr2。IFNULL()的返回值是否為數(shù)字或是字符串,具體情況取決于其所使用的語(yǔ)境。

    mysql> SELECT IFNULL(1,0);
    
    mysql> SELECT IFNULL(NULL,10);
    
    mysql> SELECT IFNULL(1/0,10);
    

    IFNULL(expr1,expr2)的默認(rèn)結(jié)果值為兩個(gè)表達(dá)式中數(shù)據(jù)類型更加“通用”的一個(gè),順序?yàn)?code>STRING、REALINTEGER。假設(shè)有一個(gè)表中含有該表達(dá)式,或MySQL必須在內(nèi)存儲(chǔ)器中儲(chǔ)存IFNULL()的返回值到一個(gè)臨時(shí)表中:

    CREATE TABLE tmp SELECT IFNULL(1,'test') AS test;
    DESCRIBE tmp;
    

    在這個(gè)例子中,測(cè)試列的類型為字符串類型CHAR(4)。

  • NULLIF(expr1,expr2)

    如果expr1 = expr2成立,那么返回值為NULL,否則返回值為expr1。這和CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END語(yǔ)句的原理相同。

    mysql> SELECT NULLIF(1,1);
    
    mysql> SELECT NULLIF(1,2);
    

    注意:如果參數(shù)不相等,則MySQL會(huì)評(píng)估expr1兩次。

三、字符串函數(shù)

如果字符串函數(shù)返回結(jié)果的長(zhǎng)度大于max_allowed_packet系統(tǒng)變量的最大值時(shí),字符串值函數(shù)的返回值為NULL。

對(duì)于在字符串上操作的函數(shù),第一個(gè)位置的編號(hào)為 1。

  • ASCII(str)

    返回值為字符串str的最左字符的數(shù)值。假如str為空字符串,則返回值為 0。假如strNULL,則返回值為NULL。ASCII()用于從0255的 數(shù)值的字符。

    mysql> SELECT ASCII('2');
    
    mysql> SELECT ASCII(2);
    
    mysql> SELECT ASCII('dx');
    

    更多疑問(wèn)見(jiàn)ORD()函數(shù)。

    -BIN(N)

    返回值為N的二進(jìn)制值的字符串表示,其中N為一個(gè)longlong (BIGINT)型數(shù)字。等同于CONV(N,10,2)。假如NNULL,則返回值為NULL。

    mysql> SELECT BIN(12);
    
  • BIT_LENGTH(str)

    返回值為二進(jìn)制的字符串str 長(zhǎng)度。

    mysql> SELECT BIT_LENGTH('text');
    
  • CHAR(N,... [USING charset])

    CHAR()將每個(gè)參數(shù)N理解為一個(gè)整數(shù),其返回值為一個(gè)由這些參數(shù)轉(zhuǎn)換為字符后組成的字符串。其中NULL值被省略。

    mysql> SELECT CHAR(77,121,83,81,'76');
    
    mysql> SELECT CHAR(77,77.3,'77.3');
    

    大于255CHAR()參數(shù)被轉(zhuǎn)換為多個(gè)字符。 例如,CHAR(256)相當(dāng)于 CHAR(1,0), 而CHAR(256*256)則相當(dāng)于CHAR(1,0,0)

    mysql> SELECT HEX(CHAR(1,0)), HEX(CHAR(256));
    mysql> SELECT HEX(CHAR(1,0,0)), HEX(CHAR(256*256));
    

    CHAR()的返回值為一個(gè)二進(jìn)制字符串??蛇x擇使用USING語(yǔ)句產(chǎn)生一個(gè)給定的字符集中的字符串:

    mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
    mysql> SELECT CHARSET(CHAR(0x65)), CHARSET(CHAR(0x65 USING utf8));
    

    如果USING已經(jīng)被給定,而結(jié)果字符串不符合給出的字符集,則會(huì)發(fā)出警告。同樣,如果嚴(yán)格的SQL模式被激活,則CHAR()的結(jié)果會(huì)是NULL。

  • CHAR_LENGTH(str)

    返回值為字符串str的長(zhǎng)度,長(zhǎng)度單位為字符,一個(gè)多字節(jié)字符算作一個(gè)單字符。對(duì)于一個(gè)包含五個(gè)二字節(jié)字符集,LENGTH()返回值為10,而CHAR_LENGTH()的返回值為5。

  • CHARACTER_LENGTH(str)

    CHARACTER_LENGTH()等價(jià)于CHAR_LENGTH()

  • CONCAT(str1,str2,...)

    返回結(jié)果為連接參數(shù)產(chǎn)生的字符串。如有任何一個(gè)參數(shù)為NULL,則返回值為 NULL。 如果所有參數(shù)均為非二進(jìn)制字符串,則結(jié)果為非二進(jìn)制字符串。 如果自變量中含有任一個(gè)二進(jìn)制字符串,則結(jié)果為一個(gè)二進(jìn)制字符串。一個(gè)數(shù)字參數(shù)將被轉(zhuǎn)化為與之相等的二進(jìn)制字符串格式;若要避免這種情況,可使用顯式類型cast轉(zhuǎn)換, 例如:

    SELECT CONCAT(CAST(int_col AS CHAR), char_col)
    
    mysql> SELECT CONCAT('My', 'S', 'QL');
    
    mysql> SELECT CONCAT('My', NULL, 'QL');
    
    mysql> SELECT CONCAT(14.3);
    
  • CONCAT_WS(separator,str1,str2,...)

    CONCAT_WS()代表CONCAT With Separator(使用分隔符連接),是CONCAT()的特殊形式。 第一個(gè)參數(shù)是其它參數(shù)的分隔符。分隔符的位置放在要連接的兩個(gè)字符串之間。分隔符可以是一個(gè)字符串,也可以是其它參數(shù)。如果分隔符為 NULL,則結(jié)果為NULL。函數(shù)會(huì)忽略任何分隔符參數(shù)后的NULL值。

    mysql> SELECT CONCAT_WS(',','First name','Second name','Last Name');
    
    mysql> SELECT CONCAT_WS(',','First name',NULL,'Last Name');
    

    CONCAT_WS()不會(huì)忽略任何空字符串。 (然而會(huì)忽略所有的NULL)。

  • ELT(N,str1,str2,str3,...)

    N = 1,則返回值為str1,若N = 2,則返回值為tr2,以此類推。 若N小于1或大于參數(shù)的數(shù)目,則返回值為NULL(突然覺(jué)得這個(gè)函數(shù)好神奇)。

    mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
    
    mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
    
  • EXPORT_SET(bits,on,off[,separator[,number_of_bits]])

    返回值為字符串。bits中的比特值按照從右到左的順序接受檢驗(yàn) (低位比特到高位比特的順序)。字符串被分隔字符串分開(kāi)(默認(rèn)為逗號(hào)','),按照從左到右的順序被添加到結(jié)果中。其中number_of_bits會(huì)給出被檢驗(yàn)的二進(jìn)制位數(shù) (默認(rèn)為64)。

    mysql> SELECT EXPORT_SET(5,'Y','N',',',4);
    
    mysql> SELECT EXPORT_SET(6,'1','0',',',10);
    
  • FIELD(str,str1,str2,str3,...)

    返回值為str1, str2,str3,……列表中的str所在位置。在找不到str的情況下,返回值為0。如果所有FIELD()的參數(shù)均為字符串,則所有參數(shù)均按照字符串進(jìn)行比較。如果所有的參數(shù)均為數(shù)字,則按照數(shù)字進(jìn)行比較。否則,參數(shù)按照雙精度類型進(jìn)行比較。如果strNULL值,則返回值為0,原因是NULL不能同任何值進(jìn)行同等比較。

    mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
    
    mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
    
  • FIND_IN_SET(str,strlist)

    假如字符串str在由N子字符串組成的字符串列表strlist中,則返回值的范圍在1N之間。一個(gè)字符串列表就是一個(gè)由一些被‘,’符號(hào)分開(kāi)的子字符串組成的字符串。如果第一個(gè)參數(shù)是一個(gè)常數(shù)字符串,而第二個(gè)是SET類型的數(shù)據(jù),則FIND_IN_SET()函數(shù)將被使用比特計(jì)算優(yōu)化。如果str不在strliststrlist為空字符串,則返回值為0。如果任意一個(gè)參數(shù)為NULL,則返回值為NULL。 該函數(shù)在第一個(gè)參數(shù)就包含逗號(hào)(‘,’)時(shí)將無(wú)法正常運(yùn)行。

    mysql> SELECT FIND_IN_SET('b','a,b,c,d');
    
  • FORMAT(X,D)

    將數(shù)字X的格式設(shè)置為'#,###,###.##',以四舍五入的方式保留到小數(shù)點(diǎn)后D位, 返回結(jié)果為一個(gè)字符串。

  • HEX(N_or_S)

    如果N_OR_S是一個(gè)數(shù)字,則返回一個(gè)十六進(jìn)制值N的字符串表示,其中,N是一個(gè)longlong(也就是BIGINT)類型的數(shù)。如果N_OR_S是一個(gè)字符串,則返回值為一個(gè)N_OR_S的十六進(jìn)制字符串表示,其中字符串N_OR_S 里的每個(gè)字符都被轉(zhuǎn)化為兩個(gè)十六進(jìn)制數(shù)字。

    mysql> SELECT HEX(255);
    
    mysql> SELECT 0x616263;
    
    mysql> SELECT HEX('abc');
    
  • INSERT(str,pos,len,newstr)

    返回字符串str中起始于pos位置被字符串newstr替換長(zhǎng)度為len 后的字符串。如果pos不在字符串長(zhǎng)度范圍內(nèi),則返回值為原始字符串。 假如len的長(zhǎng)度大于剩下的字符串的長(zhǎng)度,則從位置pos開(kāi)始替換。若任何一個(gè)參數(shù)為null,則返回值為NULL

    mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
    
    mysql> SELECT INSERT('Quadratic', -1, 4, 'What');
    
    mysql> SELECT INSERT('Quadratic', 3, 100, 'What');
    
  • INSTR(str,substr)

    返回字符串str中子字符串substr第一次出現(xiàn)的位置。

    mysql> SELECT INSTR('foobarbar', 'bar');
    
    mysql> SELECT INSTR('xbar', 'foobar');
    
  • LEFT(str,len)

    返回從字符串str左邊數(shù)前len個(gè)字符。

    mysql> SELECT LEFT('foobarbar', 5);
    
  • LENGTH(str)

    返回值為字符串str的長(zhǎng)度,單位為字節(jié)。對(duì)于一個(gè)包含5個(gè)2字節(jié)字符的字符串,LENGTH()的返回值為10,而CHAR_LENGTH()的返回值則為5

    mysql> SELECT LENGTH('text');
    
  • LOAD_FILE(file_name)

    讀取文件并將這一文件按照字符串的格式返回。文件的位置必須在服務(wù)器上,你必須為文件制定路徑全名,而且你還必須擁有FILE權(quán)限。文件必須可讀,文件容量必須小于max_allowed_packet字節(jié)。若文件不存在,或因不滿足上述條件而不能被讀取,函數(shù)返回值為 NULL。

    mysql> UPDATE tbl_name
     -> SET blob_column=LOAD_FILE('/tmp/picture')
     -> WHERE id=1;
    
  • LOCATE(substr,str)

    LOCATE(substr,str,pos)在沒(méi)有參數(shù)pos時(shí),返回為字符串str中子字符串substr的第一次出現(xiàn)的位置。反之,返回字符串str中以起始位置為pos開(kāi)始的子字符串substr的第一次出現(xiàn)的位置。如若substr不在str中,則返回值為0

    mysql> SELECT LOCATE('bar', 'foobarbar');
    
    mysql> SELECT LOCATE('xbar', 'foobar');
    
    mysql> SELECT LOCATE('bar', 'foobarbar',5);
    
  • LOWER(str)

    返回字符串str根據(jù)最新的字符集(默認(rèn)為cp1252 Latin1)映射表轉(zhuǎn)換為小寫(xiě)字母的字符 。

    mysql> SELECT LOWER('QUADRATICALLY');
    
  • LPAD(str,len,padstr)

    返回字符串str的左邊由字符串padstr填補(bǔ)到len字符長(zhǎng)度后的字符串。假如str的長(zhǎng)度大于len, 則返回值從右邊開(kāi)始被縮短至len字符。

    mysql> SELECT LPAD('hi',4,'??');
    
    mysql> SELECT LPAD('hi',1,'??');
    
  • LTRIM(str)

    返回刪除空格后的字符串str

    mysql> SELECT LTRIM('  barbar');
    
  • MAKE_SET(bits,str1,str2,...)

    返回一個(gè)(一個(gè)包含被‘,’號(hào)分開(kāi)的字符串)由在bits集合中具有相應(yīng)的比特的字符串組成的設(shè)定值。str1對(duì)應(yīng)比特0,str2對(duì)應(yīng)比特1,以此類推。str1, str2,...中的NULL值不會(huì)被添加到返回結(jié)果中。

    mysql> SELECT MAKE_SET(1,'a','b','c');
    
    mysql> SELECT MAKE_SET(1 | 4,'hello','nice','world');
    
    mysql> SELECT MAKE_SET(1 | 4,'hello','nice',NULL,'world');
    
    mysql> SELECT MAKE_SET(0,'a','b','c');
    
  • OCT(N)

    返回N的八進(jìn)制值的字符串表示,其中N是一個(gè)longlong(BIGINT)數(shù)。若NNULL,則返回值為NULL

    mysql> SELECT OCT(12);
    

    OCTET_LENGTH(str) OCTET_LENGTH()等價(jià)于LENGTH()。

  • ORD(str)

    若字符串str的最左邊的字符是一個(gè)多字節(jié)字符,則返回該字符的代碼,代碼的計(jì)算通過(guò)使用以下公式計(jì)算其組成字節(jié)的數(shù)值而得出:

    (1st byte code)+(2nd byte code × 256)+(3rd byte code × 256 × 256) ...
    

    如果最左邊的字符不是一個(gè)多字節(jié)字符,那么ORD()和函數(shù)ASCII()返回相同的值。

    mysql> SELECT ORD('2');
    
  • QUOTE(str)通過(guò)引用字符串str,產(chǎn)生一個(gè)在SQL語(yǔ)句中可用作完全轉(zhuǎn)義數(shù)據(jù)值的結(jié)果。返回的字符串由單引號(hào)標(biāo)注,每例都帶有單引號(hào)(')、反斜線符號(hào)(\)、ASCII NUL以及前面有反斜線符號(hào)的Control-Z。如果自變量的值為NULL,則返回不帶單引號(hào)的單詞NULL。

    mysql> SELECT QUOTE('Don\'t!');
    
    mysql> SELECT QUOTE(NULL);
    
  • REPEAT(str,count)

    返回一個(gè)由重復(fù)的字符串str組成的字符串,字符串str重復(fù)的數(shù)目為count。若count <= 0<="" code="">,則返回一個(gè)空字符串。若strcountNULL,則返回NULL。

    mysql> SELECT REPEAT('MySQL', 3);
    
  • REPLACE(str,from_str,to_str)

    返回所有被字符串to_str替代成字符串from_str后的str。

    mysql> SELECT REPLACE('www.', 'w', 'Ww');
    
  • REVERSE(str)

    返回和字符正常順序相反的str。

    mysql> SELECT REVERSE('abc');
    
  • RIGHT(str,len)

    返回str中從最右開(kāi)始數(shù)len個(gè)字符。

    mysql> SELECT RIGHT('foobarbar', 4);
    
  • SOUNDEX(str)

    str返回一個(gè)soundex字符串。 兩個(gè)具有幾乎同樣發(fā)音的字符串應(yīng)該具有同樣的soundex字符串。一個(gè)標(biāo)準(zhǔn)的soundex字符串的長(zhǎng)度為4個(gè)字符,然而SOUNDEX()函數(shù)會(huì)返回一個(gè)任意長(zhǎng)度的字符串。可使用SUBSTRING()來(lái)得到一個(gè)標(biāo)準(zhǔn)soundex 字符串結(jié)果。在str中,會(huì)忽略所有未按照字母順序排列的字符。所有不在A-Z范圍之內(nèi)的國(guó)際字母符號(hào)被視為元音字母。

    mysql> SELECT SOUNDEX('Hello');
    
    mysql> SELECT SOUNDEX('Quadratically');
    

    注意:這個(gè)函數(shù)執(zhí)行原始的Soundex算法,而非更加流行的加強(qiáng)版本算法。其區(qū)別在于原始版本首先會(huì)刪去元音,其次是去除重復(fù)字符,而加強(qiáng)版則首先刪去重復(fù)字符,而后刪去元音字符。

  • SUBSTRING(str,pos) , SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

    不帶有len參數(shù)的情況,返回一個(gè)起始于位置pos的子字符串;帶有l(wèi)en參數(shù)的情況,返回一個(gè)起始于位置 pos長(zhǎng)度同len相同的子字符串;使用 FROM的格式為標(biāo)準(zhǔn)SQL語(yǔ)法;也可能對(duì)pos使用一個(gè)負(fù)值,假若這樣,則子字符串的位置起始于字符串結(jié)尾的第pos個(gè)字符,而不是字符串的開(kāi)頭位置。請(qǐng)輸入以下語(yǔ)句檢驗(yàn)該函數(shù)的結(jié)果:

    mysql> SELECT SUBSTRING('Quadratically',5);
    
    mysql> SELECT SUBSTRING('foobarbar' FROM 4);
    
    mysql> SELECT SUBSTRING('Quadratically',5,6);
    
    mysql> SELECT SUBSTRING('Sakila', -3);
    
    mysql> SELECT SUBSTRING('Sakila', -5, 3);
    
    mysql> SELECT SUBSTRING('Sakila' FROM -4 FOR 2);
    

注意:如果len使用的是一個(gè)小于1的值,則結(jié)果始終為空字符串。

  • SUBSTRING_INDEX(str,delim,count)

    count為正值,則返回str中第count個(gè)定界符delim(從左邊開(kāi)始)左邊的一切內(nèi)容。若count為負(fù)值,則返回定界符(從右邊開(kāi)始)右邊的一切內(nèi)容。

    mysql> SELECT SUBSTRING_INDEX('www.', '.', 2);
    
    mysql> SELECT SUBSTRING_INDEX('www.', '.', -2);
    
  • TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str)

    返回字符串str,其中所有remstr前綴或后綴都已被刪除。若分類符BOTH、LEADINGTRAILING中沒(méi)有一個(gè)被指定,則假設(shè)為BOTH。remstr為可選項(xiàng),在未指定情況下,刪除空格。

    mysql> SELECT TRIM('  bar   ');
    
    mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
    
    mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
    
    mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
    

四、數(shù)值函數(shù)

4.1 算數(shù)操作符

  • + 加號(hào):
    mysql> SELECT 3+5;
    
  • - 減號(hào):
    mysql> SELECT 3-5;
    
  • - 負(fù)號(hào):

    mysql> SELECT - 2;
    

    注意:若該操作符同一個(gè)BIGINT同時(shí)使用,則返回值也是一個(gè)BIGINT。

  • * 乘號(hào):

    mysql> SELECT 3*5;
    
    mysql> SELECT 18014398509481984*18014398509481984.0;
    
    mysql> SELECT 18014398509481984*18014398509481984;
    

    觀察最后一個(gè)表達(dá)式的結(jié)果。原因是整數(shù)相乘的結(jié)果超過(guò)了BIGINT計(jì)算的 64位范圍。

  • / 除號(hào):

    mysql> SELECT 3/5;
    

    被零除的結(jié)果為NULL

    mysql> SELECT 102/(1-1);
    
  • DIV 整數(shù)除法。

    類似于FLOOR()。

    mysql> SELECT 5 DIV 2;
    

4.2 數(shù)學(xué)函數(shù)

若發(fā)生錯(cuò)誤,所有數(shù)學(xué)函數(shù)會(huì)返回NULL

  • ABS(X)

    返回X的絕對(duì)值。

    mysql> SELECT ABS(2);
    
    mysql> SELECT ABS(-32);
    

    該函數(shù)支持使用BIGINT值。

  • ACOS(X)

    返回X的反余弦, 即余弦是X的值。若X不在-11的范圍之內(nèi),則返回NULL

    mysql> SELECT ACOS(1);
    
    mysql> SELECT ACOS(1.0001);
    
    mysql> SELECT ACOS(0);
    
  • ATAN(Y,X) , ATAN2(Y,X)

    返回兩個(gè)變量XY的反正切。

    mysql> SELECT ATAN(-2,2);
    
    mysql> SELECT ATAN2(PI(),0);
    
  • CEILING(X),CEIL(X)

    返回不小于X的最小整數(shù)值。

    mysql> SELECT CEILING(1.23);
    
    mysql> SELECT CEIL(-1.23);
    
  • CRC32(expr)

    計(jì)算循環(huán)冗余碼校驗(yàn)值并返回一個(gè)32位無(wú)符號(hào)值。若參數(shù)為NULL,則結(jié)果為NULL。該參數(shù)應(yīng)為一個(gè)字符串,而且在不是字符串的情況下會(huì)被作為字符串處理(如果必要的話)。

    mysql> SELECT CRC32('MySQL');
    
    mysql> SELECT CRC32('mysql');
    
  • DEGREES(X)

    返回參數(shù)X由弧度被轉(zhuǎn)化為度以后的值。

    mysql> SELECT DEGREES(PI());
    
    mysql> SELECT DEGREES(PI() / 2);
    
  • EXP(X) 返回e(自然對(duì)數(shù)的底)的X乘方后的值。

    mysql> SELECT EXP(2);
    
    mysql> SELECT EXP(-2);
    
    mysql> SELECT EXP(0);
    
  • FLOOR(X)

    返回不大于X的最大整數(shù)值 。

    mysql> SELECT FLOOR(1.23);
    
    mysql> SELECT FLOOR(-1.23);
    
  • FORMAT(X,D)

    將數(shù)字X的格式寫(xiě)成'#,###,###.##'格式,且保留小數(shù)點(diǎn)后D位,而第D位的保留方式為四舍五入,然后將結(jié)果以字符串的形式返回。

  • LN(X)

    返回X的自然對(duì)數(shù),即X相對(duì)于基數(shù)e的對(duì)數(shù)。

    mysql> SELECT LN(2);
    
    mysql> SELECT LN(-2);
    

    該函數(shù)同LOG(X)具有相同意義。

  • LOG(X),LOG(B,X)

    若只用一個(gè)參數(shù)調(diào)用,該函數(shù)就會(huì)返回X的自然對(duì)數(shù)。

    mysql> SELECT LOG(2);
    
    mysql> SELECT LOG(-2);
    

    若用兩個(gè)參數(shù)進(jìn)行調(diào)用,該函數(shù)會(huì)返回X對(duì)于任意基數(shù)B的對(duì)數(shù)。

    mysql> SELECT LOG(2,65536);
    
    mysql> SELECT LOG(10,100);
    

    LOG(B,X)就相當(dāng)于LOG(X) / LOG(B)

  • LOG2(X)

    返回X的基數(shù)為2的對(duì)數(shù)。

    mysql> SELECT LOG2(65536);
    
    mysql> SELECT LOG2(-100);
    

    要想查出存儲(chǔ)一個(gè)數(shù)字需要多少個(gè)比特,LOG2()函數(shù)會(huì)非常有效。這個(gè)函數(shù)相當(dāng)于表達(dá)式LOG(X) / LOG(2)

  • MOD(N,M) , N % M N MOD M

    模操作。返回NM除后的余數(shù)。

    mysql> SELECT MOD(234, 10);
    
    mysql> SELECT 253 % 7;
    
    mysql> SELECT MOD(29,9);
    
    mysql> SELECT 29 MOD 9;
    

    MOD()對(duì)于帶有小數(shù)部分的數(shù)值也起作用,它返回除法運(yùn)算后的精確余數(shù):

    mysql> SELECT MOD(34.5,3);
    
  • PI()

    返回?(pi)的值。默認(rèn)的顯示小數(shù)位數(shù)是7位,但是MySQL內(nèi)部可以使用完全雙精度值。

    mysql> SELECT PI();
    
    mysql> SELECT PI()+0.000000000000000000;
    
  • POW(X,Y) , POWER(X,Y)

    返回XY乘方的結(jié)果值。

    mysql> SELECT POW(2,2);
    
    mysql> SELECT POW(2,-2);
    
  • RADIANS(X)

    返回由度轉(zhuǎn)化為弧度的參數(shù)X, (注意?弧度等于180度)。

    mysql> SELECT RADIANS(90);
    
  • RAND()

    RAND(N)返回一個(gè)范圍在01之間(即范圍為 0 ≤ v ≤1.0)的隨機(jī)浮點(diǎn)值v。若已指定一個(gè)整數(shù)參數(shù)N,則該參數(shù)將被用作種子值,用來(lái)產(chǎn)生重復(fù)序列。

    mysql> SELECT RAND();
    
    mysql> SELECT RAND(20);
    
    mysql> SELECT RAND(20);
    
    mysql> SELECT RAND();
    

    若要在i ≤ R ≤ j這個(gè)范圍得到一個(gè)隨機(jī)整數(shù)R,需要用到表達(dá)式FLOOR(i + RAND() * (j – i + 1))。例如, 若要在712 的范圍(包括712)內(nèi)得到一個(gè)隨機(jī)整數(shù), 可使用以下語(yǔ)句:

    SELECT FLOOR(7 + (RAND() * 6));
    

    ORDER BY語(yǔ)句中,不能使用一個(gè)帶有RAND()值的列,原因是 ORDER BY會(huì)計(jì)算列中的重復(fù)數(shù)值。但是也可按照如下的隨機(jī)順序檢索數(shù)據(jù)行:

    mysql> SELECT * FROM tbl_name ORDER BY RAND();
    

    ORDER BY RAND()LIMIT的結(jié)合可以有效的從一組列中選擇隨機(jī)樣本:

    mysql> SELECT * FROM table1, table2 WHERE a=b AND c<d
     -> ORDER BY RAND() LIMIT 1000;
    

    注意:WHERE語(yǔ)句中,WHERE每執(zhí)行一次,RAND()就會(huì)被再執(zhí)行一次。

    RAND()的作用不是作為一個(gè)精確的隨機(jī)發(fā)生器,而是一種用來(lái)發(fā)生在同樣的MySQL版本的平臺(tái)之間的可移動(dòng)ad hoc隨機(jī)數(shù)的快速方式。

  • ROUND(X),ROUND(X,D)

    返回與參數(shù)X最接近的整數(shù)。在有兩個(gè)參數(shù)的情況下,返回保留到小數(shù)點(diǎn)后D位的X,而第D位的保留方式為四舍五入。若要返回保留X值小數(shù)點(diǎn)左邊的D位,可將D設(shè)為負(fù)值。

    mysql> SELECT ROUND(-1.23);
    
    mysql> SELECT ROUND(-1.58);
    
    mysql> SELECT ROUND(1.58);
    
    mysql> SELECT ROUND(1.298, 1);
    
    mysql> SELECT ROUND(1.298, 0);
    
    mysql> SELECT ROUND(23.298, -1);
    

    返回值的類型同第一個(gè)參數(shù)類型相同(假設(shè)它是一個(gè)整數(shù)、雙精度數(shù)或小數(shù))。這意味著對(duì)于一個(gè)整數(shù)參數(shù),結(jié)果也是一個(gè)整數(shù)(無(wú)小數(shù)部分)。

    ROUND()在以下情況下依賴于第一個(gè)參數(shù)的類型:

    • 對(duì)于準(zhǔn)確值數(shù)字,ROUND()使用“四舍五入” 或“舍入成最接近的數(shù)” 的規(guī)則:對(duì)于一個(gè)分?jǐn)?shù)部分為.5或大于 .5的值,正數(shù)則上舍入到鄰近的整數(shù)值,負(fù)數(shù)則下舍入臨近的整數(shù)值。(換言之,其舍入的方向是數(shù)軸上遠(yuǎn)離零的方向)。對(duì)于一個(gè)分?jǐn)?shù)部分小于.5的值,正數(shù)則下舍入下一個(gè)整數(shù)值,負(fù)數(shù)則下舍入鄰近的整數(shù)值,而正數(shù)則上舍入鄰近的整數(shù)值。
    • 對(duì)于近似值數(shù)字,其結(jié)果根據(jù) C 庫(kù)而定。在很多系統(tǒng)中,這意味著ROUND()的使用遵循“舍入成最接近的偶數(shù)”的規(guī)則: 一個(gè)帶有任何小數(shù)部分的值會(huì)被舍入成最接近的偶數(shù)。 以下舉例說(shuō)明舍入法對(duì)于精確值和近似值的不同之處:
    mysql> SELECT ROUND(2.5), ROUND(25E-1);
    
  • SIGN(X)

    返回參數(shù)X的符號(hào),該符號(hào)取決于X 的值是否為負(fù)、零或正。

    mysql> SELECT SIGN(-32);
    
    mysql> SELECT SIGN(0);
    
    mysql> SELECT SIGN(234);
    
  • SQRT(X)

    返回非負(fù)數(shù)X的二次方根。

    mysql> SELECT SQRT(4);
    
    mysql> SELECT SQRT(-16);
    

五、日期和時(shí)間函數(shù)

  • ADDDATE(date,INTERVAL expr type),ADDDATE(expr,days)

    當(dāng)被第二個(gè)參數(shù)INTERVAL被設(shè)置后,ADDDATE()就是等價(jià)于DATE_ADD()。

    mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
    
    mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
    

    days參數(shù)只是整數(shù)值,則 MySQL 5.1將其作為天數(shù)值添加至expr

    mysql> SELECT ADDDATE('1998-01-02', 31);
    
  • ADDTIME(expr,expr2) ADDTIME()expr2添加至expr然后再返回結(jié)果。expr是一個(gè)時(shí)間或日期表達(dá)式,而expr2是一個(gè)時(shí)間表達(dá)式。

    mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999',
     -> '1 1:1:1.000002');
    
    mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
    
  • CONVERT_TZ(dt,from_tz,to_tz)

    CONVERT_TZ()將時(shí)間日期值dtfrom_tz給出的時(shí)區(qū)轉(zhuǎn)到to_tz給出的時(shí)區(qū),然后返回結(jié)果值。在從from_tzUTC的轉(zhuǎn)化過(guò)程中,如果該值超出TIMESTAMP類型的被支持范圍,那么轉(zhuǎn)化不會(huì)發(fā)生。

    mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
    
    mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
    

    注釋:若要使用諸如 METEurope/Moscow之類指定時(shí)間區(qū),首先要設(shè)置正確的時(shí)區(qū)表。

  • CURDATE()`

    將當(dāng)前日期按照'YYYY-MM-DD'YYYYMMDD格式返回,具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語(yǔ)境中而定。

    mysql> SELECT CURDATE();
    
    mysql> SELECT CURDATE() + 0;
    
  • CURRENT_DATE,CURRENT_DATE()

    CURRENT_DATE等價(jià)于CURRENT_DATE(),CURTIME()將當(dāng)前時(shí)間以'HH:MM:SS'HHMMSS的格式返回, 具體格式根據(jù)函數(shù)用在字符串或是數(shù)字語(yǔ)境中而定。

    mysql> SELECT CURTIME();
    
    mysql> SELECT CURTIME() + 0;
    
  • DATEDIFF(expr,expr2)

    DATEDIFF()返回起始時(shí)間expr和結(jié)束時(shí)間expr2之間的天數(shù)。Exprexpr2為日期或date-and-time 表達(dá)式。計(jì)算中只用到這些值的日期部分。

    mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
    
    mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
    
  • DATE_ADD(date,INTERVAL expr type),DATE_SUB(date,INTERVAL expr type)

    這些函數(shù)執(zhí)行日期運(yùn)算。 date是一個(gè)DATETIMEDATE值,用來(lái)指定起始時(shí)間。expr是一個(gè)表達(dá)式,用來(lái)指定從起始日期添加或減去的時(shí)間間隔值。 Expr是一個(gè)字符串;對(duì)于負(fù)值的時(shí)間間隔,它可以以一個(gè)'-'開(kāi)頭。 type為關(guān)鍵詞,它指示了表達(dá)式被解釋的方式。

    關(guān)鍵詞INTERVAtype分類符均不區(qū)分大小寫(xiě)。

    下表顯示了typeexpr參數(shù)的關(guān)系:

    此處輸入圖片的描述

MySQL 允許任何expr格式中的標(biāo)點(diǎn)分隔符,表中所顯示的是建議的分隔符。若date參數(shù)是一個(gè)DATE類型的 值,那么計(jì)算只會(huì)包括YEARMONTHDAY部分(即沒(méi)有時(shí)間部分),其結(jié)果也是一個(gè)DATE類型的 值。否則,結(jié)果將是一個(gè)DATETIME類型值。

若位于另一端的表達(dá)式是一個(gè)日期或日期時(shí)間值 , 則INTERVAL expr type只允許出現(xiàn)在+操作符的兩端。對(duì)于 操作符, INTERVAL expr type只允許在其右端,原因是從一個(gè)時(shí)間間隔中提取一個(gè)日期或日期時(shí)間值是毫無(wú)意義的(見(jiàn)下面的例子)。

 mysql> SELECT '1997-12-31 23:59:59' + INTERVAL 1 SECOND;

 mysql> SELECT INTERVAL 1 DAY + '1997-12-31';

 mysql> SELECT '1998-01-01' - INTERVAL 1 SECOND;

 mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
     -> INTERVAL 1 SECOND);

 mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
     -> INTERVAL 1 DAY);

 mysql> SELECT DATE_ADD('1997-12-31 23:59:59',
     -> INTERVAL '1:1' MINUTE_SECOND);

 mysql> SELECT DATE_SUB('1998-01-01 00:00:00',
     -> INTERVAL '1 1:1:1' DAY_SECOND);

 mysql> SELECT DATE_ADD('1998-01-01 00:00:00',
     -> INTERVAL '-1 10' DAY_HOUR);

 mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);

 mysql> SELECT DATE_ADD('1992-12-31 23:59:59.000002',
     -> INTERVAL '1.999999' SECOND_MICROSECOND);

若你指定了一個(gè)過(guò)于短的時(shí)間間隔值(不包括type關(guān)鍵詞所預(yù)期的所有時(shí)間間隔部分), MySQL 會(huì)假定你已經(jīng)省去了時(shí)間間隔值的最左部分。 例如,你指定了一種類型的DAY_SECOND,expr的值應(yīng)當(dāng)具有天、 小時(shí)、分鐘和秒部分。若你指定了一個(gè)類似'1:10'的值, MySQL會(huì)假定天和小時(shí)部分不存在,那么這個(gè)值代表分和秒。

假如你對(duì)一個(gè)日期值添加或減去一些含有時(shí)間部分的內(nèi)容,則結(jié)果自動(dòng)轉(zhuǎn)化為一個(gè)日期時(shí)間值:

 mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 DAY);

 mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);

假如你使用了格式嚴(yán)重錯(cuò)誤的日期,則結(jié)果為NULL。假如你添加了MONTHYEAR_MONTHYEAR,而結(jié)果日期中有一天的日期大于添加的月份的日期最大限度,則這個(gè)日期自動(dòng)被調(diào)整為添加該月份的最大日期:

 mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);
  • DATE_FORMAT(date,format)

    根據(jù)format 字符串安排date值的格式。

    注意: 字符%要求在格式指定符之前。

    月份和日期說(shuō)明符的范圍從零開(kāi)始,原因是 MySQL允許存儲(chǔ)諸如 '2004-00-00'這樣的的不完全日期.

    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
    
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
    
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
     ->'%D %y %a %d %m %b %j');
    
    mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
     -> '%H %k %I %r %T %S %w');
    
    mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
    
  • DAYNAME(date)

    返回date對(duì)應(yīng)的工作日名稱。

    mysql> SELECT DAYNAME('1998-02-05');
    
  • EXTRACT(type FROM date)

    EXTRACT()函數(shù)所使用的時(shí)間間隔類型說(shuō)明符同DATE_ADD()ATE_SUB()的相同,但它從日期中提取其部分,而不是執(zhí)行日期運(yùn)算。

    mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
    
    mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
    
    mysql> SELECT EXTRACT(MICROSECOND
     -> FROM '2003-01-02 10:30:00.00123');
    
  • FROM_DAYS(N)

    給定一個(gè)天數(shù)N,返回一個(gè)DATE類型的值。

    mysql> SELECT FROM_DAYS(729669);
    

    注意:使用FROM_DAYS()處理古老日期時(shí),務(wù)必謹(jǐn)慎。它并不用于處理陽(yáng)歷出現(xiàn)前的日期(1582)。詳情請(qǐng)參考請(qǐng)MySQL使用什么日歷?。

  • FROM_UNIXTIME(unix_timestamp) , FROM_UNIXTIME(unix_timestamp,format)

    返回'YYYY-MM-DD HH:MM:SS'YYYYMMDDHHMMSS格式值的unix_timestamp參數(shù)表示,具體格式取決于該函數(shù)是否用在字符串中或是數(shù)字語(yǔ)境中。 若format 已經(jīng)給出,則結(jié)果的格式是根據(jù)format 字符串而定。 format 可以包含同DATE_FORMAT()函數(shù)輸入項(xiàng)列表中相同的說(shuō)明符。

    mysql> SELECT FROM_UNIXTIME(875996580);
    
    mysql> SELECT FROM_UNIXTIME(875996580) + 0;
    
    mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
     -> '%Y %D %M %h:%i:%s %x');
    
  • GET_FORMAT(DATE|TIME|DATETIME, 'EUR'|'USA'|'JIS'|'ISO'|'INTERNAL')

    返回一個(gè)格式字符串。該函數(shù)在同DATE_FORMAT()STR_TO_DATE()函數(shù)結(jié)合時(shí)很有用。 第一個(gè)參數(shù)的3個(gè)可能值和第二個(gè)參數(shù)的5個(gè)可能值產(chǎn)生 15 個(gè)可能格式字符串 (對(duì)于使用的說(shuō)明符,請(qǐng)參見(jiàn)DATE_FORMAT()函數(shù)說(shuō)明表 )。

    此處輸入圖片的描述

    其中,ISO 格式為ISO 9075, 而非ISO 8601。

    DATE_FORMAT()函數(shù)的第一個(gè)參數(shù)也可以使用TIMESTAMP, 這時(shí)GET_FORMAT()的返回值和DATETIME相同。

    mysql> SELECT DATE_FORMAT('2003-10-03',GET_FORMAT(DATE,'EUR'));
    
    mysql> SELECT STR_TO_DATE('10.31.2003',GET_FORMAT(DATE,'USA'));
    
  • HOUR(time)

    返回time對(duì)應(yīng)的小時(shí)數(shù)。對(duì)于日時(shí)值的返回值范圍是從023。

    mysql> SELECT HOUR('10:05:03');
    

    然而,TIME 值的范圍實(shí)際上非常大, 所以HOUR可以返回大于23的值。如:

    mysql> SELECT HOUR('272:59:59');
    
  • LAST_DAY(date)

    獲取一個(gè)日期或日期時(shí)間值,返回該月最后一天對(duì)應(yīng)的值。若參數(shù)無(wú)效,則返回NULL。

    mysql> SELECT LAST_DAY('2003-02-05');
    
    mysql> SELECT LAST_DAY('2004-02-05');
    
    mysql> SELECT LAST_DAY('2004-01-01 01:01:01');
    
    mysql> SELECT LAST_DAY('2003-03-32');
    
  • MAKEDATE(year,dayofyear)

    給出年份值和一年中的天數(shù),最后返回一個(gè)日期。dayofyear必須大于0,否則結(jié)果為NULL。

    mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
    
    mysql> SELECT MAKEDATE(2001,365), MAKEDATE(2004,365);
    
    mysql> SELECT MAKEDATE(2001,0);
    
  • MAKETIME(hour,minute,second)

    返回由hourminutesecond參數(shù)計(jì)算得出的時(shí)間值。

    mysql> SELECT MAKETIME(12,15,30);
    
  • NOW()

    返回當(dāng)前日期和時(shí)間值,其格式為'YYYY-MM-DD HH:MM:SS'YYYYMMDDHHMMSS , 具體格式取決于該函數(shù)所用處于的字符串或數(shù)字類型語(yǔ)境中。

    mysql> SELECT NOW();
    
    mysql> SELECT NOW() + 0;
    

    在一個(gè)存儲(chǔ)程序或觸發(fā)器內(nèi), NOW()返回一個(gè)常數(shù)時(shí)間,該常數(shù)指示了該程序或觸發(fā)語(yǔ)句開(kāi)始執(zhí)行的時(shí)間。這同SYSDATE()的運(yùn)行有所不同。

  • PERIOD_ADD(P,N)

    添加 N個(gè)月至周期P(格式為YYMMYYYYMM),返回值的格式為 YYYYMM。注意周期參數(shù)P不是日期值。

    mysql> SELECT PERIOD_ADD(9801,2);
    
  • PERIOD_DIFF(P1,P2)

    返回周期P1P2之間的月份數(shù)。P1P2的格式應(yīng)該為YYMMYYYYMM。注意周期參數(shù)P1P2 不是日期值。

    mysql> SELECT PERIOD_DIFF(9802,199703);
    
  • QUARTER(date)

    返回date 對(duì)應(yīng)的一年中的季度值,范圍是從 1到 4。

    mysql> SELECT QUARTER('98-04-01');
    
  • SEC_TO_TIME(seconds)

    返回被轉(zhuǎn)化為小時(shí)、 分鐘和秒數(shù)的seconds參數(shù)值, 其格式為 'HH:MM:SS'HHMMSS,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語(yǔ)境中而定。

    mysql> SELECT SEC_TO_TIME(2378);
    
    mysql> SELECT SEC_TO_TIME(2378) + 0;
    
  • UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

    若無(wú)參數(shù)調(diào)用,則返回一個(gè)Unix timestamp('1970-01-01 00:00:00' GMT時(shí)間之后的秒數(shù)) 作為無(wú)符號(hào)整數(shù)。若用date參數(shù)來(lái)調(diào)用UNIX_TIMESTAMP(),它會(huì)將參數(shù)值以'1970-01-01 00:00:00' GMT后的秒數(shù)的形式返回。date 可以是一個(gè)DATE類型的 字符串、一個(gè) DATETIME類型的字符串、一個(gè) TIMESTAMP或一個(gè)當(dāng)?shù)貢r(shí)間的YYMMDDYYYMMDD格式的數(shù)字。

    mysql> SELECT UNIX_TIMESTAMP();
    
    mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
    

    當(dāng) UNIX_TIMESTAMP被用在 TIMESTAMP列時(shí), 函數(shù)直接返回內(nèi)部時(shí)戳值, 而不進(jìn)行任何隱含的 “string-to-Unix-timestamp”轉(zhuǎn)化。假如你向UNIX_TIMESTAMP()傳遞一個(gè)溢出日期,它會(huì)返回 0,但請(qǐng)注意只有一般的時(shí)間范圍生效(年份從19702037, 月份從0112,日期從0131)。

  • UTC_DATE, UTC_DATE()

    返回當(dāng)前UTC日期值,其格式為'YYYY-MM-DD'YYYYMMDD,具體格式取決于函數(shù)是否用在字符串或數(shù)字語(yǔ)境中。

    mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
    
  • UTC_TIME, UTC_TIME()

    返回當(dāng)前 UTC 值,其格式為 'HH:MM:SS'HHMMSS,具體格式根據(jù)該函數(shù)是否用在字符串或數(shù)字語(yǔ)境而定。

    mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
    
  • WEEK(date[,mode])

    該函數(shù)返回date 對(duì)應(yīng)的星期數(shù)。WEEK() 的雙參數(shù)形式允許你指定該星期是否起始于周日或周一, 以及返回值的范圍是否為從053或從153。若 mode參數(shù)被省略,則使用default_week_format系統(tǒng)值。請(qǐng)參見(jiàn)服務(wù)器系統(tǒng)變量。

    下表說(shuō)明了mode參數(shù)的工作過(guò)程:

    此處輸入圖片的描述

    mysql> SELECT WEEK('1998-02-20');
    
    mysql> SELECT WEEK('1998-02-20',0);
    
    mysql> SELECT WEEK('1998-02-20',1);
    
    mysql> SELECT WEEK('1998-12-31',1);
    

    注意:假如有一個(gè)日期位于前一年的最后一周, 若你不使用2、3、67作為mode 參數(shù)選擇,則MySQL返回 0

    mysql> SELECT YEAR('2000-01-01'), WEEK('2000-01-01',0);
    

    有人或許會(huì)提出意見(jiàn),認(rèn)為 MySQL 對(duì)于WEEK()函數(shù)應(yīng)該返回 52 ,原因是給定的日期實(shí)際上發(fā)生在1999年的第52周。我們決定返回0作為代替的原因是我們希望該函數(shù)能返回“給定年份的星期數(shù)”。這使得WEEK()函數(shù)在同其它從日期中抽取日期部分的函數(shù)結(jié)合時(shí)的使用更加可靠。

    假如你更希望所計(jì)算的關(guān)于年份的結(jié)果包括給定日期所在周的第一天,則應(yīng)使用02、57 作為mode參數(shù)選擇。

    mysql> SELECT WEEK('2000-01-01',2);
    

    作為選擇,也可使用 YEARWEEK()函數(shù):

    mysql> SELECT YEARWEEK('2000-01-01');
    
    mysql> SELECT MID(YEARWEEK('2000-01-01'),5,2);
    

六、全文搜索功能

MATCH (col1,col2,...) AGAINST (expr [IN BOOLEAN MODE | WITH QUERY EXPANSION])

MySQL支持全文索引和搜索功能。

  • MySQL中的全文索引是針對(duì)FULLTEXT類型的索引。
  • FULLTEXT索引僅可用于 MyISAM表(在MySQL5.6以及以上的版本也可用于InnoDB表);可以從CHAR、 VARCHARTEXT列中作為CREATE TABLE語(yǔ)句的一部分被創(chuàng)建,或是隨后使用ALTER TABLECREATE INDEX添加。對(duì)于較大的數(shù)據(jù)集,將你的資料輸入一個(gè)沒(méi)有FULLTEXT索引的表中,然后創(chuàng)建索引, 其速度比把資料輸入現(xiàn)有FULLTEXT索引的速度更為快。嘗試輸入以下代碼:
    mysql> CREATE TABLE articles (
     ->   id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
     ->   title VARCHAR(200),
     ->   body TEXT,
     ->   FULLTEXT (title,body)
     -> );
    mysql> INSERT INTO articles (title,body) VALUES
     -> ('MySQL Tutorial','DBMS stands for DataBase ...'),
     -> ('How To Use MySQL Well','After you went through a ...'),
     -> ('Optimizing MySQL','In this tutorial we will show ...'),
     -> ('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
     -> ('MySQL vs. YourSQL','In the following database comparison ...'),
     -> ('MySQL Security','When configured properly, MySQL ...');
    mysql> SELECT * FROM articles
     -> WHERE MATCH (title,body) AGAINST ('database');
    mysql> SELECT id, MATCH (title,body) AGAINST ('Tutorial')
     -> FROM articles;
    mysql> SELECT id, body, MATCH (title,body) AGAINST
     -> ('Security implications of running MySQL as root') AS score
     -> FROM articles WHERE MATCH (title,body) AGAINST
     -> ('Security implications of running MySQL as root');
    mysql> SELECT * FROM articles
     -> WHERE MATCH (title,body) AGAINST ('MySQL');
    

七、Cast函數(shù)和操作符

  • BINARY

    BINARY操作符將后面的字符串轉(zhuǎn)換成一個(gè)二進(jìn)制字符串。這是一種簡(jiǎn)單的方式來(lái)促使逐字節(jié)而不是逐字符的進(jìn)行列比較。這使得比較區(qū)分大小寫(xiě),即使該列不被定義為BINARYBLOB類型。

    mysql> SELECT 'a' = 'A';
    
    mysql> SELECT BINARY 'a' = 'A';
    
    mysql> SELECT 'a' = 'a ';
    
    mysql> SELECT BINARY 'a' = 'a ';
    

    在比較運(yùn)算中,BINARY會(huì)影響整個(gè)操作;它可以在任何操作數(shù)前被給定,而產(chǎn)生相同的結(jié)果。

  • CAST(expr AS type), CONVERT(expr,type) , CONVERT(expr USING transcoding_name)

    CAST()CONVERT()函數(shù)通過(guò)獲取一個(gè)類型的值,轉(zhuǎn)化為另一個(gè)被指定類型的值。

    這里的類型可以是以下列表中的任意一個(gè):

    • BINARY[(N)]
    • CHAR[(N)]
    • DATE
    • DATETIME
    • DECIMAL
    • SIGNED[INTEGER]
    • TIME
    • UNSIGNED [INTEGER]

    其中BINARY產(chǎn)生一個(gè)二進(jìn)制字符串。

    假如給定了隨意長(zhǎng)度N,則 BINARY[N]使 cast使用不多于N個(gè)字節(jié)的參數(shù)。同樣, CHAR[N]會(huì)使 cast 使用不多于N 個(gè)字符的參數(shù)。

    CAST() and CONVERT(... USING ...) 是標(biāo)準(zhǔn) SQL語(yǔ)法。CONVERT()的非USING格式是ofis ODBC語(yǔ)法。

    帶有USINGCONVERT()被用來(lái)在不同的字符集之間轉(zhuǎn)化數(shù)據(jù)。在 MySQL中, 自動(dòng)譯碼名和相應(yīng)的字符集名稱相同。例如,以下語(yǔ)句將服務(wù)器的默認(rèn)字符集中的字符串 'abc'轉(zhuǎn)化為utf8字符集中相應(yīng)的字符串:

    SELECT CONVERT('abc' USING utf8);
    

    當(dāng)你想要在一個(gè)CREATE ... SELECT語(yǔ)句中創(chuàng)建一個(gè)特殊類型的列時(shí),cast函數(shù)會(huì)很有用:

    CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);
    

    該函數(shù)也用于ENUM列按詞法順序的排序。通常ENUM列的排序在使用內(nèi)部數(shù)值時(shí)發(fā)生,將這些值按照詞法順序派給 CHAR的結(jié)果:

    SELECT enum_col FROM tbl_name ORDER BY CAST(enum_col AS CHAR);
    

    CAST(str AS BINARY)BINARY str的意義相同。 CAST(expr AS CHAR)將表達(dá)式視為一個(gè)帶有默認(rèn)字符集的字符串。

    你不應(yīng)在不同的格式中使用 CAST()來(lái)析取數(shù)據(jù),但可以使用諸如LEFT()EXTRACT() 這樣的字符串函數(shù)來(lái)代替。

    若要在數(shù)值語(yǔ)境中將一個(gè)字符串派給一個(gè)數(shù)值, 通常情況下,除了將字符串值作為數(shù)字使用外,你不需要做任何事:

    mysql> SELECT 1+'1';
    

    若要在一個(gè)字符串語(yǔ)境中使用一個(gè)數(shù)字,該數(shù)字會(huì)被自動(dòng)轉(zhuǎn)化為一個(gè)BINARY字符串。

    mysql> SELECT CONCAT('hello you ',2);
    

八、其他函數(shù)

位函數(shù)

對(duì)于位運(yùn)算,MySQL 使用 BIGINT (64位)算法,因此這些操作符的最大范圍是 64 位。

  • | 按位OR:

    mysql> SELECT 29 | 15;
    
  • & 按位 AND:

    mysql> SELECT 29 & 15;
    
  • ^ 按位XOR:

    mysql> SELECT 1 ^ 1;
    
    mysql> SELECT 1 ^ 0;
    
    mysql> SELECT 11 ^ 3;
    
  • << 把一個(gè)longlong (BIGINT)數(shù)左移兩位。

    mysql> SELECT 1 << 2;
    
  • > 把一個(gè)longlong (BIGINT)數(shù)右移兩位。

    mysql> SELECT 4 >> 2;
    
  • ~ 反轉(zhuǎn)所有位。

    mysql> SELECT 5 & ~1;
    
  • BIT_COUNT(N) 返回參數(shù)N中所設(shè)置的位的數(shù)量。

    mysql> SELECT BIT_COUNT(29);
    

九、思考與練習(xí)

當(dāng)你看到這一節(jié)的時(shí)候,恭喜你,你已經(jīng)完成了一個(gè)艱巨的任務(wù)!因?yàn)槲以诜g的時(shí)候就知道涉及到的知識(shí)很多,當(dāng)然還有很多函數(shù)沒(méi)有全部寫(xiě)上,既然是參考手冊(cè),不要求你們?nèi)空莆?,只要在需要的時(shí)候查閱即可,但是前提是得掌握一些基本的函數(shù)和操作符的運(yùn)用;因此,希望你們能在實(shí)驗(yàn)樓操作以上函數(shù)或者操作符中感興趣的語(yǔ)句,記得寫(xiě)入實(shí)驗(yàn)報(bào)告讓我瞧瞧你的學(xué)習(xí)狀態(tài)哦~

動(dòng)手實(shí)踐是學(xué)習(xí) IT 技術(shù)最有效的方式! 開(kāi)始實(shí)驗(yàn)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多