MySQL创建计算字段

741 查看

概述

存储在数据库表中的数据一般不是应用程序所需要的格式。这时候计算字段就发挥作用了。与前面各章介绍过的列不同,计算字段并不实际存在于数据库表中。计算字段是运行在SELECT语句内创建的。

可在SQL语句内完成的许多转换和格式化工作都可以直接在客户机应用程序内完成。但一般来说,在数据库服务器上完成这些操作比在客户机中完成的要快得多,因为DBMS是设计来快速有效的完成这种处理的。

拼接字段

在MySQL的SELECT语句中,可使用concat()函数来拼接两个列。其语法如下所示:

select concat(vend_name,' (', vend_country,')') from vendors

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

如果要去掉字段中的空格,可以使用trim()函数来实现,语法如下所示:

select concat(trim(vend_name),' (', trim(vend_country),')') from vendors

使用别名

从前面输出中的可以看到,SELECT语句拼接地址字段工作的的很好。但此新计算列的名字是什么呢?实际上他没有名字,他只是一个值。为了解决这个问题,可使用列别名。别名是一个字段或值
的替换名。别名可用AS关键字来赋予。示例如下:

select concat(vend_name,' (', vend_country,')') as vent_title from vendors

别名的其他用途:别名还有其他的用途。常见的用途包括在实际列表名包含不符合规定的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它,等等。

执行算数计算

计算字段的另一种常见用途是对检索出的数据进行算数计算。举例如下:

select prod_id ,quantity, item_price quanity * item_price as expanded_price from  orderitems;

MySQL支持的算术操作符包括,加(+)、减(-)、乘(*)、除(/)。