
SQL 有很多可用于計數和計算的内建函數。常用的函數有聚合函數、日期和時間函數、轉換函數、視窗函數、字元串函數等。
1,
聚合函數執行的操作是将多個從列中取得的值,計算傳回一個單一的值。常與group by 組合使用
- AVG() - 傳回平均值
- COUNT() - 傳回所有非空值的個數
- FIRST() - 傳回第一個記錄的值
- LAST() - 傳回最後一個記錄的值
- MAX() - 傳回最大值
- MIN() - 傳回最小值
- SUM() - 傳回總和
- ADDDATE()增加日期
- ADDTIME()增加時間
- CONVERT_TZ()将目前時區更改為另一時區
- CURDATE()傳回目前日期
- CURRENT_DATE(), CURRENT_DATECURDATE() 的别名
- CURRENT_TIME(), CURRENT_TIMECURTIME() 的别名
- CURRENT_TIMESTAMP(), CURRENT_TIMESTAMPNOW() 的别名
- CURTIME()傳回目前時間
- DATE_ADD()将兩個日期相加
- DATE_FORMAT()按照指定格式格式化日期
- DATE_SUB()将兩個日期相減
- DATE()從 date 或者 datetime 表達式中提取出日期部分
- DATEDIFF()将兩個日期相減
- DAY()DAYOFMONTH() 的别名
- DAYNAME()傳回某天在用星期中的名稱
- DAYOFMONTH()傳回某天是當月的第幾天 (1-31)
- DAYOFWEEK()傳回某天是該星期的第幾天
- DAYOFYEAR()傳回某天是一年中的第幾天(1-366)
- EXTRACT提取日期中的某一部分
- FROM_DAYS()将天數轉換為日期
- FROM_UNIXTIME()将某個日期格式化為 UNIX 時間戳
- HOUR()提取小時
- LAST_DAY傳回參數日期所在月份的最後一天
- LOCALTIME(), LOCALTIMENOW() 的别名
- LOCALTIMESTAMP, LOCALTIMESTAMP()NOW() 的别名
- MAKEDATE()利用年份和某天在該年所處的天數來建立日期
- MAKETIMEMAKETIME()
- MICROSECOND()由參數傳回微秒
- MINUTE()由參數傳回分鐘
- MONTH()傳回日期參數的月份
- MONTHNAME()傳回月份的名字
- NOW()傳回目前日期和時間
- PERIOD_ADD()向年月格式的日期資料之間添加一段時間
- PERIOD_DIFF()傳回兩個年月格式的日期資料之間的月份數
- QUARTER()傳回日期參數所在的季度
- SEC_TO_TIME()将秒數轉換為 'HH:MM:SS' 格式
- SECOND()傳回參數中的秒數 (0-59)
- STR_TO_DATE()将字元串轉換為日期資料
- SUBDATE()以三個參數調用的時候是 DATE_SUB() 的同義詞
- SUBTIME()減去時間
- SYSDATE()傳回函數執行的時的時刻
- TIME_FORMAT()格式化時間
- TIME_TO_SEC()将時間參數轉換為秒數
- TIME()傳回參數表達式中的時間部分
- TIMEDIFF()将兩個時間相減
- TIMESTAMP()隻有一個參數時,該函數傳回 date 或者 datetime 表達式。當有兩個參數時,将兩個參數相加。
- TIMESTAMPADD()在 datetime 表達式上加上一段時間
- TIMESTAMPDIFF()在 datetime 表達式上減去一段時間
- TO_DAYS()将日期參數轉換為天數
- UNIX_TIMESTAMP()傳回 UNIX 時間戳
- UTC_DATE()傳回目前 UTC 日期
- UTC_TIME()傳回目前 UTC 時間
- UTC_TIMESTAMP()傳回目前 UTC 日期和時間
- WEEK()傳回參數的星期數
- WEEKDAY()傳回日期參數時一個星期中的第幾天
- WEEKOFYEAR()傳回日期參數是月曆上的第幾周 (1-53)
- YEAR()傳回日期參數中的年份
- YEARWEEK()傳回年份和星期
- CAST()---資料類型轉換,CAST (expression AS data_type),如CAST('12'ASint)
- CONVERT()---資料類型轉換
- rank () over (partition by A order by B):計算排序時,如果存在相同位次的記錄,則會跳過之後的位次。
- dense_rank () over (partition by A order by B):計算排序,即使存在相同位次的記錄,也不會跳過之後的位次
- row_number () over (partition by A order by B):賦予唯一的連續位次。
- ASCII()傳回最左邊字元的數值
- BIN()傳回參數的字元串表示形式
- BIT_LENGTH()傳回參數的長度(以位為機關)
- CHAR_LENGTH()傳回參數中的字元數
- CHAR()傳回每個傳遞的整數的字元
- CHARACTER_LENGTH()和CHAR_LENGTH()相同,傳回參數中的字元數
- CONCAT_WS()傳回與separator分隔
- CONCAT()傳回連接配接的字元串
- CONV()在不同數字之間轉換數字
- ELT()傳回索引号處的字元串
- EXPORT_SET()傳回一個字元串,使得對于值位中設定的每個位,您将獲得一個on字元串,并且對于每個unset位,您将得到一個off字元串
- FIELD()傳回後續參數中第一個參數的索引(位置)
- FIND_IN_SET()傳回第二個參數中第一個參數的索引位置
- FORMAT()傳回格式為指定小數位數的數字
- HEX()傳回十六進制值的字元串表示形式
- INSERT()在指定位置插入一個子字元串,直到指定的字元數
- INSTR()傳回第一次出現子字元串的索引
- LCASE()同LOWER()
- LEFT()傳回指定的最左邊的字元數
- LENGTH()傳回字元串的長度(以位元組為機關)
- LOAD_FILE()加載命名檔案
- LOCATE()傳回第一次出現子字元串的位置
- LOWER()以小寫傳回參數
- LPAD()傳回字元串參數,用指定的字元串向左填充
- LTRIM()删除前導空格
- MAKE_SET()傳回一組逗号分隔的字元串,它們具有設定的位中的相應位
- MID()傳回從指定位置開始的子字元串
- OCT()傳回八進制參數的字元串表示形式
- OCTET_LENGTH()同LENGTH(),傳回字元串的長度(以位元組為機關)
- ORD()如果參數的最左邊的字元是多位元組字元,則傳回該字元的代碼
- POSITION()同LOCATE(),傳回第一次出現子字元串的位置
- QUOTE()轉義要在SQL語句中使用的參數
- REGEXP使用正規表達式的模式比對
- REPEAT()重複字元串指定的次數
- REPLACE()替換指定字元串的出現
- REVERSE()反轉字元串中的字元
- RIGHT()傳回指定的最右邊字元數
- RPAD()追加字元串指定的次數
- RTRIM()删除尾随空格
- SOUNDEX()傳回由四個字元組成的代碼 (SOUNDEX) 以評估兩個字元串的相似性
- SOUNDS LIKE同SOUNDEX()
- SPACE()傳回指定數目個空格的字元串
- STRCMP()比較兩個字元串
- SUBSTRING_INDEX()傳回在分隔符的指定出現次數之前的字元串中的子字元串
- SUBSTRING(), SUBSTR()傳回指定的子字元串
- SUBSTRING()---字元串截取,left(被截取字段,截取長度),right(被截取字段,截取長度),substring(被截取字段,從第幾位開始截取),substring(被截取字段,從第幾位開始截取,截取長度),substring_index(被截取字段,關鍵字,關鍵字出現的次數),substr(string string,num start,num length)
- TRIM()删除前導和尾随空格
- UCASE()同UPPER
- UNHEX()将每對十六進制數字轉換為一個字元
- UPPER()轉換為大寫