当前位置: 首页 > news >正文

MySQL零基础教程11—拼接/计算

概念

介绍计算字段之前,先了解三个概念:

  1. 字段
  2. 计算字段
  3. 数据库列

字段

什么是字段?字段是“列”在具体某一行的值,是逻辑上的数据单元

字段的特点正如其概念,表示某一行中某一列的具体数据,比如A教师的工号是T001,那么T001就是一个字段值。是的,字段是一个具体的值

计算字段

计算字段实际上是不存储数据的虚拟列,是通过表达式动态计算生成的虚拟列

计算字段有以下特点:

  1. 在查询的过程中实时计算,结果只存在查询结果中
  2. 经常用于简化复杂逻辑或者动态生成数据

比如下边的sql(先举例子,后边会介绍到):

-- 计算总价(price * quantity)
SELECT 
    id, 
    price, 
    quantity, 
    price * quantity AS total_price  -- 计算字段
FROM products;

上边出现了一个计算字段:total_price,总价,其值等于价格乘以数量,在实际的数据库表中,并不存在总价这一列,但是生成的结果中会展示这一列

数据库列

在最开始介绍mysql的时候,我们已经知道数据库列就是一张表的垂直结构单元,类比Excel中的列,是用来存储特定类型数据的(创建表的时候要制定列的数据类型)

所以数据库列的特点就是实际存储在磁盘中,是物理存在的数据,比如上边例子中的quantity和price

明确了三者的关系,我们就开始具体的学习吧!

拼接字段

在实际的工作中,加入我们要存地址信息,往往不会在一列中存储“xx省xx市xx区,邮政编码xxxx”

一般会把省份、城市、邮政编码分成三个列分别存储,但是站在用户角度来看,想要查询一个地址信息,肯定希望我们把完整的信息返回给他,这个时候我们就要把三个字段拼接起来

我们同样用教师表来举例子,假设教师表的信息如下:

在这里插入图片描述
我们需要获取教师的地址信息,但是要求是包含省市以及邮政编码的完整信息,并且把邮政编码用括号括起来放在省市后边,可以这样组装sql语句:

select Concat(province, city, ' (', postal_code, ') ') from teachers order by teacher_id;

在这里插入图片描述
结果符合需求

上边我们使用了前边没出现过的Concat()函数来实现了拼接,如果用其他DBMS,也有可能使用+或者||实现拼接,效果是一样的,可以看到concat函数的参数不仅可以是字段,也可以是我们自己定义的字符串,比如上边sql中的两个括号,就是我们根据需求,自己加上去的

当然,Conacat函数实现拼接的顺序是根据参数位置从左到右依次拼接的

去除空格处理

在mysql中,还有几个函数可以帮助我们做一些简单的数据处理,比如去除数据的空格,包括去除数值右边的空格, 数值左边的空格以及同时去除左右两边的空格,分别使用的是以下三个函数:

  1. Rtrim():去除右侧空格
  2. Ltrim():去除左侧空格
  3. Trim():去除两侧空格

我们以Rtrim()为例,假如教师填写名字时在结尾多打了空格,我们查出来的数据不希望包含空格,同时返回结果为教师姓名+教师完整地址信息,就可以这样查询:

select Concat(Rtrim(teacher_name), '地址信息:', province, city, postal_code, ') from teachers;

在这里插入图片描述
我们不使用Rtrim函数查询做个对比:

select Concat(teacher_name, '地址信息:', province, city, postal_code, ') ') from teachers;

在这里插入图片描述

给计算字段起别名:as

前边几个sql我们使用了拼接,但是在查询结果中,展示出来的“列名”都是一长串的拼接信息,以查询教师完整信息为例,假如我们就想让查询结果中展示的名称是“教师完整信息”,就可以使用as给其起一个别名:

select Concat(Rtrim(teacher_name), '地址信息:', province, city, postal_code, ') ') from teachers;

在这里插入图片描述

算数计算

假如学生信息表里边存储了学生们的各科考试成绩,我们查询的时候除了展示成绩,还想要展示总分、平均分等信息,就需要使用数学运算了

假如我们的学生信息如下:

在这里插入图片描述
要求:查询所有学生的各科成绩及其总分和平均分

select student_name, math, en, gym, math+en+gym as total_score, (math+en+gym)/3 as average_score from students;

在这里插入图片描述
mysql中支持的运算符包括了基本的四则运算:

  1. 加(+)
  2. 减(-)
  3. 乘(*)
  4. 除(/)

以上就是关于基础入门的mysql计算字段相关的内容啦,下一期我们一起学习数据的汇总,学习更多更加灵活的函数操作!

相关文章:

  • 监控视频流web端播放
  • Vue.js 组件开发全面详解及应用案例
  • 【量化金融自学笔记】--开篇.基本术语及学习路径建议
  • Hive配置
  • 计算机毕业设计SpringBoot+Vue.js人口老龄化社区服务与管理平台 (源码+文档+PPT+讲解)
  • PHP实现登录和注册(附源码)
  • 如何通过rust实现自己的web登录图片验证码
  • react 中,使用antd layout布局中的sider 做sider的展开和收起功能
  • 对于运维稳定性建设的一些思考
  • Let‘s Encrypt 获取免费SSL证书
  • 如何在 IntelliJ IDEA 中集成 DeepSeek
  • DeepSeek实操教程(清华、北大)
  • MATLAB环境下从信号中去除60Hz工频干扰噪声
  • git push失败
  • 微服务笔记 2025/2/15
  • 计算机网络实验2-虚拟局域网(VLAN)划分
  • ES如何打印DSL
  • 一次GaussDB内存不足导致宕机的问题排查
  • SpringBoot(整合MyBatis + MyBatis-Plus + MyBatisX插件使用)
  • 1.C语言初识
  • 中小企业网站建设教程/志鸿优化网官网
  • 做网站上怎么推广呢/软文营销策划
  • 做搜索网站能发财吗/网络营销策划总结
  • 海外版tiktok免费入口/seo有什么作用
  • 电商网站建设合同/推广软件
  • 设计标志公司/深圳百度seo培训