第十章 创建计算字段

学习目的:
如何创建计算字段以及怎样从应用程序中使用别名引用它们。
 
计算字段:
存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据然后再在客户机应用程序或报告程序中重新格式化。
 
计算字段并不实际存在于数据库表中,计算字段是运行时在SELECT语句内创建的。
 
字段(field)基本上与列(colunm)的意思相同,经常互换使用。不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。
 
拼接字段 :15:00
拼接(concatenate)将值联结到一起构成单个值。
Q:假如要生成一个供应商报表, 需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。
 
A:解决办法是把两个列拼接起来。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。
多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。
 
SELECT Concat(vend_name,'(',`vend_country`,')')
FROM vendors
ORDER BY vend_name;
Concat()需要一个或多个指定的串,各个串之间用逗号分隔。
 
删除数据右侧多余的空格使用函数Rtrim()。
Ltrim()删除数据左边的空格。
Trim()删除数据两端的空格。
 
使用别名:
Q:SELECT语句拼接地址字段工作做得很好,但是实际上它并没有名字,它是一个值。如果仅在SQL查询工具中查看一下结果,这并没有什么不好,但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法引用它。
 
A:为了解决这个问题,SQL支持别名。别名(alias)是一个字段或值的替换名。别名用AS关键字赋予。
SELECT CONCAT(RTrim(vend_name),' (',RTrim(vend_country),')') AS vend_title
FROM vendors
ORDER BY vend_name;
 
别名的其他用途,常见用途包括在实际的表列名包含不符合规定的字符(如空格)时重新命名它;在原本的名字含混或容易误解时扩充它等
 
导出列:别名有时候也称为导出列(derived column)。
 
执行算术计算:
计算字段的另一种常见用途是对检索出的数据进行算术计算。
检索订单号20005中的所有物品 ?
 
SELECT prod_id, quantity,item_price
FROM orderitems
WHERE order_num = 20005;
 
SELECT prod_id, quantity,item_price,quantity*item_price AS expanded_price
FROM orderitems
WHERE order_num = 20005;
 
MySQL算术操作运算符:
操作符
说明
+
 
*
/
 
如何测试计算:
SELECT通常用来从表中检索,但可以省略FROM子句以便简单地访问和处理表达式。如
SELECT 3*2,将返回6
SELECT Trim('abc'),将返回abc
SELECT Now(),返回当前日期和时间。
 
 

原文地址:https://www.cnblogs.com/mumulin99/p/9837750.html