mysql的函數(第一期)

一、字符串函數??

處理文本數據,常用函數:

  1. ??CONCAT(str1, str2, ...)??

    • ??作用??:拼接字符串。
    • ??示例??:SELECT CONCAT('Hello', ' ', 'World');?→?Hello World
    • ??注意??:若任一參數為?NULL,結果為?NULL
  2. ??CONCAT_WS(separator, str1, str2, ...)??

    • ??作用??:用分隔符拼接字符串,自動忽略?NULL
    • ??示例??:SELECT CONCAT_WS('-', '2023', NULL, '10');?→?2023-10
  3. ??SUBSTRING(str, start, length)??

    • ??作用??:截取子串,索引從?1?開始。
    • ??示例??:SELECT SUBSTRING('MySQL', 3, 2);?→?SQ
  4. ??REPLACE(str, from_str, to_str)??

    • ??作用??:替換字符串中的子串。
    • ??示例??:SELECT REPLACE('foo bar', 'foo', 'hello');?→?hello bar
  5. ??TRIM([LEADING|TRAILING|BOTH] trim_str FROM str)??

    • ??作用??:去除首尾空格或指定字符。
    • ??示例??:SELECT TRIM(' MySQL ');?→?MySQL
  6. ??LENGTH(str)?? 與 ??CHAR_LENGTH(str)??

    • ??區別??:LENGTH?返回字節數,CHAR_LENGTH?返回字符數。
    • ??示例??:SELECT LENGTH('中文'), CHAR_LENGTH('中文');?→?6, 2(UTF-8編碼)

??二、數值函數??

處理數值計算,常用函數:

  1. ??ROUND(num, decimals)??

    • ??作用??:四舍五入,decimals?可為負數。
    • ??示例??:SELECT ROUND(123.456, -1), ROUND(123.456, 2);?→?120, 123.46
  2. ??CEIL(num)?? 與 ??FLOOR(num)??

    • ??作用??:向上/向下取整。
    • ??示例??:SELECT CEIL(3.1), FLOOR(3.9);?→?4, 3
  3. ??RAND()??

    • ??作用??:生成?[0,1)?的隨機數。
    • ??示例??:SELECT RAND();?→ 隨機值如?0.123
    • ??注意??:結合?ORDER BY RAND()?可隨機排序,但性能較差。
  4. ??POW(x, y)??

    • ??作用??:計算?x?的?y?次方。
    • ??示例??:SELECT POW(2, 3);?→?8

??三、日期時間函數??

處理日期和時間,常用函數:

  1. ??NOW()??

    • ??作用??:返回當前日期和時間(格式:YYYY-MM-DD HH:mm:ss)。
    • ??示例??:SELECT NOW();?→?2023-10-10 14:30:00
  2. ??DATE_FORMAT(date, format)??

    • ??作用??:格式化日期。
    • ??示例??:SELECT DATE_FORMAT(NOW(), '%Y-%m-%d');?→?2023-10-10
  3. ??DATEDIFF(date1, date2)??

    • ??作用??:計算兩個日期相差的天數。
    • ??示例??:SELECT DATEDIFF('2023-10-10', '2023-10-01');?→?9
  4. ??DATE_ADD(date, INTERVAL expr unit)??

    • ??作用??:日期加法。
    • ??示例??:SELECT DATE_ADD(NOW(), INTERVAL 1 MONTH);?→ 當前日期加一個月。
  5. ??EXTRACT(unit FROM date)??

    • ??作用??:提取日期部分(如年、月、日)。
    • ??示例??:SELECT EXTRACT(YEAR FROM '2023-10-10');?→?2023

??四、流程控制函數??

處理條件邏輯:

  1. ??IF(condition, value_if_true, value_if_false)??

    • ??示例??:SELECT IF(score >= 60, 'Pass', 'Fail');
  2. ??CASE??

    • ??作用??:多條件分支。
    • ??示例??:
      SELECT CASE WHEN score >= 90 THEN 'A'WHEN score >= 80 THEN 'B'ELSE 'C'END AS grade
      FROM students;
  3. ??COALESCE(value1, value2, ...)??

    • ??作用??:返回第一個非?NULL?值。
    • ??示例??:SELECT COALESCE(NULL, 'default');?→?default

??五、聚合函數??

對多行數據進行統計:

  1. ??SUM(column)??

    • ??作用??:求和,忽略?NULL
  2. ??COUNT(expr)??

    • ??示例??:COUNT(*)?統計行數,COUNT(DISTINCT column)?去重計數。
  3. ??GROUP_CONCAT(expr)??

    • ??作用??:合并多行結果,默認逗號分隔。
    • ??示例??:SELECT GROUP_CONCAT(name SEPARATOR '|') FROM users;
  4. ??AVG(column)?? 與 ??MAX(column)/MIN(column)??

    • ??注意??:AVG?忽略?NULLMAX/MIN?適用于數值、日期和字符串。

??六、加密函數??

  1. ??MD5(str)?? 與 ??SHA1(str)??

    • ??示例??:SELECT MD5('password');?→ 32位哈希值。
  2. ??SHA2(str, hash_length)??

    • ??示例??:SELECT SHA2('password', 256);?→ 64位哈希值。

??七、注意事項??

  1. ??索引失效??:避免在?WHERE?中對索引列使用函數(如?WHERE YEAR(date) = 2023)。
  2. ??NULL 處理??:函數如?SUM?忽略?NULL,而?CONCAT?遇到?NULL?返回?NULL
  3. ??版本差異??:窗口函數(如?ROW_NUMBER())僅支持 MySQL 8.0+。
  4. ??性能優化??:謹慎使用?ORDER BY RAND()?或大文本處理函數。

??八、自定義函數??

通過?CREATE FUNCTION?可定義存儲函數,需注意權限和語法:

DELIMITER $$
CREATE FUNCTION add_tax(price FLOAT) RETURNS FLOAT
BEGINRETURN price * 1.1;
END 
$$
DELIMITER ;

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/76420.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/76420.shtml
英文地址,請注明出處:http://en.pswp.cn/web/76420.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux下的網絡管理

注意:本文使用的Linux系統版本為Red Hat Enterprise Linux 9 (RHEL 9)。 在RHEL9上,使用NM(NetworkManager)進行網絡配置,ifcfg (也稱為 文件)將不再是網絡配置文件的主存儲。雖然 ifcfg 樣式仍…

游戲引擎學習第233天

原地歸并排序地方很蒙圈 game_render_group.cpp:注意當前的SortEntries函數是O(n^2),并引入一個提前退出的條件 其實我們不太討論這些話題,因為我并沒有深入研究過計算機科學,所以我也沒有太多內容可以分享。但希望在過去幾天里…

從《周游記3》演繹歌劇版《菊花臺》,周杰倫婚禮曲目意大利文版驚喜亮相

今天(4月19日)22:00,由魔胴西西里咖啡冠名的戶外實境互動綜藝《周游記3》第四期即將播出。本期節目中,“J式之旅”發起人周杰倫和林暐恒、杜國璋、陳冠霖、陳冠廷,將繼續意大利之旅,從那不勒斯的百年老店到…

Linux系統編程 day6 進程間通信mmap

父子共享的信息:文件描述符,mmap建立的共享映射區(MAP_SHARED) mmap父子間進程通信 var的時候 :讀時共享,寫時復制 父進程先創建映射區,指定共享MAP_SHARED權限 , fork創建子進程…

opencv--圖像處理

圖像處理技術 圖像處理技術是利用計算機對圖像進行計算,分析和處理的技術,包括數字圖像處理和計算機視覺兩大領域。 對圖像的處理包括濾波,縮放,分割,識別(兩種信息對比)等。 鏈接 數字圖像處理 1. 數字圖像處理(Digital Image Processing) 數字圖像處理主要關注圖…

Spring 學習筆記之 @Transactional詳解

一、數據庫事務基礎 數據庫事務(Transaction)是數據庫管理系統中用于確保數據一致性和完整性的一種機制。它是一組操作的集合,這些操作要么全部成功,要么全部失敗,從而保證數據庫狀態的正確性。 1.1 事務的基本概念 定…

【Openlayers】Openlayers 入門教程

Openlayers 入門教程 -系列文章列表 openlayers 入門教程(一):openlayers簡介 openlayers 入門教程(二):Map 篇 openlayers 入門教程(三):View 篇 openlayers 入門教程&a…

【Lua語言】Lua語言快速入門

初始Lua Lua是一種輕量小巧的腳本語言,他使用標準C語言編寫并以源代碼形式開放。這意味著Lua虛擬機可以很方便的嵌入別的程序中,從而為應用程序提供靈活的擴展和定制功能。同時,在目前腳本引擎中,Lua的運行速度占有絕對優勢。 變…

車載診斷新架構--- SOVD初入門(上)

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

linux查看目錄相關命令

查看目錄命令 學習目標 能夠使用Linux命令查看目錄信息 1. 查看目錄命令的使用 命令說明ls查看當前目錄信息tree以樹狀方式顯示目錄信息 ls命令效果圖: tree命令效果圖: 2. 查看當前目錄路徑 命令說明pwd查看當前目錄路徑 pwd命令效果圖: 3. 清除終端內容 命令說明clear…

JavaScript中的Event事件對象詳解

一、事件對象(Event)概述 1. 事件對象的定義 event 對象是瀏覽器自動生成的對象,當用戶與頁面進行交互時(如點擊、鍵盤輸入、鼠標移動等),事件觸發時就會自動傳遞給事件處理函數。event 對象包含了與事件…

OSPF綜合實驗(HCIP)

1,R5為ISP,其上只能配置Ip地址;R4作為企業邊界路由器, 出口公網地址需要通過ppp協議獲取,并進行chap認證 2,整個OSPF環境IP基于172.16.0.0/16劃分; 3,所有設備均可訪問R5的環回&…

2024-04-19| Java: Documented注解學習 JavaDoc

在 Java 中,Documented 是一個元注解(meta-annotation),用于標記其他注解,表明這些注解應該被包含在 JavaDoc 文檔中。以下是關于 Documented 注解的作用的簡要說明: 作用 記錄注解信息到 JavaDoc&#x…

15.Chromium指紋瀏覽器開發教程之WebAudio指紋定制

WebAudio指紋概述 瀏覽器中的 WebAudio API 提供了豐富的功能,其中包括了大量生成和處理音頻數據的API。WebAudio API 的音頻指紋技術是一種利用音頻信號的特征來唯一標識音頻的技術。因為WebAudio API 提供了豐富的音頻處理功能,包括合成、過濾、分析等…

2025年贛教云智慧作業微課PPT模板

江西的老師們注意,2025年贛教云智慧作業微課PPT模版和往年不一樣,千萬不要搞錯了,圖上的才是正確的2025年的贛教云智慧作業微課PPT模版,贛教云智慧作業官網有問題,無法正確下載該模板,需要該模板的&#xf…

2.5.1DOS下常用工具 curl,netstat,telnet命令使用

curl命令 Win10及以上系統默認已安裝Curl,打開命令提示符輸入 curl --help,若顯示幫助信息則無需安裝 ??手動安裝方法?? 官網下載:訪問 curl官網 選擇Windows版本curl for Windows若需在 Windows XP 等舊系統使用,需選擇更…

使用Redis實現實時排行榜

為了實現一個實時排行榜系統,我們可以使用Redis的有序集合(ZSet),其底層通常是使用跳躍表實現的。有序集合允許我們按照分數(score)對成員(member)進行排序,因此非常適合…

Linux——firewalld防火墻(筆記)

目錄 一:Firewalld防火墻的概述 (1)firewalld簡介 (2)firewalld&iptables的關系 (3)firewalld與iptables service的區別 1. ?規則管理方式? 2. ?默認策略與設計邏輯? 3. ?配置文…

JS中實現類似sleep、wait、delay的延時功能

前言 編寫代碼時很多時候需要進行流程化的操作,各個流程間通常需要等待一定時間,這在很多語言中通常可以使用 sleep 、 wait 、 delay 等函數來實現。JavaScript原生并沒有類似的功能,想要延時通常就是使用 setTimeout(functionRef, delay) …

Elasticsearch:使用 ES|QL 進行搜索和過濾

本教程展示了 ES|QL 語法的示例。請參考 Query DSL 版本,以獲得等效的 Query DSL 語法示例。 這是一個使用 ES|QL 進行全文搜索和語義搜索基礎知識的實踐介紹。 有關 ES|QL 中所有搜索功能的概述,請參考《使用 ES|QL 進行搜索》。 在這個場景中&#x…