《MySQL必知必会学习笔记》:创建计算字段

创建计算字段 :AS

存储在数据库表中的数据都是一些基本的单元,并不是应用程序所需要的格式;

例如,物品订单表存储物品的价格和数量,但不需要存储每个物品的总价格(价格乘以数量)。当为了打印发票的时候,就需要物品的总价格了。

因此,存储在表中的数据都不是应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告中重新格式化(或许你可以在客户机上面做,但我们一般不这么做,因为在数据库服务器上完成这些操作比在客户机上完成要快的多)。

字段:基本上就是列的别名。

重要的是要注意到,只有数据库知道select语句中哪些列是实际的表列,哪些列是计算字段,但是在客户机的角度来看,计算字段的数据是和其他列的数据相同的方式返回的。

拼接字段

下面以一个例子来进行说明。
例如在一个student表中,我们希望表中的数据以 name(score) 的格式显示输出。

name score是数据库student表中的两列数据,应该如何做呢?
MySQL数据库给我们提供了一个拼接函数:concat()。

select concat(name,' (',score,')') from student;

MySQL的不同之处:多数DBMS使用+ 或||来实现拼接,但是MySQL则使用concat()函数来实现。

别名

从前面的输出可以看到,select语句拼接的工作的很好。但是此新计算的列的名字是什么呢?实际上是他并没有名字,它只是一个值。如果仅在SQL上查询一下结果,这样没有什么不好。但是,一个未命名的列不能用于客户机应用中,因为客户机没有办法应用它。

为了解决这个问题,SQL支持列别名。别名就是一个字段或值的替换名。用关键字as来赋予。

例如:对我们上面的例子取一个别名:namsAndScore;

select concat(name,'(',score,')')  as  nameAndScore from studnet;//用as为新的结果取一个别名

执行算术计算

由于在student这个表中,只有一列成绩,没法进行几门成绩的平均成绩的计算,因此,我这里又新建了一个表格student2.

建表格的命令如下:

create table student2(id int(10),name varchar(10),mathScore int(10),english int(10));

计算平均成绩并且给平均成绩一个别名的方法如下:

select name,mathScore,englishScore,(mathScore+englishScore)/2 as avgScore from student2;

上面这个例子中就应用了算术运算中的 加法和除法.

减法和乘法的用法也与之一样。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值