国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

MySQL函數(shù)講解(謂詞、CASE)

這篇具有很好參考價值的文章主要介紹了MySQL函數(shù)講解(謂詞、CASE)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

目錄

MySQL常見函數(shù)

字符串函數(shù) 進行字符串操作的函數(shù)

算術函數(shù) 進行數(shù)值計算的函數(shù)

日期函數(shù) 進行日期操作的函數(shù)

轉換函數(shù) 進行數(shù)據(jù)類型和值轉換的函數(shù)

流程函數(shù)? 進行條件刪選

聚合函數(shù) 進行數(shù)據(jù)聚合的函數(shù)

謂詞 一般用于條件判斷


什么是函數(shù)

函數(shù)指一段可以直接被另一段程序調用的程序或代碼

MySQL常見函數(shù)

字符串函數(shù) 進行字符串操作的函數(shù)

MySQL常用的內置 字符串函數(shù)如下

CONCAT(S1,S2……Sn)????????? 字符串拼接函數(shù),將S1,S2……Sn拼接為一個字符串

LENGTH(str)??????????????????????? 字符串長度,顯示出字符串中包含多少個字符

LOWER(str)???????????????????????? 將字符串str全部轉為小寫

UPPER(str)????????????????????????? 將字符串str全部轉為大寫

REPLACE(str1,str2,str3)??????? 字符串替換,將str1中的str2部分替換為str3

LPAD(str,n,pad)?????????????????? 左填充,用字符串pad對str的左邊進行填充,使得str達到n個字符串長度

RPAD(str,n,pad)????????????????? 右填充,用字符串pad對str的右邊進行填充,使得str達到n個字符串長度

TRIM(str)???????????????????????????? 去掉字符串的頭部和尾部的空格

SUBSTRING(str,start,len)????? 返回字符串str從start位置起的len個長度的字符串(字符串的索引是從1開始的,而不是0)

update staff1 set number =? lpad(number,8,'0'); #修改number字段值,使用字符串”0”對其左填充,使得number達到8個字符串長度(注意:number的數(shù)據(jù)類型為varchar)

算術函數(shù) 進行數(shù)值計算的函數(shù)

MySQL常用的內置 算術函數(shù)如下

+(加法)、-(減法)、*(乘法)、/(除法)

ABS(x)?????????????????? 對x取絕對值

MOD(x,y)????????????? 返回x/y的模(余數(shù))

RAND()???????????????? 返回0~1內的隨機數(shù)

ROUND(x,y)????????? 求參數(shù)x的四舍五入的值,保留y位小數(shù)

CEIL(x)????????????????? 對x向上取整

FLOOR(x)????????????? 對x向下取整

select round(rand()*100000,0);?? #隨機生成5位數(shù)的驗證碼?????如果產生的小數(shù)0.012345,生成的驗證碼就只有4位數(shù)1234,因此需要補0
select lpad(round(rand()*100000,0),5,'0');? #補0

日期函數(shù) 進行日期操作的函數(shù)

MySQL常用的內置 日期函數(shù)如下

CURDATE()?????????? 返回當前日期(年月日)

CURTIME()??????????? 返回當前時間

NOW()????????????????? 返回當前日期和時間

YEAR(date)?????????? 獲取指定date(年月日)的年份

MONTH(date)?????? 獲取指定date(年月日)的月份

DAY(date)???????????? 獲取指定date(年月日)的天數(shù)

DATE_ADD(date , INTERVAL expr type)???? 在指定date(年月日)上增加expr(expr可以是年/月/日,具體是什么類型由type決定)

DATEDIFF(date1 , date2)???? 返回起始時間date1和結束時間date2之間的天數(shù)(date1-date2)

select date_add(now(),interval 20 day );??? #當前日期的20天之后的日期(month為月,year為年)
select name,datediff(curdate(),entrydate) as 'date' from staff1 order by date desc;??? #根據(jù)入職時間(entrydate)推算出入職天數(shù),并按照倒序排序

轉換函數(shù) 進行數(shù)據(jù)類型和值轉換的函數(shù)

CAST(數(shù)據(jù)1 AS 數(shù)據(jù)類型1)????? 將數(shù)據(jù)1轉為數(shù)據(jù)類型1

COALESCE(數(shù)據(jù)1 , 數(shù)據(jù)2 ,…… )

主要由兩個用途:1、將NULL替換為其他的值

2、返回此數(shù)據(jù)列表中第一個非null表達式的值

select cast('001' as signed integer); #將字符串“001”轉換為有符號的整數(shù),顯示結果為1
select coalesce(number,0) from staff1;?? #查詢staff1表的number字段,并將此字段的NULL值替換為0
select coalesce(number,age,0) from staff1; #查詢staff1表的number字段;當numbernull,age不為null時,number返回age的值;當numberage都為null時,返回0;當number為非null時,返回真實值

流程函數(shù)? 進行條件刪選

流程函數(shù)一般在SQL語句中實現(xiàn)條件篩選,從而提高語句的效率

MySQL常用的內置 流程函數(shù)如下

如果value(條件表達式)為true,則返回t,否則返回f

IF(vaule , t , f);? ? ? ? ? ? ? ? ? ? ?

如果value1(可以是某個記錄)不為空,則返回value1,負責返回value2

IFNULL(value1 , value2);? ? ??

如果val1為true,則返回res1;val2為true,返回res2;否則返回default

CASE

? WHEN?[val1 ] THEN [res1]

? WHEN [val2] THEN [res2]

? ?……

? ?ELSE [default]?

END;

如果espr的值等于val1,返回res1;espr的值等于val2,返回res2;否則返回default

CASE [expr]

? WHEN [val1] THEN [res1] ?

? WHEN [val2] THEN[res2]

? ……

? ELSE [default]

END;

select name,(case origo when '重慶' then '新一線城市' else '非一線城市' end) from staff1; #查詢staff1表的name和工作城市字段,如果工作城市為重慶,則顯示為新一線城市,其余為非一線城市

聚合函數(shù) 進行數(shù)據(jù)聚合的函數(shù)

聚合函數(shù)的使用在DQL的分組查詢有介紹

將一列數(shù)據(jù)作為一個整體,進行縱向計算(所有NULL值不參與計算)

count???? 統(tǒng)計數(shù)量(一列有多少個值)

max??????? 最大值(一列的最大值)

min??????? 最小值(一列的最小值)

avg???????? 平均值(一列的平均值)

sum??????? 求和(一列的所有數(shù)值求和)

聚合函數(shù)使用格式

SELECT 聚合函數(shù) (字段列表) AS [別名] FROM 表名 [WHERE條件列表];

select COUNT(*) from emp;?? #統(tǒng)計這個表有多少行(由于Null不參與統(tǒng)計,可能每個列的統(tǒng)計數(shù)值不一致,其中會取最大值作為結果返回)
select max(age) from emp;?? #統(tǒng)計age的最大值
select avg(age) from emp;?? #統(tǒng)計age的平均值

謂詞 一般用于條件判斷

謂詞的使用在DQL的條件查詢有介紹

謂詞,全名為比較謂詞;是一種需要滿足返回值為真值True的函數(shù)

BETWEEN … AND …???? 在某個范圍之內(左閉右閉)

IN(…)?????????????????????????? …為多個信息,in(…)表示只要滿足…中的某個信息就算匹配,為真值

NOT IN(…)?????????????????? …為多個信息,只要不滿足…的所有信息就算匹配,為真值

LIKE 占位符?????????????? 模糊匹配(_表示匹配單個字符、%表示匹配任意字符)(OR的簡便用法)

IS NULL?????????????????????? 表示NULL值

IS NOT NULL?????????????? 表示非NULL值

select * from staff1 where gender is null ;???? #查詢gendernull,并將其對應的所有字段的值都顯示出來
select * from staff1 where gender is not null ; #查詢gender為非null,并將其對應的所有字段的值都顯示出來
select * from staff1 where gender in ('','') ;??#查詢性別為男、或者性別為女的信息,并將其對應的所有字段的值都顯示出來
select * from staff1 where name like '__'? ;??????#查詢名稱為2個字符信息,并將其對應的所有字段的值都顯示出來
select * from staff1 where number between 20000100 and 20000102 #查詢number2000010020000102之間對應的信息,并將其對應的所有字段的值都顯示出來

注意事項

對于IN來說,如果此運算符的兩側有一個為NULL,則返回結果只能是NULL或1;如果找不到匹配項則返回NULL;如果找到匹配項,則返回1;

對于NOT IN來說,如果此運算符的兩側有一個為NULL,則返回結果只能是NULL或0;如果找不到匹配項則返回NULL;如果找到匹配項,則返回0;

select null in (1,3) , null in (1,3,null); #結果為null  null
select 10 in (1,null), 10 in (null,10); #結果為null  1
select 10 in (1,20), 10 in (1,10);????? #結果為0  1

select null not in (1,3) , null not in (1,3,null); #結果為null  null
select 10 not in (1,null), 10 not in (null,10); #結果為null  0
select 10 not in (1,20), 10 not in (1,10);????? #結果為1 和 0

MySQL基礎語法(DDL、DQL、DML、DCL)_靜下心來敲木魚的博客-CSDN博客https://blog.csdn.net/m0_49864110/article/details/131913031?spm=1001.2014.3001.5502文章來源地址http://www.zghlxwxcb.cn/news/detail-605304.html

到了這里,關于MySQL函數(shù)講解(謂詞、CASE)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • MySQL數(shù)據(jù)庫,表的增刪改查詳細講解

    MySQL數(shù)據(jù)庫,表的增刪改查詳細講解

    目錄 1.CRUD 2.增加數(shù)據(jù) 2.1創(chuàng)建數(shù)據(jù) 2.2插入數(shù)據(jù) 2.2.1單行插入 2.2.2多行插入 3.查找數(shù)據(jù) 3.1全列查詢 3.2指定列查詢 3.3查詢字段為表達式 3.3.1表達式不包含字段 3.3.2表達式包含一個字段 3.3.3表達式包含多個字段? 3.4起別名 3.5distinct(去重) 3.6order by(排序) 3.6.1某字段默認排序 3.6.2某字

    2023年04月14日
    瀏覽(25)
  • 記錄Bug:idea連接數(shù)據(jù)庫報錯DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045]

    報錯信息: DBMS: MySQL (no ver.) Case sensitivity: plain=mixed, delimited=exact [28000][1045] Access denied for user \\\'root\\\'@\\\'localhost\\\' (using password: YES). 報錯原因: Mysql數(shù)據(jù)庫用戶的密碼不正確。 解決方法: 修改數(shù)據(jù)庫密碼。

    2024年02月03日
    瀏覽(19)
  • Nodejs使用mysql2操作數(shù)據(jù)庫【完整講解】

    mysql2 是一個基于 Node.js 的 MySQL 客戶端庫,相比于 mysql 庫,它具有以下幾個優(yōu)勢: 性能更好:mysql2 庫在性能方面進行了優(yōu)化,使用了更高效的底層實現(xiàn)。它使用了更快的連接池管理和查詢執(zhí)行機制,可以處理更高的并發(fā)請求,提供更好的性能表現(xiàn)。 支持 Promise 和 async/await:

    2024年02月02日
    瀏覽(32)
  • MySQL數(shù)據(jù)庫:內置函數(shù)

    MySQL數(shù)據(jù)庫:內置函數(shù)

    規(guī)定:日期:年月日? ? ? ?時間:時分秒 函數(shù)名稱 作用描述 current_date() 當前日期 current_time() 當前時間 current_timestamp() 當前時間戳 date(datetime) 返回datetime參數(shù)的日期部分 date_add(date,interval d_value_type) 在date中添加時間或日期。interval后面可以是year、day、minute、second date_sub(da

    2024年02月11日
    瀏覽(24)
  • 【MySQL】MySQL數(shù)據(jù)庫,RDBMS 術語,使用說明和報錯解決的詳細講解

    【MySQL】MySQL數(shù)據(jù)庫,RDBMS 術語,使用說明和報錯解決的詳細講解

    作者簡介: 辭七七,目前大一,正在學習C/C++,Java,Python等 作者主頁: 七七的個人主頁 文章收錄專欄: 七七的閑談 歡迎大家點贊 ?? 收藏 ? 加關注哦!???? MySQL 是最流行的關系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關系數(shù)

    2024年02月11日
    瀏覽(34)
  • 【JaveWeb教程】(17) MySQL數(shù)據(jù)庫開發(fā)之 MySQL簡介、安裝、數(shù)據(jù)類型、SQL通用語法 詳細代碼示例講解

    【JaveWeb教程】(17) MySQL數(shù)據(jù)庫開發(fā)之 MySQL簡介、安裝、數(shù)據(jù)類型、SQL通用語法 詳細代碼示例講解

    在我們講解SpringBootWeb基礎知識(請求響應案例)的時候,我們講到在web開發(fā)中,為了應用程序職責單一,方便維護,我們一般將web應用程序分為三層,即:Controller、Service、Dao 。 之前我們的案例中,是這樣子的請求流程:瀏覽器發(fā)起請求,先請求Controller;Controller接收到請求之

    2024年01月25日
    瀏覽(36)
  • MySQL8.0數(shù)據(jù)庫開窗函數(shù)

    MySQL8.0數(shù)據(jù)庫開窗函數(shù)

    ? ? ? 數(shù)據(jù)庫開窗函數(shù)是一種在SQL中使用的函數(shù),它可以用來對結果集中的數(shù)據(jù)進行分組和排序,以便更好地分析和處理數(shù)據(jù)。開窗函數(shù)與聚合函數(shù)不同,它不會將多行數(shù)據(jù)聚合成一行,而是保留每一行數(shù)據(jù),并對其進行分組和排序。 常見的開窗函數(shù)包括ROW_NUMBER()、RANK()、

    2024年02月08日
    瀏覽(25)
  • MySQL 數(shù)據(jù)庫中 CAST 函數(shù)如何使用?

    ????? CAST 函數(shù)是 SQL 中的一種類型轉換函數(shù),它用于將一個數(shù)據(jù)類型轉換為另一個數(shù)據(jù)類型。 2.1? 將字符串轉換為數(shù)字類型 ?2.2? 將數(shù)字類型轉換為字符串類型 2.3? 將日期時間類型轉換為字符串類型 2.4? 將布爾類型轉換為整型 2.5 將Interger 類型轉換成 FLOAT 類型

    2024年02月15日
    瀏覽(39)
  • 實例講解C++連接各種數(shù)據(jù)庫,包含SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 數(shù)據(jù)庫

    ? C++ 是一種通用的編程語言,可以使用不同的庫和驅動程序來連接各種數(shù)據(jù)庫。以下是一些示例代碼,演示如何使用 C++ 連接 SQL Server、MySQL、Oracle、ACCESS、SQLite 和 PostgreSQL、MongoDB 數(shù)據(jù)庫。 連接 SQL Server 數(shù)據(jù)庫 要使用 C++ 連接 SQL Server 數(shù)據(jù)庫,可以使用 Microsoft 的 ADODB 庫。以

    2024年02月05日
    瀏覽(35)
  • MySQL數(shù)據(jù)庫基礎:JSON函數(shù)各類操作一文詳解

    MySQL數(shù)據(jù)庫基礎:JSON函數(shù)各類操作一文詳解

    很多日常業(yè)務場景都會用到json文件作為數(shù)據(jù)存儲起來,而mysql5.7以上就提供了存儲json的支撐。往常存儲json一般都保留在pg庫或者是hive庫里面,現(xiàn)在mysql有了支持的話基本業(yè)務都可以用mysql來實現(xiàn)?,F(xiàn)在mysql8.x版本對json字符出處理已經做的非常完善了?,F(xiàn)在就讓我們來詳細了解

    2024年02月04日
    瀏覽(94)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包