计算字段
存储在表中的数据可能不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
这就是计算字段发挥作用的所在了。计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。
只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是以与其他列的数据相同的方式返回的。
拼接字段
多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。
1 | SELECT Concat(vend_name, '(', vend_country, ')') |
使用RTrim()行数来去除尾空格
1 | SELECT Concat(RTrim(vend_name), '(', RTrim(vend_country), ')') |
使用别名
一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值的替换名。别名用AS关键字赋予。
1 | SELECT Concat(RTrim(vend_name), '(', RTrim(vend_country), ')') AS vend_title |
执行算术计算
1 | SELECT prod_id, |
SELECT提供了测试和试验函数与计算的一个很好的办法。虽然SELECT通常用来从表中检索数据,但可以省略FROM子句以便简单地访问和处理表达式。例如,SELECT 3*2;将返回6,SELECT Trim(‘abc’);将返回abc,而SELECT Now()利用Now()函数返回当前日期和时间。