首页 > 技术文章 > <MySQL学习三>创建计算字段

daisy-996 2018-09-30 13:30 原文

本篇博客仅作为笔记,如有侵权,请联系,立即删除(网上找博客学习,然后手记笔记,因纸质笔记不便保存,所以保存到网络笔记)

1、计算字段

  储存在表中的数据不都是计算机应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。

  这就是计算字段发挥作用的所在了。与我们前面博客中所讲过的列有所不同,计算字段并不实际存在于数据库表中,计算字段是在运行时在SELECT语句内创建的。

字段:基本上与列的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段通常用在计算字段的连接上。注意:只有数据库知道SELECT语句中哪些列是实际的列表,哪些列是计算字段。

2、拼接字段

  拼接:将值联结到一起构成单个值。在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。

注意:MySQL的不同之处:多数DBMS使用+或||来实现拼接,MySQL则使用Concat()函数来实现。当把SQL语句转换成MySQL语句时一定要把这个区别铭记于心。

SELECT Concat(vend_name,'(',vend_country,')') FROM vendors
ODER BY vend_name;

    Concat()拼接串,即把多个串连接起来形成一个较长的串。Concat()需要一个或多个指定的串,各个串之间用逗号分隔。

  前面曾提到过通过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim()函数来完成:

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')')
FROM vendors
ORDER BY vend_name;

    RTrim()函数去掉值右边的所有空格。通过使用RTrim(),各个列都进行了整理。

注意:MySQL除了支持RTrim()(它去掉串右边的空格),还支持LTrim()(去掉串左边的空格)以及Trim()(去掉串左右两边的空格)。

  使用别名:

  别名(有时候也称为导出列):是一个字段或者值得替换名,别名用AS关键字赋予。

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') 
AS vend_titile FROM vendors
ORDER BY vend_name;

    SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算得名为vend_title,任何客户机应用都可以按名引用这个列,就像它是一个实际的列表一样。

 3、执行算术计算

  计算字段的另一常见用途是对检索出来的数据进行算术计算。

SELECT prod_id,quantity,item_price FROM orderitems
WHERE oder_num = 20005;

  上述SQL语句检索订单号20005中的所有物品。

SELECT prod_id,quantity,item_price,
quantity*item_price AS expanded_price
FROM orderitems WHERE order_num = 20005;

  输出中显示expanded_price列为一个计算字段,次计算字段为quantity*item_price。客户机应用现在可以使用这个新计算列,就像使用其他列一样。

MySQL支持以下操作符,此外,圆括号可用来区分优先顺序。

MySQL算术操作符
操作符 说明
+
-
*
/

注意:SELECT提供了测试和试验函数与计算得一个很好的办法。虽然SELECT通常用来从表中检索数据,但可以省略FROM子句以便简单地访问和处理表达式。例如,SELECT 3*2,将返回6。SELECT Now()将返回当前日期和时间。

推荐阅读