当前位置:网站首页>MySQL查漏补缺(三) 计算字段
MySQL查漏补缺(三) 计算字段
2022-08-09 09:07:00 【胡乐天】
创建计算字段
存储在数据库表中的数据不是一般应用程序所需要的格式,这时候就需要我们进行计算,获取到想要的数据格式。
例如:
如果想在一个字段中既显示公司名字,又显示公司地址,但是这两个信息包含在不同的表列中。
上述例子,存储在表中的数据都不是应用程序所需要的,我们需要直接从数据库中检索出转换、计算或格式化过的数据,而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化。
这就是计算字段发挥的作用了。计算出来的字段并不直接存在于数据库表中。计算字段是运行时在SELECT语句内创建的。
术语解释(字段)
字段基本上与列(column)的意思相同,经常互换使用,不过数据库列一般称为列,而术语字段常用在计算字段的连接上。
注:
只有数据库知道SELECT语句中哪些列是实际的表列,哪些列是计算字段。从客户机(如应用程序)的角度来看,计算字段的数据是以与其他列的数据相同的方式返回。
一、拼接字段
拼接所谓的就是连接,将两个或者以上的字段进行相连接,以此构成单个值。MySQL中使用concat()函数来实现,其余的多数DBMS使用+或者||来实现。其中Oracle中连接字段可以使用concat()或者||来实现。
select concat(company_name,',',company_address) from company_info
分析:
这条语句要查询的是公司信息表中的连接字段,连接的字段为:公司名称+逗号+公司地址。
注意:
若想去除表格列两侧的空格在进行连接,可以使用trim()函数。若只想去除右边的空格,使用函数Rtrim(),若只想去除左侧的空格,使用函数Ltrim()。
拼接的字段名字是什么?其实他没有名字,这时候我们要是想在应用程序中进行获取,就比较费时,此时我们可以给他指定别名。
例如给以上公司 名称和公司地址的连接字段指定别名: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支持基本算数操作符,即加减乘除(±*/),此外还可以使用小括号来区分优先顺序。一般在应用开发中,若牵扯到基本运算的优先级问题,建议使用小括号进行编程,这样看着即明确,出错率也小。
边栏推荐
猜你喜欢
随机推荐
leetcode 34. 在排序数组中查找元素的第一个和最后一个位置(二分经典题)
加密技术和电子竞技如何促进彼此的发展
The 5th Blue Cap Cup preliminary misc reappears after the game
RESTful
电子产品整机结构设计的一般性思路
【培训课程专用】CA/TA调用模型-代码导读
公司从零开发微信小程序流程
二叉树的遍历(非递归)
Difference: char* and char[]
makefile的foreach、filter、filter-out函数
【场景化解决方案】搭建数据桥梁,Dslink打通泛微系统连接流
深度学习时代的视频理解综述
绝了,这套RESTful API接口设计总结
不支持关键字: 'Provider'
基于 JSch 实现服务的自定义监控解决方案
【场景化解决方案】构建设备通讯录,制造业设备上钉实现设备高效管理
【LeetCode每日一题】——225.用队列实现栈
RDMA
权限管理模型 ---- ACL、RBAC和ABAC(详解)
Kibana:为地图应用选择不同的语言 - Elastic Stack 8.3