一、常見函式之單行函式
阿新 • • 發佈:2021-08-20
介紹
概念:
類似於java(python)的方法,將一組邏輯語句封裝在方法體中,對外暴露方法名好處:
- 隱藏了實細節;
- 提高程式碼的重用性
語法:
select 函式名(實參列表) 【from 表】;
呼叫關注:
- 叫什麼(函式名);
- 幹什麼(函式功能)
分類:
1.單行函式:如concat、length、ifnull等。 2.分組函式:做統計使用,又被稱為統計函式、聚合函式、組函式字元函式
length:查詢字元位元組串長度,utf-8中漢字為3個位元組串,gbk中漢字為2個位元組串
SELECT LENGTH('join'); SELECT LENGTH('張三丰taijiquan');
concat:拼接字串
SELECT CONCAT(last_name,' ',first_name) FROM employees;
substr【substring】:擷取指定索引,下標從1開始
-- substr(string, start, length) -- 擷取從指定索引處後面所有的字元 SELECT SUBSTR('李莫愁愛上了陸展元',7) out_put; -- 擷取從指定索引處指定字元長度的字元 SELECT SUBSTR('李莫愁愛上了陸展元',1,3) out_put; -- 案例:姓名中首字母大寫,其他字元小寫然後後用_拼接;SELECT CONCAT(UPPER(SUBSTR(last_name,1,1)),'_',LOWER(SUBSTR(last_name,2))) AS out_put FROM employees;
instr:返回子串第一次出現的索引,如果找不到返回0
SELECT INSTR('下次是哪次','哪次') AS out_put; SELECT INSTR('下次是哪次','shi哪次') AS out_put;
trim:函式可以移除字串的首尾資訊。最常見的用法為移除字元首尾空格。
SELECT TRIM(' 改天是哪天 ') AS out_put;-- 移除指定的首尾字元,備註:前面的‘aa’是一個字元,如果後面是'aaaaa改天是哪天aaaaa',擷取後'a改天是哪天a' SELECT TRIM('a' FROM 'aaaa改天是哪天aaaa') AS out_put;
upper:轉換成大寫
SELECT UPPER(last_name) FROM employees;
lower:轉換成小寫
SELECT LOWER(last_name) FROM employees; -- 案例:姓大寫,名小寫 SELECT CONCAT(UPPER(last_name),LOWER(first_name)) as 姓名 FROM employees;
lpad:用指定的字串實現左填充指定長度,如字元沒有指定長度,則會進行擷取顯示
SELECT LPAD('以後是多後',10,'*'); SELECT LPAD('以後是多後',2,'*');
rpad:用指定的字串實現右填充指定長度,如字元沒有指定長度,則會進行擷取顯示
SELECT RPAD('以後是多後',10,'*'); SELECT RPAD('以後是多後',2,'*');
replace:替換,有多個則替換多個
SELECT REPLACE('time will tell','time','替換') AS out_put;
distinct:去重函式
SELECT DISTINCT commission_pct from employees
ifnull:如果引數為null,則輸出指定值,sql為isnull
SELECT IFNULL(commission_pct,1) FROM employees
數學函式
round:四捨五入,預設保留一位小數
SELECT ROUND(1.55); -- 保留兩位小數 SELECT ROUND(1.567,2);
ceil:向上取整,返回>=該引數的最小整數
SELECT CEIL(1.02); SELECT CEIL(1.0); SELECT CEIL(-1.02);
floor:向下取整,返回<=改引數的最大整數
SELECT FLOOR(1.02); SELECT FLOOR(1.0); SELECT FLOOR(-1.02);
truncate:截斷
SELECT TRUNCATE(10.999999,1);
mod:
/* mod(a,b):a-a/b*b mod(-10,-3): -10 - (-10)/(-3)*(-3) = -1 */ SELECT MOD(10,-3); SELECT 10%-3;
rand:獲取隨機數,返回0~1之間的小數
select truncate(rand(),1)