1. 程式人生 > >DML語句(四) -- 常見函數

DML語句(四) -- 常見函數

use rand rdate bsp pla 字符串轉換 trunc 分類 hour

一、概述

  功能:類似一 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語句(四) -- 常見函數