存儲在數據庫表中的數據一般不是應用程序所需要的格式,需要直接從數據庫中檢索出轉換、計算或格式化過的數據,而不是檢索出數據再在客戶端應用程序中重新格式化,一般來說,在數據庫服務器上完成這些操作比在客戶端中完成要快得多。
例如:
1.需要顯示公司名稱,同時還需要顯示公司的地址,但由於第一範式這兩個信息存儲在表中的不同的字段中
2.城市,州和郵政編碼存儲在不同列中,同上
3.物品訂單表存儲物品的價格和數量,不存儲每個物品的總價格,但要打印發票,需要物品的總價格。
總之,功能大致有如下兩種:
1. 拼接字段
2. 算術計算
拼接字段
在SQL Server和Access中使用 + 號,在DB2、Oracle、PostgreSQL、SQLite中使用 || 號,在MySQL和MariaDB中使用Concat函數
SELECT vend_name + '(' + vend_country + ')'
FROM Vendors
ORDER BY vend_name;
SELECT vend_name || '(' || vend_country || ')'
FROM Vendors
ORDER BY vend_name;
SELECT Concat(vend_name, '(' , vend_country , ')' )
FROM Vendors
ORDER BY vend_name;並且可以使用別名AS
SELECT Concat(vend_name, '(' , vend_country , ')' ) AS vend_title
FROM Vendors
ORDER BY vend_name;SELECT prod_id , quantity , item_price, quantity * item_price AS expanded_price
FROM OrderItems
WHERE order_num = 2008;
基本算術操作符, +加, -減 , * 乘 ,/ 除
測試計算:
SELECT語句爲測試、檢驗函數和計算提供了很好的方法,省略了FROM子句後就是簡單地訪問和處理表達式,例如:
SELECT 3*2;
SELECT Trim(' abc ');