学习笔记,以代码和例子堆砌而成,方便查阅。
参考书籍:《Mysql必知必会》等

要点:Concat()函数、Trim()函数、AS关键字、数值计算、测试计算


此Blog里的例子都会用下面shop数据表:

# id, product, price, pro_number, note, something
'1', 'Apple', '3', '30', 'sweet', '  OK '
'2', 'Chocolates', '6', '15', 'nice', 'SURE '
'3', 'Hamburger', '10', '5', 'yummy', 'FINE  '
'4', 'Pen', '50', '1', 'fluent', ' NOW'
'5', 'Book', '45', '2', 'excellent', 'WHAT'

如果我们想要直接从数据库中检索出检索出转换、计算或格式化过的数据;而不是检索出数据,然后在客户机的应用程序或报告程序中重新格式化,那么我们就要了解一下计算字段了。计算字段并不像数据表中的列一样,实际存在于数据库表中,它是在运行时,在SELECT语句内创建的。

  • 拼接Concat()

将shop表中的product和note列以product(note)的形式拼接起来,再按照price升序排列.

SELECT Concat(product, '(', note, ')') FROM shop ORDER BY price;

输出:

# Concat(product, '(', note, ')')
'Apple(sweet)'
'Chocolates(nice)'
'Hamburger(yummy)'
'Book(excellent)'
'Pen(fluent)'
  • 删除数据两边多余空格Trim()

首先,我们将note和something列,按照note[something]的形式拼接在一起:

SELECT Concat(note, '(', something, ')') FROM shop;

输出:

# Concat(note, '(', something, ')')
'sweet(  OK )'
'nice(SURE )'
'yummy(FINE  )'
'fluent( NOW)'
'excellent(WHAT)'

我们看到由于something列中有些值的左/右边有多余空格的存在,导致拼接结果并不理想,所以,我想要删除something左右两端空格,再与note拼接,这时,我们就要用函数Trim(),它可以帮助我们去除字符串两边的空格:

SELECT Concat(note, '(', Trim(something), ')') FROM shop;

输出:

# Concat(note, '(', Trim(something), ')')
'sweet(OK)'
'nice(SURE)'
'yummy(FINE)'
'fluent(NOW)'
'excellent(WHAT)'

除了Trim()函数之外,还有RTrim()和LTrim()函数,它们分别可以去掉字符串右边和左边的空格。

  • 使用别名AS

当我们使用拼接函数Concat()将两列拼接在一起后,请问这个拼接好的列叫啥呢?实际上它并没有名字,它只是一个值。没有名字,客户机就不能应用。为了让这个列有名字,我们用关键字AS,告诉SQL创建一个包含指定计算的名为###的计算字段,这个###就是我们要给计算字段(也就是拼接函数拼成的列)起的别名。

SELECT Concat(product, '(', note, ')') AS info FROM shop;

输出:

# info
'Apple(sweet)'
'Chocolates(nice)'
'Hamburger(yummy)'
'Pen(fluent)'
'Book(excellent)'

我们看一下起名以后的数据表:

# id, product, price, pro_number, note, something
'1', 'Apple', '3', '30', 'sweet', '  OK '
'2', 'Chocolates', '6', '15', 'nice', 'SURE '
'3', 'Hamburger', '10', '5', 'yummy', 'FINE  '
'4', 'Pen', '50', '1', 'fluent', ' NOW'
'5', 'Book', '45', '2', 'excellent', 'WHAT'

其实这里我没太搞懂,咋的,起个名字就能被客户机应用了??起了名字以后,你还是计算字段啊(可能?),数据库表中不是还没你么,那你起名字,咋被客户机应用???

好吧,这个问题先记着,以后解决

  • 数值计算

好了,现在我想算每个product的总价了,总价(total=price*pro_number):

SELECT product,price*pro_number AS totla FROM shop;

输出:

# product, totla
'Apple', '90'
'Chocolates', '90'
'Hamburger', '50'
'Pen', '50'
'Book', '90'
  • 测试计算

SELECT提供了测试和试验函数与计算的一个方法,我们可以省略FROM子句简单的访问和处理表达式。

来个例子:

SELECT 50-25;

输出:

# 50-25
'25'

再来个例子:

SELECT Trim(' utf-8   ');

输出:

# Trim(' utf-8   ')
'utf-8'

初识Mysql(part8)--我需要知道的5个关于计算字段的小知识相关推荐

  1. 初识Mysql(part14)--我需要知道的6个关于创建表的小知识

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:CREATE TABLE.主键.NULL.AUTO_INCREMENT.默认值.引擎 创建一个表 My ...

  2. 初识Mysql(part16)--我需要知道的2条Mysql语句之子查询

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 此Blog会用到下面3个表. temp_store表: # pr_id, store_num '1001', ...

  3. 初识Mysql(part12)--我需要知道的3条Mysql语句之插入数据

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:INSERT INTO子句 此Blog里的例子都会用下面的grouping表和grouping2表. ...

  4. 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UNION.UNION ALL 此Blog会用到下面2个表. temp_product2: # id, ...

  5. 初识Mysql(part18)--我需要知道的4个关于联结的小知识点

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:表别名,自链接,外连接,聚合函数与联结 此Blog会用到下面2个表. temp_product表: # ...

  6. 初识Mysql(part17)--我需要知道的3条Mysql语句之联结

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:联结.INNER JOIN.ON关键字 此Blog会用到下面3个表. temp_store表: # p ...

  7. 初识Mysql(part15)--我需要知道的4条Mysql语句之操作表

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:ALTER关键字.RENAME关键字.DROP关键字.ADD关键字 此Blog里的例子都会用下面的te ...

  8. 初识Mysql(part13)--我需要知道的7条Mysql语句之更新和删除数据

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UPDATE关键字.IGNORE关键字.DELETE关键字.TRUNCATE TABLE语句 此Blo ...

  9. 初识Mysql(part11)--我需要知道的4条Mysql语句之分组

    学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:GROUP BY子句.HAVING关键字 此Blog里的例子都会用下面grouping数据表: # i ...

最新文章

  1. 应用vb编程_用VB编程来解决实际生活问题
  2. Windows 2008 R2+iis7.5环境下Discuz!X3论坛伪静态设置方法
  3. [转]JavaScript代码收集
  4. GitLab 8.15中引入了自动部署和Web终端
  5. 利用vagrant快速搭建rails开发环境
  6. C#并发实战Parallel.ForEach使用
  7. 跨域(Cross-Domain) AJAX for IE8 and IE9
  8. [css] 如何将元素的所有css属性恢复为初始化状态?
  9. BugkuCTF-WEB题文件上传
  10. 《Python程序设计开发宝典》全面上架(新书超低价优惠+转发积攒送书)
  11. 数据结构:邻接表法存储有向图
  12. sql group by统计
  13. zynq以太网官网例子调试
  14. 箱线图怎么判断异常值_箱线图(Box-plot)中,异常值很多说明什么?
  15. nvidia windows linux,NVIDIA首发OpenGL 3.1驱动 全面支持Windows/Linux
  16. 用脑电波控制智能假肢:如何利用深度学习技术进行EGG数据分类
  17. 「Python条件结构」嵌套if:实现奖学金评定
  18. 全网营销优势在于打造营销闭环,全网营销的经典营销方式推荐
  19. Win10 LTSC 2021的BUG处理
  20. 第2天:程序设计语言的极简介绍

热门文章

  1. OpenCV学习笔记九-Canny边缘检测
  2. 5.7 随机采样最小二乘法
  3. diffpatch升级_Linux diff创建补丁以及patch打补丁
  4. 深度学习(二十八)——SOM, Group Normalization, MobileNet, 花式卷积进阶
  5. 深度学习基础2(反向传播算法)
  6. 合并多个文本文件中的内容到一个文件中
  7. 常用的几种简单的内部排序方法
  8. jQuery.inArray()方法
  9. 用来枚举属性的对象工具函数
  10. 基于casperjs、resemble.js实现一个像素对比服务