MySQL(三)--函數與謂詞

来源:http://www.cnblogs.com/lidyan/archive/2017/06/27/7086981.html
-Advertisement-
Play Games

前文已有涉及,這裡作為總結重新整理一下。一、函數1、算術函數NUMERIC 是大多數 DBMS 都支持的一種數據類型,通過 NUMBERIC ( 全體位數, 小數位數 ) 的形式來指定數值的大小。-- +-*/--餘數SELECT n, p, MOD(n, p) AS mod_col FROM Sa... ...


前文已有涉及,這裡作為總結重新整理一下。

一、函數

1、算術函數

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

-- +-*/

--餘數
SELECT n, p, MOD(n, p) AS mod_col FROM SampleMath;

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

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

2、字元串函數

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

--字元串長度
SELECT str1, LENGTH(str1) AS len_str FROM SampleStr;

--大小寫轉換
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截取的字元數
SELECT str1, SUBSTRING(str1 FROM 3 FOR 2) AS sub_str FROM SampleStr;

3、日期函數

--當前日期
SELECT CURRENT_DATE;

--當前時間
SELECT CURRENT_TIME;

--當前時間戳
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、轉換函數

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

--將 NULL 轉換為其他值
--返回可變參數中左側開始第 1 個不是 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、聚合函數

COUNT、SUM、AVG、MAX、MIN

更多函數與運算符

二、謂詞

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

--部分一致查詢
LIKE

--範圍查詢
BETWEEN

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

--OR 的簡便用法
IN

--謂詞的主語是“記錄”...沒懂!
EXISTS

三、CASE 表達式

--格式
CASE WHEN <求值表達式> THEN <表達式>
     WHEN <求值表達式> THEN <表達式>
     WHEN <求值表達式> THEN <表達式>
       .
       .
       .
     ELSE <表達式>
END
-- 使用搜索CASE表達式的情況
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;


-- 使用簡單CASE表達式的情況
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表達式
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;

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 備註的大段文本,無法在圖片中體現, 思維導圖源文件放在附件中。使用 Xmind 8 製作。 附件:AndroidAnimation-xmind.zip ...
  • 1. Oracle是大型資料庫而Mysql是中小型資料庫,Oracle市場占有率達40%,Mysql只有20%左右,同時Mysql是開源的而Oracle價格非常高。 2. Oracle支持大併發,大訪問量,是OLTP最好的工具。 3. 安裝所用的空間差別也是很大的,Mysql安裝完後才152M而Or ...
  • 資料庫占用的存儲空間,從高層次來看,可以查看資料庫文件(數據文件,日誌文件)占用的存儲空間,從較細的粒度上來看,分為數據表,索引,分區占用的存儲空間。監控資料庫對象占用的硬碟空間,包括已分配,未分配,和未使用的空間占比,能夠有效地管控存儲空間,合理利用,避免部分文件空間不足,而其他文件浪費空間的問題 ...
  • [20170628]11g修改用戶名.txt--//昨天看了鏈接,提到修改用戶名:http://www.oratea.com/2017/06/26/oracle-11g%e4%bf%ae%e6%94%b9%e7%94%a8%e6%88%b7%e5%90%8d/--//自己也測試看看.1.環境:SCO ...
  • 本文翻譯自http://hadoop.apache.org/docs/r2.8.0/hadoop-yarn/hadoop-yarn-site/YARN.html 譯註:原文說得有些過於簡單的,並且有些混亂。 yarn由兩個部分的守護程式構成:資源管理、調度/監控。 這樣就要求有個全局資源管理器(re ...
  • Redis服務搭建及操作Redis 是一個高性能的key-value資料庫。 redis的出現,很大程度補償了memcached這類keyvalue存儲的不足,在部分場合可以對關係資料庫起到很好的補充作用。它提供了Python,Ruby,Erlang,PHP客戶端,使用很方便。 以下是安裝測試步驟: ...
  • MongoDB基本命令用法成功啟動MongoDB後,再打開一個命令行視窗輸入mongo,就可以進行資料庫的一些操作。輸入help可以看到基本操作命令:show dbs:顯示資料庫列表 show collections:顯示當前資料庫中的集合(類似關係資料庫中的表) show users:顯示用戶us ...
  • 1、查詢表中所有數據 select * from 表名; 例:select * from stu; 2、查詢的同時修改表中數據 select * from 表名 for update; 例:select * from stu for update; 3、往表中添加數據 insert into 表名( ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...