明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

MySQL之函數(shù)與謂詞的案例詳細(xì)說(shuō)明

[摘要]前文已有涉及,這里作為總結(jié)重新整理一下。一、函數(shù)1、算術(shù)函數(shù)NUMERIC 是大多數(shù) DBMS 都支持的一種數(shù)據(jù)類型,通過(guò) NUMBERIC ( 全體位數(shù), 小數(shù)位數(shù) ) 的形式來(lái)指定數(shù)值的大小。-- +-*/--余數(shù)SELECT n, p, MOD(n, p) AS mod_col FROM S...
前文已有涉及,這里作為總結(jié)重新整理一下。

一、函數(shù)

1、算術(shù)函數(shù)

NUMERIC 是大多數(shù) DBMS 都支持的一種數(shù)據(jù)類型,通過(guò) NUMBERIC ( 全體位數(shù), 小數(shù)位數(shù) ) 的形式來(lái)指定數(shù)值的大小。

-- +-*/

--余數(shù)
SELECT n, p, MOD(n, p) AS mod_col FROM SampleMath;

--絕對(duì)值
SELECT m, ABS(m) AS abs_col FROM SampleMath;

--四舍五入
SELECT m, n, ROUND(m, n) AS round_col FROM SampleMath;

2、字符串函數(shù)

--字符串拼接
SELECT str1, str2, str3, CONCAT(str1, str2, str3) AS str_concat FROM SampleStr

--字符串長(zhǎng)度
SELECT str1, LENGTH(str1) AS len_str FROM SampleStr;

--大小寫轉(zhuǎn)換
SELECT str1, UPPER/LOWER(str1) AS low_str FROM SampleStr WHERE str1 IN ('ABC', 'aBC', 'abc')

--字符串替換str1中的str2換為str3
SELECT str1, str2, str3, REPLACE(str1, str2, str3) AS rep_str FROM SampleStr;
 
--字符串截取 FROM截取的起始位置FOR截取的字符數(shù)
SELECT str1, SUBSTRING(str1 FROM 3 FOR 2) AS sub_str FROM SampleStr;

3、日期函數(shù)

--當(dāng)前日期
SELECT CURRENT_DATE;

--當(dāng)前時(shí)間
SELECT CURRENT_TIME;

--當(dāng)前時(shí)間戳
SELECT CURRENT_TIMESTAMP;

--截取日期元素
SELECT CURRENT_TIMESTAMP,
       EXTRACT(YEAR   FROM CURRENT_TIMESTAMP)  AS year,
       EXTRACT(MONTH  FROM CURRENT_TIMESTAMP)  AS month,
       EXTRACT(DAY    FROM CURRENT_TIMESTAMP)  AS day,
       EXTRACT(HOUR   FROM CURRENT_TIMESTAMP)  AS hour,
       EXTRACT(MINUTE FROM CURRENT_TIMESTAMP)  AS minute,
       EXTRACT(SECOND FROM CURRENT_TIMESTAMP)  AS second;

4、轉(zhuǎn)換函數(shù)

--類型轉(zhuǎn)換
SELECT CAST('0001' AS SIGNED INTEGER) AS int_col;
SELECT CAST('2009-12-14' AS DATE) AS date_col;

--將 NULL 轉(zhuǎn)換為其他值
--返回可變參數(shù)中左側(cè)開始第 1 個(gè)不是 NULL 的值
SELECT COALESCE(NULL, 1)                  AS col_1,
       COALESCE(NULL, 'test', NULL)       AS col_2,
       COALESCE(NULL, NULL, '2009-11-01') AS col_3;

5、聚合函數(shù)

COUNT、SUM、AVG、MAX、MIN

更多函數(shù)與運(yùn)算符

二、謂詞

謂詞的作用就是“判斷是否存在滿足某種條件的記錄”。如果存在這樣的記錄就返回真(TRUE),如果不存在就返回假(FALSE)。

--部分一致查詢
LIKE

--范圍查詢
BETWEEN

--判斷是否為NULL
IS NULL、IS NOT NULL

--OR 的簡(jiǎn)便用法
IN

--謂詞的主語(yǔ)是“記錄”...沒(méi)懂!
EXISTS

三、CASE 表達(dá)式

--格式
CASE WHEN <求值表達(dá)式> THEN <表達(dá)式>
     WHEN <求值表達(dá)式> THEN <表達(dá)式>
     WHEN <求值表達(dá)式> THEN <表達(dá)式>
       .
       .
       .
     ELSE <表達(dá)式>
END
-- 使用搜索CASE表達(dá)式的情況
SELECT product_name,
      CASE WHEN product_type = '衣服'
           THEN 'A :'    product_type
           WHEN product_type = '辦公用品'
           THEN 'B :'    product_type
           WHEN product_type = '廚房用具'
           THEN 'C :'    product_type
           ELSE NULL
       END AS abc_product_type
  FROM Product;


-- 使用簡(jiǎn)單CASE表達(dá)式的情況
SELECT product_name,
       CASE product_type
            WHEN '衣服'      THEN 'A :'    product_type
            WHEN '辦公用品'  THEN 'B :'    product_type
            WHEN '廚房用具'  THEN 'C :'    product_type
            ELSE NULL
        END AS abc_product_type
  FROM Product;
--使用IF代替CASE表達(dá)式
SELECT  product_name,
       IF( IF( IF(product_type = '衣服',
                   CONCAT('A :', product_type), NULL)
               IS NULL AND product_type = '辦公用品',
                   CONCAT('B :', product_type),
           IF(product_type = '衣服',
              CONCAT('A :', product_type), NULL))
                  IS NULL AND product_type = '廚房用具',
                     CONCAT('C :', product_type),
                  IF( IF(product_type = '衣服',
                       CONCAT('A :', product_type), NULL)
               IS NULL AND product_type = '辦公用品',
                  CONCAT('B :', product_type),
           IF(product_type = '衣服',
              CONCAT('A :', product_type),
         NULL))) AS abc_product_type
 FROM Product;

以上就是MySQL之函數(shù)與謂詞的實(shí)例詳解的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識(shí)。