zoukankan      html  css  js  c++  java
  • 1.3(SQL学习笔记)计算字段及函数

    一、计算字段

      1.1拼接字段

      一般情况下返回的字段是指定列的属性名。如果有时我们对返回格式有特殊要求。

      例如,我们需要将显示商品名,即商品价格,同时商品名后面的价格放在括号内。

      prod_name(prod_price) 以这种方式显示数据。

      这时我们就需要使用拼接字段。

      

      

      

      可以看到显示的 数据是以prod_name(prod_price)的格式显示的。  

      实现这个功能的过程中使用了一个函数:CONCAT(str1,str2,...)。

      该函数将str1,str2,..拼接起来显示。

      1.2使用别名

      上例中的列名是SELECT语句后面的名称,但这个可读写不强。我们可以通过为改列指定一个别名

      然后显示的就是我们指定的别名了。别名通过as指定,as可省略不写。

      

      第一列的名称从CONCAT(prod_name, '(',prod_price, ')')变成了prod_name_price。

      指定别名可以使列名更具可读性。

      1.3字段计算

      例如有一列为单价,有一列为数量,我们需要返回一列总价,但是总价在表中并未存储。

      这时我们就可以单价*数量,这种方式间接的获取总价。

      

      

      通过quantity * item_price计算,并为其起一个别名total。

    二、函数

      2.1数据处理函数

      SQL提供一些函数,以便于对数据进行操作。

      但不同的数据库管理软件对函数的支持不一致,具体需查阅对应文档。

      

      2.1.1 UPPER()将文本内容转换为大写。

      

      

      

      2.1.2 YEAR() 获取数据类型为日期的年份,MONTH()获取数据类型为日期的月份,DAY()获取数据类型为日期的天数。

      

      获取数据类型为日期的年、月、日前提是改数据是日期类型,可以看到order_date的类型是datetiem.

      

      

      获取所有一月份的订单。

      SQL中还有很多函数,具体可查阅对应文档。

      

      2.2聚集函数

      聚集函数和前面的函数不同,它不返回全部的检索数据,只返回我们需要的数据。

      例如计算当前表有多少行,并不需要返回每一行,只需要返回一个总行数即可。

      同样计算指定列的最大值,也不需要返回所有列,只需要该列的最大值即可。

     

      2.2.1 AVG()

      计算平均值,只返回一个平均值

      

      

      

      计算prod_id为‘BR01’的item_price的平均值.

      

      2.2.2COUNT()

      用于计数,COUNT(*)对表中行数进行计数,null也计入总数中。

      COUNT(colName)对指定列进行计数,null不计入总数中。

      

      

      

      

      此时返回的是总行数5.

      

      

      此时返回的cust_email这一行,此时emali为空的行没有被记入总数。

      

      2.2.3MAX(),MIN()

      返回指定列中最大、最小值。

      

      

      prod_price的最大值与最小值。

      

      2.2.4SUM()

      计算指定列的和。

      

      

      SUM(price * quantity),计算单价*数量,然后通过SUM求和可以计算出所有总价。

      SELECT后可以跟随多个聚合函数

      SELECT AVG(colName), COUNT(colName), SUM(colName) FROM tableName;

      

      但不能这样写:

      SELECT AVG(colName), UPPER(colName) FROM tableName;

      UPPER不是聚集函数,返回的不是单个值,而是检索出来的所有结果进行大写转换。

      而AVG只返回一个值,这是冲突的。

      

    参考资料:

    《SQL必知必会》

  • 相关阅读:
    XPath使用示例
    CSS3中的弹性布局——"em"的用法
    Sublime Text3快捷键实用总结
    学习笔记——关于HTML(含HTML5)的块级元素和行级(内联)元素总结
    JavaScript中的伪数组理解
    深入理解浏览器兼容性模式
    javascript 中使用instanceof需要注意的一点
    用人工智能学习,凡亿推出PCB问题解答智能搜索机器人:pcb助手
    Altium中坐标的导出及利用坐标快速布局
    Altium中Logo的导入方法及大小调整
  • 原文地址:https://www.cnblogs.com/huang-changfan/p/10588347.html
Copyright © 2011-2022 走看看