一.概述
功能:相似於java中的方法
好處:提升重用性和隱藏實現細節
調用:select函數名(實參列表);
二.單行函數
1.字符函數
count:鏈接
substr:截取子串
upper:變大寫
lower:變小寫
replace:替換
length:獲取字節長度
trin:去先後空格
lpad:左填充
rpad:右填充
instr:獲取子串第一次出現的索引
2.數學函數
ceil:向上取整
rount:四捨五入
mod:取模
floor:向下取整
truncate:截斷
rand:獲取隨機數,返回0-1的小數
3.日期函數
now:返回當前日期+時間
year:返回年
month:返回月
day:反回日
date_format:將日期轉換爲字符
curdate:返回當前日期
str_to_date:字符裝換成日期
curtime:返回當前時間
hour:小時
ninute:分鐘
second:秒
datediff:返回兩個日期相差的天數
monthname:以英文形式返回月
4.其餘函數
version:當前數據庫服務器的版本
database:當前打開的數據庫
user:當前用戶
password:('字符'):返回該字符的密碼形式(自動加密)
md5('字符'):返回該字符的MD5加密形式
5.流控制函數
1)if(條件表達式,表達式1,表達式2):若是表達式成立返回表達式1,不然返回表式2
2)case狀況1
case 表達式或字段或字段
when 常量1 then 值1
when 常量2 then 值2
...
else 值 n
end
2)case狀況2
case 表達式或字段或字段
when 條件1 then 值1
when 條件2 then 值2
...
else 值 n
end
三.分組函數
1.分類
max:最大值
min:最小值
sum:和
avg:平均值
count:計數
2.特色
1)語法
select max(字段) from 表名;
2)支持的類型
sum和avg通常用於處理數值型
max,min,count能夠處理任何數據類型
3)以上分組函數都忽略null
4)均可以搭配distinct使用,實現去重的統計
select max(distinct 字段) from 表;
5)count函數
count(字段):統計該字段非空值的個數
count(*):統計結果集的行數
count(1):統計結果集的行數java
效率上:
MyISM儲存引擎,count(*)最高
InnoDB儲存引擎,count(1)和coun(1)效率>count(字段)
6)和分組函數一同查詢的字段,要求是group by後出現的字段數據庫