mysql 基礎函數

常見函數


  • 概念: 類似與c++的函數,將一組邏輯語句封裝在函數體中,對外暴露函數名

  • 好處:

    1. 隱藏了實現細節
    2. 提高代碼的重用性
  • 調用: select 函數名(實參列表) 【from 表】;

  • 特點:

    1. 叫啥
    2. 幹啥
  • 分類:

    1. 單行函數 如 concat

      字符函數

    2. 分組函數

1 單行函數

1.1 字符函數

 # length
 select length('john');
 /* 4*/
 --
 # concat
 --連接
 select concat(last_name, ' '. first_name) 姓名
 from emp;
 
 -- upper、lower 小寫,大寫
 -- substr,  substring
 -- 索引從1開始
 select substr('你好不是我', 3) out_put;
 -- 從第三個字符開始截取
 select substr('你好不是我', 1, 3) out_put;
 -- 從第1個字符開始截取3個長度
 
 -- 姓名中首字符大寫、其他小寫
 select concat(upper(substr('last_name', 1, 1)), '_', lower(substr('last_name', 2)));
 
 # instr 返回第一次出現的起始索引,如果沒有0
 
 SELECT instr('你是豬嗎,', '你是') as out_put;
 # TRIM 去掉前後沒用的值
 SELECT length(TRIM('    是你   ')) as out_put;
 SELECT trim ('a' from 'aaaaaaaaaaaaaaa你好aaaaaaaaaa大蘇打aaaaaaaaaaaaaa') as put;
 
 # 7 lpad 用指定的字符實現左填充使總長度爲你指定的
 SELECT lpad('你是傻子', '10', 'ab');
 # 8 rpad 右填充
 
 # REPLACE 替換
 # 你是替換成我是
 SELECT replace('你是你是你是你是你是很厲害的', '你是', '我是') as put;


1.2 數字函數

 # round 四捨五入
 SELECT ROUND(-1.55); # -2
 SELECT ROUND(1.55); # 2
 
 # ceil 向上取整 返回大於等於他的
 
 SELECT ceil(-1.02); -1
 # floor 向下取整
 SELECT FLOOR(-9.99);
 
 # truncate 截斷
 SELECT TRUNCATE(12.69999, 1); #取幾位小數
 
 #mod 取餘
 SELECT mod(10, -3);
 SELECT 10%3;
 

1.3日期函數

# now 返回日期和時間
SELECT now();

# curdate 返回當前日期
SELECT curdate();

#curtime 返回當前時間

SELECT curtime();

# 可以指定獲取部分,年月日小時分鐘秒

SELECT year(Now());
SELECT year('1998-1-1');
SELECT MONTH(NOW());

SELECT MONTHNAME(NOW());

# 獲取 字符轉日期
SELECT str_to_date('9-12-1999', '%m-%d-%Y'); 月日年
SELECT * FROM orders; 
SELECT * from orders 
where order_date = str_to_date('10-3-2005', '%c-%d-%Y');

# 日期轉字符
SELECT date_format(now(), '%y-%m-%d') as out_put;

# 其他

SELECT version();
SELECT DATABASE();

1.4 流程函數

# if 
SELECT if(10 < 5, '大', '小');

# case 函數的使用一: switch case

case 要判斷的字段或表達式
when 常量1 then 要顯示的值1或語句1;
when 常量2 then 要顯示的值2或語句2;
else 要顯示的值
end

SELECT salary 原始工資, department,
CASE department
when 30 then salary*1.1
when 40 then salary*1.2
else salary
end as 新工資
from emp;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章