Mysql第十章 - 计算字段

2024-08-14  本文已影响0人  足__迹

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

字段(filed)

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

客户机与服务器的格式 :

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

CONCAT :拼接(concatenate) 将值联结到一起构成单个值

在MySQL的SELECT语句中,可使用Concat()函数来拼接两个列。

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

举例:
输入:
select CONCAT(p.person_name,'(',p.biz_code ,')') FROM pi_trades.patient p
输出:


基础.png

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

Trim函数()函数

定义:

--- 基础查询
select  CONCAT(p.person_name,'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'
--- 去除患者姓名右边的空格
select  CONCAT(RTRIM(p.person_name),'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'
--- 去掉患者姓名左边的空格
select  CONCAT(LTRIM(p.person_name),'(',p.biz_code  ,')')  FROM  pi_trades.patient p 
WHERE p.person_name like'%郝忠平%'

别名(alias)

定义:SQL支持列别名。别名(alias)是一个字段或值的替换名。别名用AS关键字赋予
输入:
select CONCAT(LTRIM(p.person_name) ,'(',p.biz_code ,')') AS 患者姓名 FROM pi_trades.patient p
WHERE p.person_name like'%郝忠平%'
输出:


image.png

分析:
SELECT语句本身与以前使用的相同,只不过这里的语句中计算字段之后跟了文本“患者姓名”。它指示SQL创建一个包含指定计算的名为“患者姓名”的计算字段。

执行算术计算

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

select prod_id,quantity,item_price from orderitems where order_num=20005

输出:


image.png

item_price列包含订单中每项物品的单价。如下汇总物品的价格(单价乘以订购数量):
输入:
select prod_id,quantity,item_price ,quantityitem_price AS expanded_price from orderitems where order_num=20005
分析:
输出中显示的expanded_price列为一个计算字段,此计算为quantity
item_price。客户机应用现在可以使用这个新计算列,就像使用其他列一样

image.png
上一篇下一篇

猜你喜欢

热点阅读