【MySQL】不允许你还不了解创建计算字段

这篇具有很好参考价值的文章主要介绍了【MySQL】不允许你还不了解创建计算字段。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎬 博客主页:博主链接
🎥 本文由 M malloc 原创,首发于 CSDN🙉
🎄 学习专栏推荐:LeetCode刷题集!
🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📆 未来很长,值得我们全力奔赴更美好的生活✨

【MySQL】不允许你还不了解创建计算字段
【MySQL】不允许你还不了解创建计算字段

😇MySQL的前情介绍

😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录一下自己的学习过程,并且分享给大家尼!

😇本章详情

🐤本文章将介绍什么是计算字段,如何创建计算字段以及怎样从应用程序中使用别名引用它们。

😇计算字段

前言

存储在数据库表中的数据一般不是应用程序所需要的格式。下面举几个例子。

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

💐在上述每个例子中,存储在表中的数据都不是应用程序所需要的。我们需要直接从数据库中检索出转换、计算或格式化过的数据;而不是检索出数据,然后再在客户机应用程序或报告程序中重新格式化

结论

这就是计算字段发挥作用的所在了。与前面的文章介绍过的列不同计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。

字段

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

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

客户机与服务器的格式

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

😇拼接字段

💐为了说明如何使用计算字段,举一个创建由两列组成的标题的简单例子。

  1. vendors表包含供应商名和位置信息。假如要生成一个供应商报表,需要在供应商的名字中按照name(location)这样的格式列出供应商的位置。
  2. 此报表需要单个值,而表中数据存储在两个列vend_name和vend_country中。此外,需要用括号将vend_country括起来,这些东西都没有明确存储在数据库表中。我们来看看怎样编写返回供应商名和位置的SELECT语句。

拼接(concatenate)

将值联结到一起构成单个值

MySQL的不同之处

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

输入

SELECT Concat(vend_name,'(',vend_country,')') FROM vendors
	ORDER BY vend_name;

分析

🌱Concat()拼接串,即把多个串连接起来形成一个较长的串。
Concat()需要一个或多个指定的串,各个串之间用逗号分隔。

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

从如下的输出中可以看到,SELECT语句返回包含上述4个元素的单个列(计算字段)。

输出
【MySQL】不允许你还不了解创建计算字段

🌻在前几篇章中曾提到通过删除数据右侧多余的空格来整理数据,这可以使用MySQL的RTrim()函数来完成,如下所示:

输入

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') FROM vendors
	ORDER BY vend_name;

分析

RTrim()函数去掉值右边的所有空格。通过使用RTrim(),各个列都进行了整理。

Trim函数

Trim函数 MySQL除了支持RTrim()(正如刚才所见,它去掉串右边的空格),还支持LTrim()(去掉串左边的空格)以及Trim()(去掉串左右两边的空格)。

使用别名

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

为了解决这个问题,SQL支持列别名。别名 (alias)是一个字段或值的替换名。别名用AS关键字赋予。请看下面的SELECT语句:

输入

SELECT Concat(RTrim(vend_name),'(',RTrim(vend_country),')') as vend_title FROM vendors
	ORDER BY vend_name;

输出
【MySQL】不允许你还不了解创建计算字段
分析

SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本AS vend_title。它指示SQL创建一个包含指定计算的名为vend _title的计算字段。从输出中可以看到,结果与以前的相同,但现在列名为vend_title,任何客户机应用都可以按名引用这个列,就像它是一个实际的表列一样。

别名的其他用途

别名的其他用途 别名还有其他用途常见的用途包括在实际的表列名包含不符合规定的字符(如空格)时重新命名它,在原来的名字含混或容易误解时扩充它,等等.

导出列

别名有时也称为导出列(derived column),不管称为什么,它们所代表的都是相同的东西。

😇执行算术运算

前言

计算字段的另一常见用途是对检索出的数据进行算术计算。举一个例子,orders表包含收到的所有订单,orderitems表包含每个订单中的各项物品。下面的SQL语句检索订单号20005中的所有物品:

输入

SELECT prod_id,quantity,item_price FROM orderitems
	WHERE order_num = 20005;

输出
【MySQL】不允许你还不了解创建计算字段

item_price列包含订单中每项物品的单价。如下汇总物品的价格单价乘以订购数量):

输入

SELECT prod_id,quantity,item_price,quantity * item_price AS expanded_price FROM orderitems
	WHERE order_num = 20005;

输出
【MySQL】不允许你还不了解创建计算字段
分析

输出中显示的expanded_price列为一个计算字段,此计算为quantity*item price。客户机应用现在可以使用这个新计算列,就像使用其他列一样。

MySQL算术操作符

【MySQL】不允许你还不了解创建计算字段
如何测试计算

🌼如何测试计算SELECT提供了测试和试验函数与计算的一个很好的办法。虽然SELECT通常用来从表中检索数据,但可以省略FROM子句以便简单地访问和处理表达式。例如,SELECT3*2;将返回6,SELECT Trim(‘abc’);将返回abc,而SELECT Now()利用Now()函数返回当前日期和时间。通过这些例子,可以明白如何根据需要使用SELECT进行试验。

🤣如何巩固学习

提示:在学习的过程中,我们需要先自行进行思考,而不是一遇到不会的就放弃思考直接看答案,如果最后遇到真的不会的题目,我们可以适当的进行观看答案,看自己的思路是否正确,在作出正确的判断

🤣本文小结

本文章介绍了计算字段以及如何创建计算字段。我们用例子说明了计算字段在串拼接和算术计算的用途。此外,还学习了如何创建和使用别名,以便应用程序能引用计算字段。

好啦今日的分享到这里就结束啦,我是爱你们的M malloc希望可以帮助到你们噢,最后别忘记三连啦!!

【MySQL】不允许你还不了解创建计算字段

【MySQL】不允许你还不了解创建计算字段文章来源地址https://www.toymoban.com/news/detail-500982.html

到了这里,关于【MySQL】不允许你还不了解创建计算字段的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • h5项目编写成app,你还不了解吗?直接打包和套webview结合uniapp两种实现方式

    在各种需求中 大致有两类 让h5直接运行成app,有一个成熟的h5项目,想直接打包app 不想触发app更新,又能获取最新的更新效果,使用webview套h5,最终生成app 今天笔者带大家粗略实现以上的两个需求 打开hbuiderx 新建项目 选择 5+app 删除其他的多余文件 将自己打包生成的文件进

    2024年02月04日
    浏览(38)
  • 作为前端你还不懂MutationObserver?那Out了

    🐱 个人主页: 不叫猫先生 🙋‍♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门到精通、TypeScript从入门到实践 📢 资料领取:前端进阶资料以及文中源码可以找我免费领取 🔥 前端

    2024年04月29日
    浏览(23)
  • 【MySQL】不允许你不了解联结表

    🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长,值得我们全力奔赴更美好的生活✨ 😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录

    2024年02月12日
    浏览(32)
  • 你还不懂《顺序表》?那就不要错过这篇文章!!!

    🎇🎇🎇作者: @小鱼不会骑车 🎆🎆🎆专栏: 《java练级之旅》 🎓🎓🎓个人简介: 一名专科大一在读的小比特,努力学习编程是我唯一的出路😎😎😎 在认识顺序表前我们先认识一下线性表: 小鱼曾在一本书中看到这么一个例子他是这样介绍线性表的: 在一个幼儿园中

    2024年02月21日
    浏览(45)
  • 【MySQL】不允许你不了解如何汇总数据

    🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长,值得我们全力奔赴更美好的生活✨ 😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录

    2024年02月11日
    浏览(26)
  • 【MySQL】不允许你不了解如何分组数据

    🎬 博客主页:博主链接 🎥 本文由 M malloc 原创,首发于 CSDN🙉 🎄 学习专栏推荐:LeetCode刷题集! 🏅 欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 📆 未来很长,值得我们全力奔赴更美好的生活✨ 😁大家好呀,今天是我第N次写MySQL,也是最近才学习MySQL,也想着记录

    2024年02月12日
    浏览(30)
  • 用了这么久rabbitmq,你还不知道它的目录结构吗?

    rabbitmq配置目录:/etc/rabbitmq/ ​ 常见配置文件有: (1)配置文件 rabbitmq.conf (2)环境变量文件 rabbitmq-env.conf (3)补充配置文件 advanced.config rabbitmq数据目录:/var/lib/rabbitmq/ 目录文件有: rabbitmq日志文件: /var/log/rabbitmq ​ 目录文件有: rabbitmq命令脚本:/usr/lib/rabbitmq/ 1.bin目录

    2024年02月16日
    浏览(28)
  • 什么?作为程序员你还不知道人工智能搜索引擎?

    作者 :明明如月学长, CSDN 博客专家,蚂蚁集团高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《EffectiveJava》独家解析》专栏作者。 热门文章推荐 : (1)《人工智能时代,软件工程师们将会被取代?》 (2)

    2024年02月10日
    浏览(55)
  • 听说你还不知道什么是 python?带你深入理解什么是 python

    各位朋友们,大家好。在之后的时间里,我将陆续为大家分享我在python学习过程中学习到的知识点,如果你也对python感兴趣的话,欢迎大家来订阅我的python专栏哦,如果大家觉得博主的文章写得不错的话,记得给博主点个赞支持一下哦! Python是一种面向对象、解释型的高级编

    2024年02月11日
    浏览(26)
  • 旧路由器不要扔,可当电脑无线网卡使用,你还不知道吧!

    家里有旧路由器,卖二手又不值钱,扔了又可惜。 想不到路由器还有以下这些功能: 扩大Wifi覆盖范围; 充当电脑无线网卡; 把这个技巧学起来, 提升网络冲浪的幸福感! 路由器恢复出厂设置(通用教程) 有线桥接 无线桥接 如果忘记旧路由的管理页和管理密码,则需要恢

    2024年02月09日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包