美文网首页
Mysql第十章 - 计算字段

Mysql第十章 - 计算字段

作者: 足__迹 | 来源:发表于2024-08-14 17:44 被阅读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函数()函数

    定义:

    • RTrim()函数:去掉值右边的所有空格。
    • LTrim()函数:支持左边的所有空格。
    • 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

    相关文章

      网友评论

          本文标题:Mysql第十章 - 计算字段

          本文链接:https://www.haomeiwen.com/subject/uosskjtx.html