MySQL计算字段

1 、计算字段

1、存储在数据库表中的数据一般不是应用程序所需要的格式。例如:

  1. 如果想在一个字段中既显示公司名,又显示公司的地址,但这两 个信息一般包含在不同的表列中。
  2. 城市、州和邮政编码存储在不同的列中(应该这样),但邮件标签 打印程序却需要把它们作为一个恰当格式的字段检索出来。
  3. 列数据是大小写混合的,但报表程序需要把所有数据按大写表示 出来。
  4. 物品订单表存储物品的价格和数量,但不需要存储每个物品的总 价格(用价格乘以数量即可)。为打印发票,需要物品的总价格。
  5. 需要根据表数据进行总数、平均数计算或其他计算。

在上述每个例子中,存储在表中的数据都不是应用程序所需要的。 我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是 检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
这就是计算字段发挥作用的所在了。与前面各章介绍过的列不同, 计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句 内创建的。

2、字段(field)
基本上与列(column)的意思相同,经常互换使 用,不过数据库列一般称为列,而术语字段通常用在计算字段的 连接上。

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

例子
在这里插入图片描述

2、 拼接字段

1、拼接(concatenate)
将值联结到一起构成单个值。

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

3、例子
解决办法是把两个列拼接起来。在MySQL的SELECT语句中,可使用 Concat()函数来拼接两个列。
例如:拼接人员老家所在的城市和省份

SELECT Concat(city,'(',province,')')
FROM people;

在这里插入图片描述
4、Concat()拼接串,即把多个串连接起来形成一个较长的串。
Concat()需要一个或多个指定的串,各个串之间用逗号分隔。 上面的SELECT语句连接以下4个元素:

  1. 存储在vend_name列中的名字;
  2. 包含一个空格和一个左圆括号的串;
  3. 存储在vend_country列中的国家;
  4. 包含一个右圆括号的串。

5、使用别名
从前面的输出中可以看到,SELECT语句拼接地址字段工作得很好。 但此新计算列的名字是什么呢?实际上它没有名字,它只是一个值。如 果仅在SQL查询工具中查看一下结果,这样没有什么不好。但是,一个未 命名的列不能用于客户机应用中,因为客户机没有办法引用它。
为了解决这个问题,SQL支持列别名。别名(alias)是一个字段或值 的替换名。别名用AS关键字赋予。
例如:

SELECT Concat(city,'(',province,')') AS address
FROM people;

在这里插入图片描述
从输出中可以看到,结果与以 前的相同,但现在列名为 address,任何客户机应用都可以按名引用 这个列,就像它是一个实际的表列一样。

别名的其他用途

  1. 实际 的表列名包含不符合规定的字符(如空格)时重新命名它,在 原来的名字含混或容易误解时扩充它
  2. 两个表中字段相同,命这两个字段为不一样的别名,就可以使用别名调用。

3、执行算术计算

MySQL支持列出的基本算术操作符。此外,圆括号可用来 区分优先顺序。
在这里插入图片描述

例如:总薪水(salary)除以工作天数(days)得到日薪水(Daily_salary)

SELECT  id,
        first_name,
        last_name,
        salary/days AS Daily_salary
FROM 	people;

在这里插入图片描述

总结

主要就是拼接字段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值