本文介绍什么是计算字段,如何创建计算字段以及怎样从应用程序中使用别名引用它们。
1、计算字段
存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据。这就是计算字段发挥作用的所在了。计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。
只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是以与其他列的数据相同的方式返回的。
2、拼接字段
举一个创建由两列组成的标题的简单例子:
mysql> select Concat(vend_name, ‘ (‘, vend_country, ‘)’)
-> from vendors
-> order by vend_name;
Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。
SELECT语句拼接地址字段工作得很好,但是它没有名字,它只是一个值。为了解决这个问题, SQL支持列别名。 别名( alias) 是一个字段或值的替换名。别名用AS关键字赋予。请看下面的SELECT语句:
mysql> select Concat(vend_name, ‘ (‘, vend_country, ‘)’) as vend_title
-> from vendors
-> order by vend_name;
3、执行算术计算
计算字段的另一常见用途是对检索出的数据进行算术计算。举一个例子, orders表包含收到的所有订单, orderitems表包含每个订单中的各项物品。下面的SQL语句检索订单号20005中的所有物品:
mysql> select prod_id, quantity, item_price
-> from orderitems
-> where order_num=20005;
item_price列包含订单中每项物品的单价。如下汇总物品的价格(单价乘以订购数量):
mysql> select prod_id,
-> quantity,
-> item_price,
-> quantity*item_price as expanded_price
-> from orderitems
-> where order_num=20005;
expanded_price列为一个计算字段,此计算为quantity*item_price。客户机应用现在可以使用这个新计算列,就像使用其他列一样。
Comments