当前位置:网站首页>MySQL查漏补缺(三) 计算字段

MySQL查漏补缺(三) 计算字段

2022-08-09 09:07:00 胡乐天

创建计算字段

存储在数据库表中的数据不是一般应用程序所需要的格式,这时候就需要我们进行计算,获取到想要的数据格式。

例如:

	如果想在一个字段中既显示公司名字,又显示公司地址,但是这两个信息包含在不同的表列中。
  1. 上述例子,存储在表中的数据都不是应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。

  2. 这就是计算字段发挥的作用了。计算出来的字段并不直接存在于数据库表中。计算字段是运行时在SELECT语句内创建的。

术语解释(字段)

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

注:

只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是以与其他列的数据相同的方式返回。

一、拼接字段

拼接所谓的就是连接,将两个或者以上的字段进行相连接,以此构成单个值。MySQL中使用concat()函数来实现,其余的多数DBMS使用+或者||来实现。其中Oracle中连接字段可以使用concat()或者||来实现。

select concat(company_name,',',company_address) from company_info

分析:

这条语句要查询的是公司信息表中的连接字段,连接的字段为:公司名称+逗号+公司地址。

注意:

  1. 若想去除表格列两侧的空格在进行连接,可以使用trim()函数。若只想去除右边的空格,使用函数Rtrim(),若只想去除左侧的空格,使用函数Ltrim()。

  2. 拼接的字段名字是什么?其实他没有名字,这时候我们要是想在应用程序中进行获取,就比较费时,此时我们可以给他指定别名。

    例如给以上公司 名称和公司地址的连接字段指定别名:companyInfo

    select concat(company_name,',',company_address) as companyInfo from company_info
    
    select concat(company_name,',',company_address) companyInfo from company_info
    

    以上两句SQL达到的效果是一样的,只是说第二条语句省略了关键字as。这样以后,任何客户机应用程序都可以使用companyInfo来引用这个列了,就和实际的表列一样。

二、算数计算

计算字段另一常见的用途就是对检索出来的数据进行算数计算,即加减乘除。

例如:

​ 例如一张商品购物记录表,表的列中含有订单号、商品名称、商品单价、商品数量,现要查询订单号(201542)购买的商品及该商品花费的金额。

select item_name,item_number*item_price as totalPrice
from order_info
where order_number= '201542'

MySQL支持基本算数操作符,即加减乘除(±*/),此外还可以使用小括号来区分优先顺序。一般在应用开发中,若牵扯到基本运算的优先级问题,建议使用小括号进行编程,这样看着即明确,出错率也小。

原网站

版权声明
本文为[胡乐天]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_44613100/article/details/114273242