MySQL-创建计算字段

在谈计算字段之前,我们先想一想。储存在数据库中的原始表给我们提供了足够的数据,比如products表中就有商品id,商品名,供应商id,单价。但是实际生活中,比如超市收银员,他们在打单据的时候可不是直接提取原始表单打出来,而是打出一个有商品名,商品单价,和总价的新格式的表单。这个是数据库里没有的,这就是计算字段的用途,用来对原始数据进行加工,从而返回我们需要的表单数据和格式。

拼接字段

我们先进行一种叫作拼接的加工,就是把多个列的值拼成单个列。比如商品id和商品名是两列,现在我想得到形如“(商品id) 商品名”这种新格式的列。怎么做?我们用Concat()函数来拼接

SELECT Concat("(", prod_id, ")", " ", prod_name)
FROM products;

这里写图片描述

现在我们就有了新的列,只不过这种列不存在于数据库中,而是在运行SELECT语句内创建的。
注意:只有数据库知道SELECT语句中用到的列哪些是原始列,哪些是计算字段。我们客户机看到的只是返回的数据列,哪知道哪个是原始的,哪个是计算加工过的?

上面我们已经拼接了一个计算字段,但是我们发现,看上去它的名字好像很长,但实际上,这个计算字段是没有名字的。一个未命名的列肯定不是一件好事,因此我们需要用AS来取个别名

SELECT Concat("(", prod_id, ")", " ", prod_name) AS p_name
FROM products;

这里写图片描述

注:也可以用AS来重命名原始列名

算数计算

上面介绍的拼接,现在介绍的汇总。汇总嘛,就要用到计算了。我们现在有一个订单表,里面都是客户下的订单。现在我们来看一下订单号为20005的由产品id,产品单价,产品数量组成的表单。

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

这里写图片描述

我现在想新增加一列,作为每一个产品的总价

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

这里写图片描述

SELECT测试

之前我们在正则表达式中已经提过了用SELECT进行测试,现在我们仍然可以用SELECT进行其他测试,比如计算。

SELECT 2*3;

这里写图片描述

SELECT rtrim("abc "); #去掉abc右边空格

这里写图片描述

SELECT "abc             ";   #不去掉

这里写图片描述

当然,还有神奇的now()函数来返回当前时间

SELECT now();

这里写图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值