zoukankan      html  css  js  c++  java
  • 第7课 创建计算字段

    第7课 创建计算字段

    7.1 计算字段

    计算字段并不实际存在于数据库表中。计算字段是运行时在SELECT语句内创建的。

    7.2 拼接字段

    拼接(concatenate)
    将值联结到一起(将一个值附加到另一个值)构成单个值。

    解决办法是把两个列拼接起来。在SQL中的SELECT语句中,可使用一个特殊的操作符来拼接两个列。根据你所使用的DBMS,此操作符可用加号(+)或两个竖杠(||)表示。在MySQL和MariaDB中,必须使用特殊的函数。

    说明:是+还是||?
    Access和SQL Server使用+号。DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||。详细请参阅具体的DBMS文档。

    下面是使用加号的例子(多数DBMS使用这种语法):

    SELECT vend_name + ' (' + vend_country + ')'
    FROM Vendors
    ORDER BY vend_name;
    

    下面是相同的语句,但使用的是||语法:

    SELECT vend_name || ' (' || vend_country || ')'
    FROM Vendors
    ORDER BY vend_name; 
    

    上面两个SELECT语句拼接以下元素:

    • 存储在vend_name列中的名字;
    • 包含一个空格和一个左圆括号的字符串;
    • 存储在vend_country列中的国家;
    • 包含一个右圆括号的字符串。

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

    为正确返回格式化的数据,必须去掉这些空格。这可以使用SQL的RTRIM()函数来完成,如下所示:

    SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
    FROM Vendors
    ORDER BY vend_name;
    

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

    说明:TRIM函数
    大多数DBMS都支持RTRIM()(正如刚才所见,它去掉字符串右边的空格)、LTRIM()(去掉字符串左边的空格)以及TRIM()(去掉字符串左右两边的空格)。

    使用别名

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

    SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')' 
           AS vend_title
    FROM Vendors
    ORDER BY vend_name;
    

    下面是MySQL和MariaDB中使用的语句:

    SELECT Concat(vend_name, ' (', vend_country, ')')
           AS vend_title
    FROM Vendors
    ORDER BY vend_name;
    

    它指示SQL创建一个包含指定计算结果的名为vend_title的计算字段。从输出可以看到,结果与以前的相同,但现在列名为vend_title,任何客户端应用都可以按名称引用这个列,就像它是一个实际的表列一样。

    说明:AS通常可选
    在很多DBMS中,AS关键字是可选的,不过最好使用它,这被视为一条最佳实践。

    7.3 执行算术计算

    计算字段的另一常见用途是对检索出的数据进行算术计算。

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

    SELECT prod_id,
           quantity,
           item_price,
           quantity*item_price AS expanded_price
    FROM OrderItems
    WHERE order_num = 20008; 
    

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

    7.4 小结

    这一课介绍了计算字段以及如何创建计算字段。我们用例子说明了计算字段在字符串拼接和算术计算中的用途。此外,还讲述了如何创建和使用别名,以便应用程序能引用计算字段。

  • 相关阅读:
    div+css 遮罩层
    高可用开源方案Heartbeat vs Keepalived
    nginx+keepalive 实现高可用负载均衡方案
    KeepAlive详解
    (转)高可用可伸缩架构实用经验谈 ---- 重要
    OpenStack与KVM的区别与联系
    架构师于小波:魅族实时消息推送架构
    抛开flash,自己开发实现C++ RTMP直播流播放器
    (转)C++实现RTMP协议发送H.264编码及AAC编码的音视频,摄像头直播
    (转)OC学习笔记 @property的属性 strong 和 weak 理解
  • 原文地址:https://www.cnblogs.com/zhangsonghui/p/12944453.html
Copyright © 2011-2022 走看看