刷题日记 | Oracle & MySQL

作者: 三金姐姐 | 来源:发表于2020-03-26 23:18 被阅读0次

    ©一颗斯特拉
    【注】
    1.标有❤️的是值得多做的题
    2.参考书:
    ①Oracle讲稿 BY帅气的朱老师
    菜鸟驿站-MySQL


    1251. 平均售价(3月26日)

    01 知识点

    1.别名

    当表名很长或者执行一些特殊查询的时候,为了方便操作,可以为表指定一个别名,用这个别名代替表原来的名称。
    为表指定别名的基本语法格式为:

    <表名> [AS] <别名>

    其中各子句的含义如下:
    <表名>:数据库中存储的数据表的名称。
    <别名>:查询时指定的表的新名称。
    AS关键字可以省略,省略后需要将表名和别名用空格隔开。
    注意:表的别名不能与该数据库的其它表同名。字段的别名不能与该表的其它字段同名。在条件表达式中不能使用字段的别名,否则会出现“ERROR 1054 (42S22): Unknown column”这样的错误提示信息。

    2.ROUND函数

    ROUND(x)函数返回最接近于参数 x 的整数。
    ROUND(x,y)函数对参数x进行四舍五入的操作,返回值保留小数点后面指定的y位。

    3.SUM函数

    SUM()是一个求总和的函数,返回指定列值的总和。

    • 如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0。
    • DISTINCT 运算符允许计算集合中的不同值。
    • SUM 函数忽略计算中的 NULL 值。
      SELECT 语句中,允许使用 GROUP BY 子句,将结果集中的数据行根据选择列的值进行逻辑分组,以便能汇总表内容的子集,实现对每个组而不是对整个结果集进行整合。
    4.分组查询

    一、语法格式如下:

    GROUP BY { <列名> | <表达式> | <位置> } [ASC | DESC]

    二、语法说明如下:
    <列名>:指定用于分组的列。可以指定多个列,彼此间用逗号分隔。
    <表达式>:指定用于分组的表达式。通常与聚合函数一块使用,例如可将表达式 COUNT(*)AS' 人数 '作为 SELECT 选择列表清单的一项。
    <位置>:指定用于分组的选择列在 SELECT 语句结果集中的位置,通常是一个正整数。例如,GROUP BY 2 表示根据 SELECT 语句列清单上的第 2 列的值进行逻辑分组。
    ASC|DESC:关键字 ASC表示按升序分组,关键字DESC表示按降序分组,其中ASC为默认值,注意这两个关键字必须位于对应的列名、表达式、列的位置之后。
    注意:GROUP BY 子句中的各选择列必须也是 SELECT 语句的选择列清单中的一项。

    三、对于 GROUP BY 子句的使用,需要注意以下几点:

    • GROUP BY 子句可以包含任意数目的列,使其可以对分组进行嵌套,为数据分组提供更加细致的控制。
    • GROUP BY 子句列出的每个列都必须是检索列或有效的表达式,但不能是聚合函数。若在 SELECT 语句中使用表达式,则必须在 GROUP BY 子句中指定相同的表达式。
    • 除聚合函数之外,SELECT 语句中的每个列都必须在 GROUP BY 子句中给出。
      若用于分组的列中包含有 NULL 值,则 NULL 将作为一个单独的分组返回;若该列中存在多个 NULL 值,则将这些 NULL 值所在的行分为一组。

    相关文章

      网友评论

        本文标题:刷题日记 | Oracle & MySQL

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