最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MYSQL函數(shù)的使用梳理

 更新時(shí)間:2022年05月05日 09:35:58   作者:TimeFriends  
本篇文章講解是是MySQL的函數(shù)方法,涵蓋所有的MySQL常見的方法,MySQL函數(shù),是一種控制流程函數(shù),屬于數(shù)據(jù)庫用語言,以下列出了這些函數(shù)的說明

MYSQL函數(shù)

1:聚合函數(shù)

聚合函數(shù)主要由:count,sum,min,max,avg,group_count()

重點(diǎn)說一下group_count()函數(shù),首先根據(jù)group by指定的列進(jìn)行分組,并且用分隔符分隔,將同一個(gè)分組中的值連接起來,返回一個(gè)字符串結(jié)果. 

格式 : group_count([distinct]字段名 [order by 排序字段 asc/desc] [separator '分隔符'])

說明:

      1:使用distinct可以排除重復(fù)值.
      2:如果需要對(duì)結(jié)果值進(jìn)行排序,可以使用order by 子句.
      3:separator是一個(gè)字符串值,默認(rèn)為逗號(hào).

2:數(shù)學(xué)函數(shù)

1:ABS(x) 返回x的絕對(duì)值
2:CEIL(x)返回大于等于x的最小整數(shù)(向上取整)
3:FLOOR(x) 返回小于等于x的最大整數(shù)(向下取整)
4:GREATEST(expr1,expr2...)返回列表中的最大值
5:LEAST(expr1,expr2.....)返回列表的最小值
6:MAX(x) 返回字段x的最大值
7:MIN(x) 返回字段x的最小值
8:MOD(x,y) 返回x除以y以后的余數(shù)
9:PI()返回圓周率(3.141593)
10:POW(x,y) 返回x的y次方
11:RAND() 返回0到1的隨機(jī)數(shù)
12:ROUND(x) 返回離x最近的整數(shù)(遵循四舍五入)
13:ROUND(x,y) 返回指定位數(shù)的小數(shù)(遵循四舍五入)
14:TRUNCATE(x,y) 返回?cái)?shù)值x保留到小數(shù)點(diǎn)后y位的值,(與ROUND最大的去區(qū)別是不會(huì)進(jìn)行四舍五入)

2:字符串函數(shù)

1:char_length(s) 返回字符串s的字符數(shù)
2:character_length 返回字符串s的字符數(shù)
3:concat(s1,s2,s3) 字符串s1,s2等多個(gè)字符串合并為一個(gè)字符串
4:concat_ws(x,s1,s2..) 同concat(s1,s2,s3)函數(shù),但是每個(gè)字符串之間要加上x,x可以是分隔符
5:field(s,s1,s2) 返回第一個(gè)字符串s在字符串列表(s1,s2..)中的位置
6:length() 返回的是字節(jié)數(shù) mysql中utf-8的編碼 一個(gè)中文漢字是三個(gè)字節(jié)
7:ltrim(s) 去掉字符串s開始處的空格 去除左邊的空格  rtrim()去除右邊的空格 trim()去除兩邊的空格
8:mid(s,n,len) 從字符串s的n位置截取長度為len的子字符串同substring(s,n,len)
9:position(s1,in,s) 從字符串s中獲取s1的開始位置
10:replcae(s,s1,s2) 將字符串s2替代字符串s中的字符串s1
11:reverse(s) 將字符串s的順序反過來
12:right(s,n)返回字符串s的后n個(gè)字符(從右取n個(gè)字符)
13:strcmp(s1,s2) 比較字符串s1和s2,如果s1與s2相等返回0,如果s1>s2返回1 如果s1小于s2返回-1
14:substr(s,start,length) 從字符串s的start位置截取長度為length的子字符串
15:ucase(s) upper(s)將字符串轉(zhuǎn)換為大寫
16:lcase(s) lower(s) 將字符串轉(zhuǎn)換為小寫

3:日期函數(shù)

1:unix_timestamp() 返回1970-01-01 00:00:00 到當(dāng)前毫秒值
2:unix_timestamp(date_string) 將指定日期轉(zhuǎn)換為毫秒值時(shí)間戳
3:from_unixtime(bigint unixtime,string-format) 將毫秒值時(shí)間戳轉(zhuǎn)為指定格式日期
4:curdate() 返回當(dāng)前日期
5:current_date() 返回當(dāng)前日期
6:current_timestamp() 返回當(dāng)前日期和時(shí)間
7:datediff(d1,d2) 計(jì)算日期d1>d2之間間隔的天數(shù)  eg:datediff('2022-01-01','2022-02-01')
8:currtime() 返回當(dāng)前時(shí)間 
9:date_format(d,f) 按照表達(dá)式f的要求顯示日期d

4:控制流函數(shù)

1:if(expr,v1,v2) 如果表達(dá)式expr成立,返回結(jié)果v1,否則返回結(jié)果v2
2:ifnull(v1,v2) 如果v1的值為null則返回v1,否則返回v2 
3:isnull(expression) 判斷表達(dá)式是否為null 
4:nullif(expr1,expr2)  比較兩個(gè)字符串 如果字符串expr1和expr2相等 返回null 否則返回expr1
5:case expression when condition1 then result1  when condition2 then result2 else result end 表示case函數(shù)開始,end表示函數(shù)結(jié)束,如果condition1成立則返回result1,如果condition2成立則返回result2,當(dāng)全部不成立則返回result,而當(dāng)有一個(gè)成立之后,后面的就不執(zhí)行了.

5:窗口函數(shù)

mysql8.0新增的窗口函數(shù)又稱為開窗函數(shù),非聚合窗口函數(shù)是相對(duì)于聚合函數(shù)來說,聚合函數(shù)是對(duì)一組數(shù)據(jù)計(jì)算后返回單個(gè)值(即分組),非聚合函數(shù)一次只會(huì)處理一行數(shù)據(jù),窗口聚合函數(shù)在行記錄上計(jì)算某個(gè)字段的結(jié)果時(shí),可將窗口范圍內(nèi)的數(shù)據(jù)輸入到聚合函數(shù)中,并不改變行數(shù)

5.1 序號(hào)函數(shù)

可以實(shí)現(xiàn)分組排序,并添加序號(hào)

1: row_number()
2: rank()
3: dense_rank() 

寫法:select id,...,dense_rank() over(partition by dname order by salary desc) as rn from employee;

注意: 不加 partition by 表示全局排序

5.2 分布函數(shù)

1: percent_rank()
  用途:每行按照公式(rank-1)/(row-1)進(jìn)行計(jì)算.其中rank為rank()函數(shù)產(chǎn)生的序號(hào),row為當(dāng)前窗口的記錄總行數(shù)
2: cume_dist()
  用途:分組內(nèi)小于,等于當(dāng)前rank值的行數(shù)/分組內(nèi)總行數(shù)
  應(yīng)用場景:查詢小于等于當(dāng)前薪資的比例

寫法:select dname,ename,salary,cume_dist() over(order by salary) as rn1,
cume_dist() over(partition by dname order by salary) as rn2 from employe;

5.3 前后函數(shù)

1: lag(expr,n)
2: lead(expr,n)

用途:返回位于當(dāng)前行的前n行(lag(exor,n))或后n行(lead(expr,n))的expr的值

應(yīng)用場景:查詢前1名同學(xué)的成績和當(dāng)前同學(xué)成績的差值 (當(dāng)前行內(nèi)可以有個(gè)上一行數(shù)據(jù)的某一字段值)

5.4 頭尾函數(shù)

1: first_value(expr)
2: last_value(expr)

用途:返回第一個(gè)(first_value(expr))或者最后一個(gè)(last_value(expr)) expr的值
應(yīng)用場景:截止到當(dāng)前,按照日期排序查詢第1個(gè)入職和最后一個(gè)入職員工的薪資

5.5 其他函數(shù)

1: nth_value(expr,n)
2: ntile(n)

用途:返回窗口中第n個(gè)expr的值,expr可以是表達(dá)式,也可以是列名
應(yīng)用場景:截止到當(dāng)前薪資,顯示每個(gè)員工的薪資中排名第二或者第三的薪資

5.6 開窗聚合函數(shù)

1: sum()
2: avg()
3: min()
4: max()

寫法:select id,...,sum(salary) over(partition by dname order by hiredate desc) as rn from employee;

每一行rn的數(shù)據(jù)是當(dāng)期行和之前每一行的salary之和
如果沒有order by排序語句,默認(rèn)把分組內(nèi)的所有數(shù)據(jù)進(jìn)行sum操作

到此這篇關(guān)于MYSQL函數(shù)的使用梳理的文章就介紹到這了,更多相關(guān)MYSQL函數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 編碼機(jī)制

    MySQL 編碼機(jī)制

    一般在MYSQL使用中文查詢 都是用 set NAMES character
    2008-12-12
  • MySQL8.x登陸root用戶突然提示mysql_native_password的實(shí)現(xiàn)

    MySQL8.x登陸root用戶突然提示mysql_native_password的實(shí)現(xiàn)

    本文主要介紹了MySQL 8.x登陸root用戶突然提示mysql_native_password,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-08-08
  • MySQL深入淺出精講觸發(fā)器用法

    MySQL深入淺出精講觸發(fā)器用法

    觸發(fā)器是SQLserver提供給程序員和數(shù)據(jù)分析員來保證數(shù)據(jù)完整性的一種方法,它是與表事件相關(guān)的特殊的存儲(chǔ)過程,事件是在 MySQL 5.1后引入的,有點(diǎn)類似操作系統(tǒng)的計(jì)劃任務(wù),但是周期性任務(wù)是內(nèi)置在MySQL服務(wù)端執(zhí)行的
    2022-08-08
  • MySQL數(shù)據(jù)庫表內(nèi)容的增刪查改操作實(shí)例詳解

    MySQL數(shù)據(jù)庫表內(nèi)容的增刪查改操作實(shí)例詳解

    對(duì)于刪除操作來說,是將表單個(gè)或者多個(gè)數(shù)據(jù)進(jìn)行刪除,而截?cái)鄤t是對(duì)整個(gè)表進(jìn)行操作,會(huì)將整個(gè)表數(shù)據(jù)都清除,本文給大家介紹MySQL數(shù)據(jù)庫表內(nèi)容的增刪查改操作大全,感興趣的朋友一起看看吧
    2025-04-04
  • MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)

    MySQL使用正則表達(dá)式進(jìn)行查詢操作經(jīng)典實(shí)例總結(jié)

    這篇文章主要介紹了MySQL使用正則表達(dá)式進(jìn)行查詢操作,結(jié)合實(shí)例形式總結(jié)分析了各種常見匹配模式的查詢操作實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • vue?axios二次封裝的詳細(xì)解析

    vue?axios二次封裝的詳細(xì)解析

    這篇文章主要介紹了vue?axios二次封裝的詳細(xì)解析,文章圍繞主題展開詳細(xì)的內(nèi)容戒殺,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL數(shù)據(jù)庫的shell腳本自動(dòng)備份

    MySQL數(shù)據(jù)庫的shell腳本自動(dòng)備份

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的shell腳本自動(dòng)備份的相關(guān)資料,網(wǎng)站或應(yīng)用的后臺(tái)都有備份數(shù)據(jù)庫的功能按鈕,但需要去手工執(zhí)行。我們需要一種安全的,每天自動(dòng)備份的方法需要的朋友可以參考下
    2017-03-03
  • 詳解如何利用Xtrabackup進(jìn)行mysql增量備份

    詳解如何利用Xtrabackup進(jìn)行mysql增量備份

    這篇文章主要為大家介紹了如何利用Xtrabackup進(jìn)行mysql增量備份詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • MySQL更新,刪除操作分享

    MySQL更新,刪除操作分享

    這篇文章主要介紹了MySQL更新,刪除操作分享,文章根據(jù)MySQL的更新刪除命令的相關(guān)資料展開詳細(xì)的介紹,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2022-03-03
  • CentOS 安裝redis和MySQL

    CentOS 安裝redis和MySQL

    這篇文章主要介紹了CentOS 安裝redis和MySQL的相關(guān)資料,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

丰原市| 宾川县| 阿瓦提县| 绩溪县| 玉树县| 黎川县| 正宁县| 晋州市| 古交市| 巴林左旗| 德安县| 利津县| 宁陵县| 秭归县| 仲巴县| 泸西县| 青川县| 江川县| 麻江县| 江门市| 惠安县| 石台县| 宁德市| 铁岭市| 陵水| 府谷县| 当雄县| 铜梁县| 焦作市| 诏安县| 伊宁市| 电白县| 襄垣县| 麟游县| 平远县| 明溪县| 乌审旗| 桑日县| 五河县| 库尔勒市| 兰考县|