MySQL的基礎語法2(函數-字符串函數、數值函數、日期函數和流程函數 )

目錄

一、字符串函數

1.常見字符串函數

?編輯?2.字符串函數的基本使用

3.字符串函數的數據庫案例演示

二、數值函數

1.常見數值函數(如下):

?2.數值函數的基本使用

3.數值函數的數據庫案例演示

三、日期函數

1.常見的日期函數

2.日期函數的基本使用

3.日期函數的數據庫案例演示?

四、流程函數?

1.常見的流程函數

?2.流程函數的基本使用

3.流程函數的數據庫案例演示


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

一、字符串函數

1.常見字符串函數

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

?2.字符串函數的基本使用

案例如下:

A. concat : 字符串拼接
select concat('Hello' , ' MySQL');B. lower : 全部轉小寫
select lower('Hello');C. upper : 全部轉大寫
select upper('Hello');D. lpad : 左填充
select lpad('01', 5, '-'); --  ---01E. rpad : 右填充
select rpad('01', 5, '-');  -- 01---F. trim : 去除空格
select trim(' Hello  MySQL ');  -- Hello MySQLG. substring : 截取子字符串
select substring('Hello MySQL',1,5); --Hello

3.字符串函數的數據庫案例演示

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

首先創建員工數據庫(代碼如下):

create table emp(id int comment '編號',workno varchar(10) comment '工號',name varchar(10) comment '姓名',gender char(1) comment '性別',age tinyint unsigned comment '年齡',idcard char(18) comment '身份證號',workaddress varchar(50) comment '工作地址',entrydate date comment '入職時間')comment '員工表';INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳巖', '女', 20, '123456789012345678', '北京', '2000-01-01'),(2, '00002', '張無忌', '男', 18, '123456789012345670', '北京', '2005-09-01'),(3, '00003', '韋一笑', '男', 38, '123456789712345670', '上海', '2005-08-01'),(4, '00004', '趙敏', '女', 18, '123456757123845670', '北京', '2009-12-01'),(5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01'),(6, '00006', '楊逍', '男', 28, '12345678931234567X', '北京', '2006-01-01'),(7, '00007', '范瑤', '男', 40, '123456789212345670', '北京', '2005-05-01'),(8, '00008', '黛綺絲', '女', 38, '123456157123645670', '天津', '2015-05-01'),(9, '00009', '范涼涼', '女', 45, '123156789012345678', '北京', '2010-04-01'),(10, '00010', '陳友諒', '男', 53, '123456789012345670', '上海', '2011-01-01'),(11, '00011', '張士誠', '男', 55, '123567897123465670', '江蘇', '2015-05-01'),(12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01'),(13, '00013', '張三豐', '男', 88, '123656789012345678', '江蘇', '2020-11-01'),(14, '00014', '滅絕', '女', 65, '123456719012345670', '西安', '2019-05-01'),(15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01'),(16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

實現代碼如下:

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

二、數值函數

1.常見數值函數(如下):

?2.數值函數的基本使用

A. ceil:向上取整
select ceil(1.1);  -- 2B. floor:向下取整
select floor(1.9);  -- 1C. mod:取模
select mod(7,4);   --  3 求余D. rand:獲取隨機數
select rand();  --  0-1之間  [0, 1)E. round:四舍五入
select round(2.344,2);  -- 對前面的數進行四舍五入,保留兩位小數

3.數值函數的數據庫案例演示

案例: (演示的表與一.3的案例同樣)通過數據庫的函數,生成一個六位數的隨機驗證碼。并生成新的字段,然后加入數據庫

ALTER TABLE emp ADD  rand_data int  COMMENT "隨機數";
update emp set rand_data = rpad(round(rand()*1000000 , 0), 6, '0');

三、日期函數

1.常見的日期函數

2.日期函數的基本使用

A. curdate:當前日期
select curdate();  -- 2025-03-29B. curtime:當前時間  
select curtime();  -- 11:34:59C. now:當前日期和時間
select now();   -- 2025-03-29 11:35:16  D. YEAR , MONTH , DAY:當前年、月、日select YEAR(now());  -- 2025select MONTH(now());  -- 3select DAY(now());   -- 29E. date_add:增加指定的時間間隔
select date_add(now(), INTERVAL 70 YEAR );   -- 當前時間往后推70年  -- 2095-03-29 11:38:36F. datediff:獲取兩個日期相差的天數  -- 第一個時間減去第二個時間
select datediff('2021-10-01', '2021-12-01');  --  -61

3.日期函數的數據庫案例演示?

案例: 查詢所有員工的入職天數,并根據入職天數倒序排序。(演示的表與一.3的案例同樣)

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

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

四、流程函數?

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

1.常見的流程函數

?2.流程函數的基本使用

A. if
-- IF(value, t, f)	如果 value 為 true,則返回 t,否則返回 f
select if(false, 'Ok', 'Error');  -- ErrorB. ifnull
-- IFNULL(value1, value2)	如果 value1 不為空,返回 value1,否則返回 value2
select ifnull('Ok','Default');  -- Ok
select ifnull('','Default');  --  返回前面的空字符串
select ifnull(null,'Default');  --  DefaultC. case when then else end
-- CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END	如果 val1 為 true,返回 res1,... 否則返回 default 默認值-- 需求: 查詢emp表的員工姓名和工作地址 (北京/上海 ----> 一線城市 , 其他 ----> 二線城市)selectname,( case workaddress when '北京' then '一線城市' when '上海' then '一線城市' else 
'二線城市' end ) as '工作地址'from emp;-- 張無忌,一線城市
-- 韋一笑,一線城市

3.流程函數的數據庫案例演示

create table score(id int comment 'ID',name varchar(20) comment '姓名',math int comment '數學',english int comment '英語',chinese int comment '語文') comment '學員成績表';insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95 
), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

?按分數段進行優秀和及格展示

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;

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

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

相關文章

全新版租賃商城小程序源碼系統 源碼開源支持二開+圖文搭建教程

在互聯網商業的浪潮中,租賃業務憑借其獨特的優勢,正逐漸成為市場的新寵。對于開發者而言,快速搭建一個功能完備的租賃商城小程序,不僅能滿足市場需求,還能為自己的業務拓展帶來新的機遇。分享一款全新版租賃商城小程序…

Cent OS7+Docker+Dify

由于我之前安裝了Dify v1.0.0,出現了一些問題:無法刪除,包括:知識庫中的文件、應用、智能體、工作流,都無法刪除。現在把服務器初始化,一步步重新安裝,從0到有。 目錄 1、服務器重裝系統和配置…

OSI 七層模型和四層模型(TCP/IP 模型)

文章目錄 前言一、OSI 七層模型二、TCP/IP 四層模型三、運行協議及設備1. OSI 七層模型2. TCP/IP 四層模型3. 運行協議4. 各類設備的作用 總結 前言 OSI 七層模型和四層模型(TCP/IP 模型)是兩種常見的網絡協議分層架構,它們的主要區別如下&a…

AI的未來:機遇、挑戰與發展方向

📝個人主頁🌹:一ge科研小菜雞-CSDN博客 🌹🌹期待您的關注 🌹🌹 1. 引言 人工智能(AI)已經成為當今世界最具革命性的技術之一,它正在深刻改變各個行業&#x…

javascript實現一個函數,將字符串中的指定子串全部替換為另一個字符串的原理,以及多種方法實現。

大白話javascript實現一個函數,將字符串中的指定子串全部替換為另一個字符串的原理,以及多種方法實現。 在JavaScript里,要是你想把字符串里的指定子串都替換成另外一個字符串,有不少方法可以實現。下面我會詳細介紹實現的原理&a…

硬件基礎--16_公式梳理

公式梳理 歐姆定律: IU/R 1.歐姆定律有局限性,僅適用于純電阻電路(或者說純電阻元器件,純電阻設備) 2.純電阻電路:消耗的電能僅轉化為熱能,沒有其他形式的能量轉換。 功率計算:PUI 1.導出公式:PU2 /R 2.導出公式:PI2 R 焦耳定律:QI2 Rt 1.導…

npm i 出現的網絡問題

npm i 出現的網絡問題 解決方案: npm config list 查看.npmrc文件中是否配置了proxy刪除.npmrc文件中的proxy,保存。重新執行npm i命令。 順便說說解決這個問題的心里路程 每次安裝vue的環境的時候,經常遇到npm安裝一些插件或者是依賴的時…

使用vue cli 5.0 在vscode中運行vue命令報錯

1、運行 vue -- version 報錯 2、在cmd 命令行 執行 vue --version 正常 3、在終端中輸入 get-ExecutionPolicy,查看當前權限 4、執行 set-executionpolicy remotesigned 命令設置為可用模式,但是報錯 5、使用管理員打開power shell 執行 G…

瑞芯微 RKrga接口 wrapbuffer_virtualaddr 使用筆記

一、源碼 官方在librga中給了很多 demo 以供參考&#xff0c;例如 imresize 操作&#xff1a; /** Copyright (C) 2022 Rockchip Electronics Co., Ltd.* Authors:* YuQiaowei <cerf.yurock-chips.com>** Licensed under the Apache License, Version 2.0 (the &qu…

Spring MVC:從歷史演變到實戰入門

1. Java Web的發展歷史與MVC模式 1.1 Model I與Model II的演進 Model I&#xff08;JSPJavaBean&#xff09; 作為早期Java Web開發的主流模式&#xff0c;其核心架構如下&#xff1a; graph LR A[客戶端] --> B[JSP頁面] B --> C{業務邏輯} C --> D[JavaBean] D -…

AI賦能,防御無界:群聯云防護如何顛覆傳統DDoS防御格局?

一、AI驅動的動態防御體系 智能流量調度 群聯云防護通過AI算法實時分析流量特征&#xff0c;動態分配清洗節點。當檢測到攻擊時&#xff0c;系統能在秒級內將流量切換至備用節點&#xff0c;避免單點過載。相較傳統高防IP依賴靜態規則&#xff0c;群聯的調度策略可減少50%的誤封…

R --- Error in library(***) : there is no package called ‘***’ (服務器非root用戶)

步驟 步驟一&#xff1a;在自己目錄下創建R包安裝路徑步驟二&#xff1a;配置用戶本地的R庫路徑步驟三&#xff1a;安裝缺失的包&#xff08;在終端&#xff09;步驟四&#xff1a;驗證安裝 步驟一&#xff1a;在自己目錄下創建R包安裝路徑 mkdir -p ~/R_libs步驟二&#xff1…

HarmonyOS NEXT狀態管理實踐

在HarmonyOS NEXT開發中&#xff0c;狀態管理是構建高效、響應式應用的核心。本文深入探討狀態管理的最佳實踐&#xff0c;結合代碼示例與案例分析&#xff0c;幫助開發者掌握這一關鍵技能。 一、狀態管理裝飾器的合理使用 HarmonyOS NEXT提供多種狀態管理裝飾器&#xff0c;…

excel 時間戳 轉日期

在Excel中&#xff0c;將時間戳轉換為日期格式&#xff0c;可以使用以下步驟和方法&#xff1a; 一、了解時間戳 時間戳&#xff08;Timestamp&#xff09;通常是從1970年1月1日&#xff08;UTC時間&#xff09;開始的秒數或毫秒數。這個時間點被稱為“Unix紀元”或“Unix時間…

Python CSV 數據分析:問題排查與解決全記錄

Python CSV 數據分析&#xff1a;問題排查與解決全記錄 前段時間&#xff0c;我接到一個任務&#xff0c;需要對公司的銷售數據進行分析。這些數據存儲在 CSV 文件里&#xff0c;本想著用 Python 處理起來會很輕松&#xff0c;結果卻狀況百出。下面&#xff0c;就跟大家講講我…

一些常用開發軟件下載地址

1. Matlab官方下載地址 MATLAB Runtime 是運行由 MATLAB 編譯的應用程序&#xff08;如 .exe、.jar 或 .dll&#xff09;所必需的組件&#xff0c;無需安裝完整 MATLAB。 &#x1f517; MathWorks 官方下載頁面&#xff1a; https://www.mathworks.com/products/compiler/mat…

06-SpringBoot3入門-常見注解(簡介)

1、Controller ResponseBody Controller是Spring MVC 中的注解&#xff0c;負責處理 HTTP 請求。 ResponseBody是Spring MVC 中的注解&#xff0c;用于直接將方法的返回值作為 HTTP 響應體。 2、RestController RestController Controller ResponseBody 3、RequestMappin…

ubuntu24.04.2 NVIDIA GeForce RTX 4060筆記本安裝驅動

https://www.nvidia.cn/drivers/details/242281/ 上面是下載地址 sudo chmod x NVIDIA-Linux-x86_64-570.133.07.run # 賦予執行權限把下載的驅動復制到家目錄下&#xff0c;基本工具準備&#xff0c;如下 sudo apt update sudo apt install build-essential libglvnd-dev …

【數據庫相關MySql、Redis、MongoDB】

一、三種數據庫的對比 MongoDB、MySQL 和 Redis 是三種不同類型的數據庫系統&#xff0c;它們在數據模型、存儲方式、性能特點、適用場景等方面存在顯著區別。以下是它們的詳細對比&#xff1a; 1. 數據模型 MySQL 類型&#xff1a;RDBMS&#xff08;關系型數據庫&#xff0…

《Express:Node.js 里的 “閃電俠”》

“你就坐在我身邊&#xff0c;好不好” 什么是Express 官方給出的概念&#xff1a;Express 是基于 Node.js 平臺&#xff0c;快速、開放、極簡的 Web 開發框架。 通俗的理解&#xff1a;Express 的作用和 Node.js 內置的 http 模塊類似&#xff0c;是專門用來創建 Web 服務器…