初识Mysql(part8)--我需要知道的5个关于计算字段的小知识
学习笔记,以代码和例子堆砌而成,方便查阅。
参考书籍:《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个关于计算字段的小知识相关推荐
- 初识Mysql(part14)--我需要知道的6个关于创建表的小知识
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:CREATE TABLE.主键.NULL.AUTO_INCREMENT.默认值.引擎 创建一个表 My ...
- 初识Mysql(part16)--我需要知道的2条Mysql语句之子查询
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 此Blog会用到下面3个表. temp_store表: # pr_id, store_num '1001', ...
- 初识Mysql(part12)--我需要知道的3条Mysql语句之插入数据
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:INSERT INTO子句 此Blog里的例子都会用下面的grouping表和grouping2表. ...
- 初识Mysql(part19)--我需要知道的3条Mysql语句之组合查询
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UNION.UNION ALL 此Blog会用到下面2个表. temp_product2: # id, ...
- 初识Mysql(part18)--我需要知道的4个关于联结的小知识点
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:表别名,自链接,外连接,聚合函数与联结 此Blog会用到下面2个表. temp_product表: # ...
- 初识Mysql(part17)--我需要知道的3条Mysql语句之联结
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:联结.INNER JOIN.ON关键字 此Blog会用到下面3个表. temp_store表: # p ...
- 初识Mysql(part15)--我需要知道的4条Mysql语句之操作表
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:ALTER关键字.RENAME关键字.DROP关键字.ADD关键字 此Blog里的例子都会用下面的te ...
- 初识Mysql(part13)--我需要知道的7条Mysql语句之更新和删除数据
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:UPDATE关键字.IGNORE关键字.DELETE关键字.TRUNCATE TABLE语句 此Blo ...
- 初识Mysql(part11)--我需要知道的4条Mysql语句之分组
学习笔记,以代码和例子堆砌而成,方便查阅. 参考书籍:<Mysql必知必会>等 要点:GROUP BY子句.HAVING关键字 此Blog里的例子都会用下面grouping数据表: # i ...
最新文章
- 应用vb编程_用VB编程来解决实际生活问题
- Windows 2008 R2+iis7.5环境下Discuz!X3论坛伪静态设置方法
- [转]JavaScript代码收集
- GitLab 8.15中引入了自动部署和Web终端
- 利用vagrant快速搭建rails开发环境
- C#并发实战Parallel.ForEach使用
- 跨域(Cross-Domain) AJAX for IE8 and IE9
- [css] 如何将元素的所有css属性恢复为初始化状态?
- BugkuCTF-WEB题文件上传
- 《Python程序设计开发宝典》全面上架(新书超低价优惠+转发积攒送书)
- 数据结构:邻接表法存储有向图
- sql group by统计
- zynq以太网官网例子调试
- 箱线图怎么判断异常值_箱线图(Box-plot)中,异常值很多说明什么?
- nvidia windows linux,NVIDIA首发OpenGL 3.1驱动 全面支持Windows/Linux
- 用脑电波控制智能假肢:如何利用深度学习技术进行EGG数据分类
- 「Python条件结构」嵌套if:实现奖学金评定
- 全网营销优势在于打造营销闭环,全网营销的经典营销方式推荐
- Win10 LTSC 2021的BUG处理
- 第2天:程序设计语言的极简介绍