MySql複習二.2 DQL語言 排序查詢 ,常見函數

排序查詢

一、語法

select 查詢列表

from 表

where 篩選條件

order by 排序列表 【asc}desc】

 

二、特點

1、asc :升序,如果不寫默認升序

   desc:降序

 

2、排序列表 支持 單個字段、多個字段、函數、表達式、別名

 

3、order by的位置一般放在查詢語句的最後(除limit語句之外)

 

常見函數

一、概述

功能:類似於java中的方法

好處:提高重用性和隱藏實現細節

調用:select 函數名(實參列表);

二、單行函數

1、字符函數

concat:連接

substr:截取子串

upper:變大寫

lower:變小寫

replace:替換

length:獲取字節長度

trim:去前後空格

lpad:左填充

rpad:右填充

instr:獲取子串第一次出現的索引

2、數學函數

ceil:向上取整

round:四捨五入

mod:取模

floor:向下取整

truncate:截斷

rand:獲取隨機數,返回0-1之間的小數

 

3、日期函數

 

now:返回當前日期+時間

year:返回年

month:返回月

day:返回日

date_format:將日期轉換成字符

curdate:返回當前日期

str_to_date:將字符轉換成日期

curtime:返回當前時間

hour:小時

minute:分鐘

second:秒

datediff:返回兩個日期相差的天數

monthname:以英文形式返回月

 

 

4、其他函數

version 當前數據庫服務器的版本

database 當前打開的數據庫

user當前用戶

password('字符'):返回該字符的密碼形式

md5('字符'):返回該字符的md5加密形式

 

 

 

5、流程控制函數

 

①if(條件表達式,表達式1,表達式2):如果條件表達式成立,返回表達式1,否則返回表達式2

②case情況1

case 變量或表達式或字段

when 常量1 then 值1

when 常量2 then 值2

...

else 值n

end

 

③case情況2

case

when 條件1 then 值1

when 條件2 then 值2

...

else 值n

end

 

三、分組函數

1、分類

max 最大值

min 最小值

sum 和

avg 平均值

count 計算個數

 

2、特點

 

①語法

select max(字段) from 表名;

 

②支持的類型

sum和avg一般用於處理數值型

max、min、count可以處理任何數據類型

 

③以上分組函數都忽略null

④都可以搭配distinct使用,實現去重的統計

select sum(distinct 字段) from 表;

⑤count函數

count(字段):統計該字段非空值的個數

count(*):統計結果集的行數

案例:查詢每個部門的員工個數

1 xx    10

2 dd    20

3 mm    20

4 aa    40

5 hh    40

 

count(1):統計結果集的行數

 

效率上:

MyISAM存儲引擎,count(*)最高

InnoDB存儲引擎,count(*)和count(1)效率>count(字段)

 

⑥ 和分組函數一同查詢的字段,要求是group by後出現的字段

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章