DML語句(四) -- 常見函數
一、概述
功能:類似一 java 中的方法
好處:提高重用性和隱藏實現細節
調用:select 函數名(實參列表);
二、單行函數
1、字符函數
concat:連接
substr:截取子串
upper:變大寫
lower:變小寫
replace:替換
length:獲取字節長度
trim:去除前後空格
lpad:左填充
rlad:右填充
instr:獲取字串第一次出現的位置
2、數學函數
ceil:向上取整
round:四舍五入
mod:取模
floor:向下取整
truncate:截斷
rand:獲取隨機數,返回0-1之間的小數
3、日期函數
now:返回當前日期 + 時間
curdate:返回當前日期
curtime:返回當前時間
year:返回當前日期的年
month:月
monthname:以英文形式返回月
day:日
hour:小時
minute:分鐘
second:秒
str_to_data:將字符串轉換成指定的日期格式
date_format:將日期格式化成字符
datediff返回兩個日期相差的天數
4、其他函數(系統函數)
version:當前數據庫服務器的版本
database:當前打開的數據庫
user:當前用戶
password(‘字符‘):返回該字符的密碼形式
MD5(‘字符‘)
5、流程控制函數
①if (條件表達式, 表達式1, 表達式2):如果條件表達式成立,返回表達式1,否則返回表達式2
②case
情況一:
case 變量或表達式或字段
when 常量1 then 值1
when 常量2 then 值2
...
else 值n
end
情況一:
case
when 條件1 then 值1
when 條件2 then 值2
...
else 值n
end
三、分組函數
1、分類
max:最大值
min:最小值
sum:和
avg:平均值
count:計算個數
2、特點
①語法
select max(字段) from 表名;
②支持的類型
sun 和 avg 一般用於處理數值型
max、min、count 可以處理任何數據類型
③以上分組函數都忽略 null
④都可以搭配 distinct 使用
⑤count 函數
count(字段):統計該字段非空值的個數
count(*):統計結果集的行數
count(1):統計結果集的行數
效率上:
MyISAM 存儲引擎,count(*)效率最高
InnoDB存儲引擎,
count(*)和count(1)效率高於count(字段)
⑥和分組函數一同查詢的字段你,要求是 group by 後出現的字段
只有 group by 後出現的字段才能和分組函數實現一一對應的關系,結果集才是一個比較規則的結果
DML語句(四) -- 常見函數