MySQL 函數(入門版)

目錄

一、字符串函數

1、常用的字符串函數

2、函數演示

3、具體案例

二、數值函數

1、常用的數值函數

2、函數演示

3、具體案例

三、日期函數

1、常用的日期函數

2、函數演示

3、具體案例

四、流程函數

1、常用的流程函數

2、函數演示

3、具體案例


????????在MySQL中,函數是預先定義好的程序,能夠接收零個或多個輸入參數,接著進行特定運算,最終返回一個結果。

? ? ? ? 也就意味著,這一段程序或代碼在MySQL中已經給我們提供了,我們要做的就是在合適的場景調用對應的函數完成對應的需求即可。

? ? ? ? MySQL主要用于DML?(數據操作語言)與DQL?(數據查詢語言),在 DDL (數據定義語言)和 DCL (數據控制語言)中幾乎沒有什么使用場景。

????????MySQL中的函數主要分為以下四類字符串函數數值函數日期函數流程函數。以下是對這四類函數的詳細介紹。

一、字符串函數

1、常用的字符串函數

????????MySQL中內置了很多字符串函數,常用的幾個如下:

2、函數演示

(1)concat : 字符串拼接

select concat('Hello' , ' MySQL');

(2)lower : 全部轉小寫

select lower('Hello');

(3)upper : 全部轉大寫

select upper('Hello');

(4)lpad : 左填充

select lpad('01', 5, '-');

(5)rpad : 右填充

select rpad('01', 5, '-');

(6)trim : 去除空格

select trim(' Hello MySQL ');

(7)substring : 截取子字符串

select substring('Hello MySQL',1,5);

3、具體案例

????????由于業務需求變更,企業員工的工號,統一為5位數,目前不足5位數的全部在前面補0。比如: 1號員工的工號應該為00001。

update emp set workno = lpad(workno, 5, '0');

二、數值函數

1、常用的數值函數

常用的數值函數如下:

2、函數演示

(1)ceil:向上取整

select ceil(1.1);

(2)floor:向下取整

select floor(1.9);

(3)mod:取模

select mod(7,4);

(4)rand:獲取隨機數(0 ~ 1)

select rand();

(5)round:四舍五入

select round(2.344,2);

3、具體案例

????????通過數據庫的函數,生成一個六位數的隨機驗證碼。

????????思路: 獲取隨機數可以通過rand()函數,但是獲取出來的隨機數是在0-1之間的,所以可以在其基礎上乘以1000000,然后舍棄小數部分,如果長度不足6位,補0

select lpad(round(rand()*1000000 , 0), 6, '0');

三、日期函數

1、常用的日期函數

常見的日期函數如下:

2、函數演示

(1)curdate:當前日期

select curdate();

(2)curtime:當前時間

select curtime();

(3)now:當前日期和時間

select now();

(4)year , month , day:當前年、月、日

select year(now());select month(now());select day(now());

(5)date_add:增加指定的時間間隔

select date_add(now(), interval 70 YEAR );
--其中date的值是一個符合'xxxx-xx-xx'形式的日期即可,也可以是函數

(6)datediff:獲取兩個日期相差的天數

select datediff('2021-10-01', '2021-12-01');
--是前面的日期減去后面的日期

3、具體案例

? ? ? ? 查詢所有員工的入職天數,并根據入職天數倒序排序。

????????思路:入職天數,就是通過當前日期 - 入職日期,所以需要使用 datediff 函數來完成。

select name, datediff(curdate(), entrydate) as 'entrydays' 
from emp 
order by entrydays desc;

四、流程函數

1、常用的流程函數

????????流程函數也是常用的一類函數,可以在SQL語句中實現條件篩選,從而提高語句的效率。

? ? ? ? 最后兩個函數的基本形式是:case when then else end,作用是進行條件分支的判斷

? ? ? ? 上面的第三個函數用于范圍匹配,當vall是真的時候,返回res1,否則返回default;上面的第四個函數用于具體的值的判斷,當expr是vall的時候,返回res1,否則返回default。

2、函數演示

(1)if

select if(false, 'Ok', 'Error');

(2)ifnull

select ifnull('Ok','Default');select ifnull('','Default');select ifnull(null,'Default');

????????第二個 SQL 語句中的 ' ' 并非空值 null。在 SQL 里,' ' 代表空字符串它屬于一個有實際內容的值,只是內容為空。

????????而 ifnull 函數的用途是檢驗第一個參數是否為 null ,若為 null 則返回第二個參數;若不是 null,就返回第一個參數。

(3)case when then else end

? ? ? ? 查詢emp表的員工姓名和工作地址,北京/上海顯示為一線城市,其他顯示為二線城市。

selectname,(case workaddress when '北京' then '一線城市' when '上海' then '一線城市' else '二線城市' end ) as '工作地址'
from emp;

3、具體案例

我們現在有這樣一個表:

? ? ? ? 要求成績按如下展示:85分及以上顯示優秀,60分及以上顯示及格,否則顯示不及格。

selectid,name,(case when math >= 85 then '優秀' when math >=60 then '及格' else '不及格' end ) '數學',(case when english >= 85 then '優秀' when english >=60 then '及格' else '不及格' end ) '英語',(case when chinese >= 85 then '優秀' when chinese >=60 then '及格' else '不及格' end ) '語文'
from score;

?????????以上即為MySQL 函數(入門版)的全部內容,創作不易,麻煩三連支持一下唄~??

?

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

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

相關文章

基于快速開發平臺與智能手表的區域心電監測與AI預警系統(源碼+論文+部署講解等)

需要源代碼,演示視頻,ppt設計原稿資料,請文末卡片聯系 !](https://i-blog.csdnimg.cn/direct/242d53cd069940b5b7a6db2bb031d406.png#pic_center)

【神經網絡】python實現神經網絡(三)——正向學習的模擬演練

有了之前的經驗(【神經網絡】python實現神經網絡(二)——正向推理的模擬演練),我們繼續來介紹如何正向訓練神經網絡中的超參(包含權重以及偏置),本章大致的流程圖如下: 一.損失函數 神經網絡以某個指標為基準尋求最優權重參數,而這個指標即可稱之為 “損失函數” 。(…

分區格式變RAW故障深度解析與數據恢復實戰指南?

分區格式變RAW的本質? 當存儲設備(如硬盤、U盤或移動硬盤)的分區突然顯示為RAW格式時,意味著操作系統無法識別其原有的文件系統結構(如NTFS、FAT32等)。此時,用戶訪問該分區會提示“需要格式化”或直接顯示…

【QT】Qt5 QtWebEngine使用教程

目錄 1、QtWebEngine相比于QtWebKit的優勢2、項目配置2.1 確認 Qt 版本2.2 在.pro 文件中添加依賴3、顯示網頁4、實現Qt和網頁JavaScript之間的交互4.1 Qt執行網頁的JavaScript代碼4.2 JavaScript調用Qt對象的函數QtWebEngine 是 Qt 框架中用于在應用程序中嵌入 Web 內容的模塊…

網絡安全-等級保護(等保) 1-0 等級保護制度公安部前期發文總結

################################################################################ 等級保護從1994年開始已經有相關文件下發,進行建設,后續今年多年制度完善,現在已進入等保2.0時代,相關政策已運行多年。 前期等保相關發文&…

視圖函數的應用

1.實現將當前日期和時間編碼為HTML文檔并返回的簡單視圖函數 文章目錄 1.實現將當前日期和時間編碼為HTML文檔并返回的簡單視圖函數1.1打開visualcode 按圖示點擊 創建新的終端1.2然后定義ViewDjango項目根目錄下的路由文件urls.py,實現到SimpleView應用的路由路徑1…

解鎖 C 語言安全新姿勢:C11 安全函數全解析

一、開篇:C 語言安全的新護盾 在 C 語言的編程世界里,緩沖區溢出等安全問題猶如潛藏的暗礁,時刻威脅著程序的穩定與安全。為了有效應對這些挑戰,C11 標準引入了一系列安全函數,也被稱為 “Annex K” 標準庫函數。這些函數為字符串和內存操作函數注入了新的活力,通過增加…

BGP路由協議之屬性2

Orgin 起源 公認必遵屬性 起源名稱標記描述IGPi如果路由是由始發的 BGP 路由器使用 network 命令注入到 BGP 的,那么該 BGP 路由的 origin 屬性為 IGPEGPe如果路由是通過 EGP 學習到的,那么該 BGP 路由的 Origin 屬性為 EGPIncomplete?如果路由是通過…

C#實現HiveQL建表語句中特殊數據類型的包裹

用C#實現搜索字符串中用’(‘和’)‘包裹的最外層的里面里面的字符串&#xff0c;將里面的記錄按一個或多個空格、換行或tab&#xff0c;或者是它的在一起的組合作為分隔&#xff0c;分隔出多個字符串組&#xff0c;如果組中有字符串中同時包含’<‘和’>’&#xff0c;則…

腦電學習筆記

一&#xff0c;原理簡介 使用eprime或者matlab給被試呈現刺激&#xff0c;并在某個時間發送Mark&#xff0c;腦電帽會同步采集被試的腦電信號&#xff0c;經放大器放大后&#xff0c;控制盒會把腦電信號和mark 信號同步到一起&#xff0c;通過usb線傳入到采集系統&#xff08;比…

宏碁筆記本電腦擎7PRO搭載的 NVIDIA RTX 5080 顯卡安裝pytorch

宏碁筆記本電腦擎7PRO搭載的 NVIDIA RTX 5080 顯卡是一款高性能移動 GPU&#xff0c;基于 NVIDIA 最新的 Blackwell 架構設計&#xff0c;通過修正架構&#xff08;Blackwell&#xff09;、顯存類型與帶寬&#xff08;GDDR7、960GB/s&#xff09;、Tensor Core 與 RT Core 全面…

ES6中增強對象

在 ES6 中&#xff0c;對象的使用變得更加方便了&#xff0c;可以在定義對象時通過屬性簡寫、遍歷作為屬性名或省略對象函數屬性的書寫等方式來提高編碼的效率&#xff1a; 其實就這么簡單&#xff0c;大家可以好好看下上面的代碼&#xff0c;有問題歡迎留言一起探討&#xff0…

XSLFO XSLT:深入解析兩種強大的XML轉換技術

XSLFO & XSLT:深入解析兩種強大的XML轉換技術 引言 在XML(可擴展標記語言)的生態系統中,XSLFO(可擴展樣式表語言格式化對象)和XSLT(可擴展樣式表轉換語言)是兩種非常強大的技術。它們分別負責將XML文檔轉換為其他格式以及進行XML文檔的轉換。本文將深入探討這兩種…

Django4.0的快速查詢以及分頁

1. filter 方法 filter 是 Django ORM 中最常用的查詢方法之一。它用來根據給定的條件過濾查詢集并返回滿足條件的對象。 articles Article.objects.all() # 使用 SearchFilter 進行搜索 search_param request.query_params.get(search, None) author_id request.query_pa…

在Vue3中格式化后端返回的Java Date類型數據為指定格式

在前端Vue3項目中&#xff0c;格式化后端返回的java.util.Date類型時間到yyyy-MM-dd HH:mm:ss格式&#xff0c;有幾種常用方法&#xff1a; 方法一&#xff1a;使用JavaScript內置方法 <JAVASCRIPT> // 假設后端返回的數據結構為 { createTime: 2023-05-15T08:30:00.0…

單元測試原則之——不要模擬不屬于你的類型

在單元測試中,不要模擬不屬于你的類型(Don’t mock types you don’t own)是一個重要的原則。這是因為外部庫或框架的類型(如第三方依賴)可能會在未來的版本中發生變化,而你的模擬可能無法反映這些變化,從而導致測試失效。 以下是一個基于Java Mockito 的示例,展示如何…

內網滲透(雜項集合) --- 中的多協議與漏洞利用技術(雜項知識點 重點) 持續更新

目錄 1. NetBIOS 名稱的網絡協議在局域網中內網滲透中起到什么作用 2. 使用 UDP 端口耗盡技術強制所有 DNS 查找失敗&#xff0c;這個技術如何應用在局域網內網滲透測試中 3. 在本地創建一個 HTTP 服務來偽造 WPAD 服務器 什么是 WPAD 服務器&#xff1f;這個服務器是干嘛的…

Git相關筆記1 - 本地文件上傳遠程倉庫

Git相關筆記 目錄 Git相關筆記Git上傳相關文件第一步創建一個倉庫&#xff1a;第二步本地創建空文件夾&#xff1a;第三步開始在gitbush上傳文件&#xff1a;解決外網網絡連接的問題&#xff1a;中文文件的編碼問題&#xff1a;參考資料 Git上傳相關文件 第一步創建一個倉庫&a…

Cocos Creator 進行 Web 發布后,目錄結構解析

在使用 Cocos Creator 進行 Web 發布后&#xff0c;生成的目錄結構通常包含以下內容&#xff0c;下面為你詳細介紹&#xff1a; 1. index.html 這是 Web 項目的入口 HTML 文件&#xff0c;它會加載所需的 JavaScript 文件和資源&#xff0c;從而啟動游戲或應用程序。示例代碼…

C++20的協程簡介

C20 引入了協程&#xff08;Coroutines&#xff09;&#xff0c;這是一種特殊的函數&#xff0c;它可以暫停執行并在之后恢復&#xff0c;而不是像普通函數那樣一旦返回就終止。協程的主要特點在于它能保留自身的執行狀態&#xff0c;這讓異步編程更加簡潔和直觀。以下是對 C20…