MySQL學習筆記九

第十一章使用數據處理函數

11.1函數

SQL支持函數來處理數據但是函數的可移植性沒有SQL強。

11.2使用函數

11.2.1文本處理函數

輸入:

SELECT vend_name,UPPER(vend_name) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;

輸出:

說明:UPPER()將文本轉換為大寫。

輸入:

SELECT vend_name,LEFT(vend_name,3) AS vend_name_upcase
FROM vendors
ORDER BY vend_name;

輸出:

說明:LEFT()函數用來從字符串左側截取文本,LEFT(要截取的文本,截取的位數)。

輸入:

SELECT vend_name,LENGTH(vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:LENGRH(字符串)函數用來返回字符串的長度。

輸入:

SELECT vend_name,LOCATE('ou',vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:LOCATE(待查找的字符串,被查找的字符串)找出串的一個子串,返回的是子串在串中的位置。

輸入:

SELECT vend_name,LOCATE('ou',vend_name,4) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:LOCATE(待查找的字符串,被查找的字符串,從第幾個字符串開始查找)從串的第幾個位置開始找出串的一個子串,返回的是子串在串中的位置。

輸入:

SELECT vend_name,LOWER(vend_name) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:LOWER(字符串)將串轉換為小寫。

輸入:

SELECT vend_name,RIGHT(vend_name,3) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:RIGHT(字符串,截取位數)從右邊截取字符串相應的位數。

輸入:

SELECT cust_name,cust_contact
FROM customers
WHERE cust_contact = 'Y. Lie';

輸出:

輸入:

SELECT cust_name,cust_contact
FROM customers
WHERE SOUNDEX(cust_contact) = SOUNDEX('Y. Lie');

輸出:

說明:SOUNDEX()返回串的SOUNDEX值。SOUNDEX是一個將任何文本串轉換為描述其語音表示的字母數字模式的算法。SOUNDEX考慮了類似的發音字符和音節,使得能對串進行發音比較而不是字母比較。雖然SOUNDEX不是SQL概念,但MySQL(就像多數DBMS一樣)都提供對SOUNDEX的支持。

第一次查詢之所以找不到相應的結果,是因為表中錄入的數據存在錯誤,使用SOUNDEX()函數就可以在讀音類似的情況下規避掉這種問題。

輸入:

SELECT vend_name,SUBSTR(vend_name FROM 2 FOR 3) AS vend_name_change
FROM vendors
ORDER BY vend_name;

輸出:

說明:SUBSTRING(字符串,FROM 開始位數 FOR 子串長度)返回串的子串。

11.2.2日期和時間處理函數

輸入:

SELECT cust_id, order_num
FROM orders
WHERE order_date = '2005-09-01';

輸出:

說明:MySQL使用的日期格式為yyyy-mm-dd。但是這樣的檢索中可能存在由于儲存的時間不僅僅包含了日期還包含了時間,此時單單憑借日期的檢索是很難實現的。

輸入:

SELECT cust_id, order_num
FROM orders
WHERE DATE(order_date) = '2005-09-01';

輸出:

說明:DATE()函數返回日期時間的日期部分。這樣的比較是更加可靠的。

輸入:

SELECT TIME('2025-04-08 13:45:00');

輸出:

說明:TIME()返回的日期時間的時間部分。

輸入:

SELECT ADDDATE('2025-04-08',1);

輸出:

說明:ADDDATE(日期,所增加天數/周等),在日期上增加一段時間。

輸入:

SELECT ADDDATE('2025-04-08',-1);

輸出:

說明:也可以減少,只需要把INTERVAL變為負數即可。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 HOUR);

輸出:

說明:增加兩個小時。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 HOUR);

輸出:

說明:減少兩個小時。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 MINUTE);

輸出:

說明:增加兩分鐘。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 MINUTE);

輸出:

說明:減少兩分鐘。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL 2 SECOND);

輸出:

說明:增加兩秒。

輸入:

SELECT ADDDATE('2025-04-08 13:57:00',INTERVAL -2 SECOND);

輸出:

說明:減少兩秒。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 WEEK);

輸出:

說明:可以變更后面的UNIT實現不同時間段的增減。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 WEEK);

輸出:

說明:減少兩周。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 MONTH);

輸出:

說明:變更為MONTH就是兩個月的增加。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 MONTH);

輸出:

說明:也可以減少,只需要把INTERVAL變為負數即可。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL 2 YEAR);

輸出:

說明:也可以增加兩年。

輸入:

SELECT ADDDATE('2025-04-08',INTERVAL -2 YEAR);

輸出:

說明:減少兩年。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',2);

輸出:

說明:增加兩秒。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',-2);

輸出:

說明:減少兩秒。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',200);

輸出:

說明:增加兩分鐘。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',-200);

輸出:

說明:減少兩分鐘。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00','00:01:00');

輸出:

說明:增加一分鐘。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00','-00:01:00');

輸出:

說明:減少一分鐘。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',10000);

輸出:

說明:增加一小時。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00',-10000);

輸出:

說明:減少一小時。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00','01:00:00');

輸出:

說明:增加一小時。

輸入:

SELECT ADDTIME('2025-04-08 14:18:00','-01:00:00');

輸出:

說明:減少一小時。

輸入:

SELECT CURDATE();

輸出:

說明:返回當前日期。

輸入:

SELECT CURTIME();

輸出:

說明:返回當前時間。

輸入:

SELECT DATEDIFF('2025-04-08','2025-04-10');

輸出:

說明:返回兩個日期之間的差值。結果以天數形式返回。

輸入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 YEAR);

輸出:

說明:DATE_ADD()高度靈活的日期計算函數。這里使用的是在當前日期上增加兩年。

輸入:

SELECT DATE_ADD('2025-04-08',INTERVAL -2 YEAR);

輸出:

說明:在當前日期上減少兩年

輸入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 QUARTER),
DATE_ADD('2025-04-08',INTERVAL -2 QUARTER);

輸出:

說明:QUARTER是季度的意思。

輸入:

SELECT DATE_ADD('2025-04-08',INTERVAL 2 HOUR),DATE_ADD('2025-04-08',INTERVAL -2 HOUR);

輸出:

說明:增加或減少兩個小時。

輸入:

SELECT DATE_FORMAT(CURDATE(), '%Y-%m-%d');

輸出:

說明:返回一個格式化的日期或字符串。

輸入:

SELECT DATE_FORMAT(CURDATE(), '%Y/%m/%d');

輸出:

輸入:

SELECT DAY(CURDATE());

輸出:

說明:DAY()函數返回一個日期的天數部分。

輸入:

SELECT DAYOFWEEK(CURDATE());

輸出:?

說明:DAYOFWEEK()函數返回對應的星期幾。但是這里需要注意數字1對應的是周日,以此類推。這里的3代表的是星期二。

輸入:

SELECT HOUR(CURTIME());

輸出:

說明:HOUR()函數返回一個時間的小時部分。

輸入:

SELECT MINUTE(CURTIME());

輸出:

說明:MINUTE()函數返回一個時間的分鐘部分。

輸入:

SELECT MONTH(CURTIME());

輸出:

說明:MONTH()函數返回一個時間的月份部分。

輸入:

SELECT SECOND(CURTIME());

輸出:

說明:SECOND()函數返回一個時間的秒部分。

輸入:

SELECT TIME(CURTIME());

輸出:

說明:TIME()函數返回一個日期時間的時間部分。

輸入:

SELECT YEAR(CURTIME());

輸出:

說明:YEAR()函數返回一個日期的年份部分。

輸入:

SELECT NOW();

輸出:

說明:NOW()返回當前日期和時間。

11.2.3數值處理函數

輸入:

SELECT ABS(-5.2);

輸出:

說明:ABS()函數返回一個數的絕對值。

輸入:

SELECT COS(PI()/3);

輸出:

說明:COS()函數返回一個角度的余弦值。PI()表示π

輸入:

SELECT EXP(1);

輸出:

說明:EXP()函數返回一個數的指數值。以e為底數。

輸入:

SELECT MOD(12,5);

輸出:

說明:MOD()函數返回除操作的余數值。

輸入:

SELECT RAND();

輸出:

說明:RAND()函數返回一個隨機數。

輸入:

SELECT SIN(PI()/6);

輸出:

說明:SIN()函數返回一個角度的正弦值。

輸入:

SELECT TAN(PI()/4);

輸出:

說明:TAN()函數返回一個角度的正切。

輸入:

SELECT SQRT(4);

輸出:

說明:SQRT()函數返回一個數的平方根。

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

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

相關文章

認識vue中的install和使用場景

寫在前面 install 在實際開發中如果你只是一個簡單的業務實現者,那么大部分時間你是用不到install的,因為你用到的基本上都是別人封裝好的插件、組件、方法、指令等等,但是如果你需要給公司的架構做建設,install就是你避不開的一個…

【SpringCloud】構建分布式系統的利器

一、引言 在當今數字化時代,隨著業務規模的不斷擴大和用戶量的急劇增長,單體應用逐漸暴露出諸多局限性,如可擴展性差、維護困難等。分布式系統應運而生,而 Spring Cloud 則成為了構建分布式系統的熱門框架之一。它提供了一系列豐…

mkdir通配符詳解

在 mkdir 命令中使用通配符可以簡化批量創建目錄的操作。通配符如 {} 和 * 可以用來生成多個目錄名稱,從而減少重復輸入。以下是一些常見的使用方法和示例。 使用 {} 通配符 {} 通配符可以用來生成一系列的目錄名稱,語法如下: mkdir dir_{…

Transformer的Word Embedding

一、Transformer 中的詞嵌入是什么? 1. 定義與作用 ? 詞嵌入(Word Embedding):將離散的詞語映射為低維連續向量,捕捉語義和語法信息。 ? 在 Transformer 中的位置: ? 輸入層:每個詞通過嵌入…

Linux 進程間通信:信號機制

Linux 進程間通信:信號機制 在多進程操作系統中,進程之間的通信至關重要,尤其是在Linux系統中,信號(Signal)作為一種特殊的進程間通信方式,廣泛用于進程之間的協調和控制。信號可以看作是操作系…

基于TRIZ創新方法論的九屏法分析系統

1. 文件頭與庫導入 # -*- coding: utf-8 -*- import streamlit as st import pandas as pd import numpy as np import plotly.graph_objects as go from datetime import datetime from sklearn.ensemble import RandomForestRegressor ??作用??:設置文件編碼…

【LangChain框架組成】 LangChain 技術棧的模塊化架構解析

目錄 整體架構概述 整體架構層級劃分 模塊詳細解析 1. 部署與服務層(LangServe & Deployments) 2. 應用模板層(Templates & Committee Architectures) 3. 核心功能層(LangChain) 4. 社區擴展…

自定義數據結構的QVariant序列化 ASSERT failure in QVariant::save: “invalid type to save“

自定義數據結構放入QVariant,在序列化時拋出異常 ASSERT failure in QVariant::save: “invalid type to save” 自定義數據結構如struct MyData,除了要在結構體后面加 struct MyData { ... } Q_DECLARE_METATYPE(MyData)如果需要用到流的輸入輸出&…

vxe-table 啟用 checkbox-config.reserve 實現分頁復選框選擇功能、獲取已選數據的用法

vxe-table 啟用 checkbox-config.reserve 實現分頁復選框選擇功能、獲取已選數據的用法 查看官網:https://vxetable.cn gitbub:https://github.com/x-extends/vxe-table gitee:https://gitee.com/x-extends/vxe-table 效果 代碼 獲取已選擇…

藍橋杯-門牌制作

題目描述 本題為填空題,只需要算出結果后,在代碼中使用輸出語句將所填結果輸出即可。 小藍要為一條街的住戶制作門牌號。 這條街一共有 20202020 位住戶,門牌號從 11 到 20202020 編號。 小藍制作門牌的方法是先制作 00 到 99 這幾個數字…

C#調用Lua方法1+C#調用Lua方法2,3

xLua中Lua調用C#代碼 原因:C#實現的系統,因為Lua可以調用,所以完全可以換成Lua實現,因為Lua可以即時更改,即時運行,所以游戲的代碼邏輯就可以隨時更改。 實現和C#相同效果的系統,如何實現&#…

macOS Chrome - 打開開發者工具,設置 Local storage

文章目錄 macOS Chrome - 打開開發者工具設置 Local storage macOS Chrome - 打開開發者工具 方式2:右鍵點擊網頁,選擇 檢查 設置 Local storage 選擇要設置的 url,顯示右側面板 雙擊面板,輸入要添加的內容 2025-04-08&#xff…

zustand 源碼解析

文章目錄 實現原理createcreateStore 創建實例CreateStoreImpl 實現發布訂閱createImpl 包裝返回給用戶調用的 hookuseSyncExternalStoreWithSelector 訂閱更新zustand 性能優化自定義數據更新createWithEqualityFncreateWithEqualityFnImpl 返回 hookuseSyncExternalStoreWith…

kotlin,Android,jetpack compose,日期時間設置

AI生成,調試出來學習,這些小組件會用了,就可以組合一個大點的程序了。 package com.example.mydatetimeimport android.app.AlertDialog import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.co…

構建k8s下Helm私有倉庫與自定義Chart開發指南

#作者:程宏斌 文章目錄 自定義helm模板1、開發自己的chare包2、調試chart3、安裝chart 自定義helm模板 https://hub.helm.sh/ 1、開發自己的chare包 [rootmaster ~]# helm create mychare //創建一個名為mychare的chare包 [rootmaster ~]# tree -C mychare/ //以…

MOP數據庫中的EXPLAIN用法

EXPLAIN 是 SQL 中的一個非常有用的工具,主要用于分析查詢語句的執行計劃。執行計劃能展示數據庫在執行查詢時的具體操作步驟,像表的讀取順序、使用的索引情況、數據的訪問方式等,這有助于我們對查詢性能進行優化。 語法 不同的數據庫系統&…

項目范圍蔓延的十大誘因及應對策略

項目范圍蔓延的十大誘因及應對策略是什么?主要在于: 缺乏清晰目標、利益相關方過多、需求變更未及時管控、缺少優先級體系、溝通鏈條冗長、管理層干預頻繁、資源與預算不匹配、技術風險被低估、合同或協議不完善、缺乏階段性驗收與復盤。其中缺乏清晰目標…

做好一個測試開發工程師第二階段:java入門:idea新建一個project后默認生成的.idea/src/out文件文件夾代表什么意思?

時間:2025.4.8 一、前言 關于Java與idea工具安裝不再展開,網上很多教程,可以自己去看 二、project建立后默認各文件夾代表意思 1、首先new---->project后會得到文件如圖 其中: .idea文件代表:存儲這個項目的歷史…

算法進階指南 分形

問題描述 分形,具有以非整數維形式充填空間的形態特征。通常被定義為: “一個粗糙或零碎的幾何形狀,可以分成數個部分,且每一部分都(至少近似地)是整體縮小后的形狀”,即具有自相似的性質。 現…

18-產品經理-跟蹤進度

禪道是一個可以幫助產品經理跟蹤研發進度的系統。通過禪道,產品經理可以從多個角度了解產品的研發狀態。在儀表盤中,可以展示所有產品或單一產品的概況,包括需求、計劃和發布數量,研發需求狀態,Bug修復率和計劃發布數。…