1.SQL也可以用函數來處理數據,函數一般是在數據上執行的,為數據的轉換和處理提供了方便。但是每一個數據庫管理系統(DBMS)都有特定的函數,事實上,只有少數幾個函數被所有的DBMS等同地支持。例如,
MYSQL中用SUBSTRING()函數提取字符串的組成部分,Access用MID()
MYSQL中用CONVERT()函數進行數據類型轉換,DB2使用CAST()
MYSQL使用CURDATE()函數獲取當前日期,SQLite使用DATE()
結論:SQL語句不是可移植的
2.SQL使用函數
- 文本處理函數:上一篇筆記中介紹了一個RTRIM()函數來去除列值右邊的空格;
SELECT prod_name FROM Products;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
-
SELECT UPPER(prod_name) FROM Products;
從上面的結果可以知道,函數UPPER()將文本轉換為大寫
其他文本處理函數舉例:UPPER 將字符串轉換為大寫 LEFT 返回字符串左邊的字符 LENGTH 返回字符串長度 LOWER 將字符串轉換為小寫 LTRIM 去掉字符串左邊的空格 RTRIM 去掉字符串右邊的空格 RIGHT 返回字符串右邊的字符 SOUNDEX 返回字符串的SOUNDEX值 注意:LEFT,RIGHT函數需要加上參數數字,表示左邊幾個,右邊幾個。例如LEFT(‘haha’,3)表示返回字符串左邊三個字符‘hah’
SOUNDEX是一個將任何文本轉換為描述其語音表示的字母數字模式的算法。 - 日期和時間處理函數:(注意自己的DBMS,此處演示以MYSQL為例)
SELECT order_num FROM Orders WHERE year(order_date)=2012;
- 數值處理函數:
函數 說明 ABS() 絕對值 COS() 余弦 EXP() 指數 PI() 圓周率 SIN() 正弦 SQRT() 平方根 TAN() 正切