大纲
1、什么是计算字段
2、拼接字段
3、使用别名
4、执行算术计算
1、什么是计算字段
存储在数据库表中的数据一般不是应用程序锁需要的格式。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
这就是计算字段发挥作用的所在了。
计算字段并不实际存储在数据库表中,而是在执行SELECT语句时,临时创建的。
重要的是要注意到,只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是以与其他真实列的数据相同的方式返回的。
客户机与服务器的格式
可在SQL语句中完成的许多转换盒格式化工作都可以直接在客户机应用程序完成。但一般来说,在数据库服务器上完成这些操作比在客户机中完成要快得多,因为DBMS是设计来快速的完成这种处理的。
2、拼接字段
在MySQL的SELECT语句中,可使用CONCAT()函数来拼接两个列。
mysql> SELECT CONCAT(vend_name, ' (', vend_country, ')')
-> FROM vendors
-> ORDER BY vend_name;不同之处:
多数DBMS使用+或者||来实现拼接,MySQL则使用CONCAT()函数来实现。当把SQL语句转换成MySQL语句时,一定要把这个区别铭记在心。
3、使用别名
从上面的例子中可以看出,工作得很好。但是新创建的计算字段的名字是什么呢? 实际上它并没有名字,它只是一个值。但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。
为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值的替换名。别名使用AS关键字赋予。
我们指示SQL创建一个包含指定计算的名为vend_title的计算字段。那么现在,任何客户机应用都可以按名引用这个列,就像它是一个实际的表列一样。
别名的其他用途:
常见的用途包括在实际的表列名包含不符合规定的字符时重新命名它。
在原来的名字含混或容易误解时扩充它。
4、执行算术计算
计算字段的另一常见用途是对检索出的数据进行算术计算。
mysql> SELECT prod_id, quantity, item_price, quantity * item_price AS expanded_price -> FROM orderitems -> WHERE order_num = 20005;
MySQL支持下表中列出的基本算术操作符,此外,圆括号可用来区分优先顺序。


















