存储在数据库表中的数据一般不是应用程序所需要的格式,需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据再在客户端应用程序中重新格式化,一般来说,在数据库服务器上完成这些操作比在客户端中完成要快得多。
例如:
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 ');