前言:
可以在 SQL 語句中完成很多次的轉化和格式化工作都可以在客戶端進行瞒窒,但一般來說,在數(shù)據(jù)庫中完成這些操作的效率比客戶端更高效得多糯耍。
多數(shù)的 SQL 語句都是可移植的翰苫,在 SQL 實現(xiàn)之間有差異的時,這些差異都不是那么難以處理谨履。但是函數(shù)的移植性確不怎么強欢摄。每一種 DBMS 的函數(shù)實現(xiàn)幾乎都不同。所以為了代碼的可移植性笋粟。有一些人不贊同使用函數(shù)怀挠。但是如果你決定了使用函數(shù)的話,請你寫好代碼注釋害捕。
函數(shù)
- Concat()函數(shù)用來拼接列绿淋。(多少 DBMS 使用+或者||來實現(xiàn)拼接,Mysql 則使用 Concat 函數(shù)來實現(xiàn))
SELECT Concat(vend_name,'(',vend_country,')') AS 詳細地址 FROM vendors
- LTrim/RTrim/Trim()函數(shù)用來去除左/右/兩邊的空格
SELECT Trim(vend_name) FROM vendors
- 算術計算
SELECT order_num,order_item,quantity,item_price,item_price*quantity as all_price FROM orderitems WHERE order_num=20005
- Upper/Lower 轉化大小寫
SELECT vend_name ,Upper(vend_name) AS vend_name_upper FROM vendors
-
日期函數(shù)
在使用WHERE語句對特定日期進行搜索的時候尝盼,需要注意精確到分鐘秒吞滞。如果僅僅只是對日期進行搜索的話,可以使用Date()函數(shù)
SELECT * FROM orders WHERE Date(order_date)='2005-09-01'
SELECT * FROM orders WHERE Month(order_date)='9'
- 聚集函數(shù)
SELECT Avg(item_price) FROM orderitems
SELECT Count(item_price) FROM orderitems
SELECT Max(item_price) FROM orderitems
SELECT Min(item_price) FROM orderitems
SELECT Sum(item_price) FROM orderitems