当前位置:Gxlcms > 数据库问题 > Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)

Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)

时间:2021-07-01 10:21:17 帮助过:22人阅读

1)select 语句中的运算使用列别名 如果显示数据库中存储的所有图书的列表时,需要将列标题显示为"Titil of books",可以在 select 子句中列名称的后面列出列别名。 sql:SELECT title AS "Title of books",category FROM books; 注意可选关键字 AS,以便区分列别名和列名称。 准则:如果列名称包含空格、特舒符号或者不希望全部以大写字母显示它,那么必须将它包含在 " " 中。如果只包含一个单词,则不需要 " " 。 2)使用 distinct 和 unique 删除重复的列。
2、伪列 1)Oracle 中伪列就像一个表列,但是它并没有存储在表中; 2)伪列可以从表中查询,但不能插入、更新和删除它的值; 3)常用的伪列有 ROWID 和 ROWNUM
ROWID:是表中行的存储地址,该地址可以唯一的标识数据库中的一行,可以使用 ROWID 伪列快速的定位表中的一行。
ROWNUM:是查询返回的结果集中行的序号,可以使用它来限制查询返回的行数。
3、常用的聚合函数(组函数) 也称为多行函数,他们能处理每一行并返回一个结果,常用组函数:SUM、AVG、COUNT、MIN、MAX。
聚合函数是对于所有记录进行聚合的,有时候我们需要先对记录分组再进行聚合。 对记录的分组是通过关键字 GROUP BY 实现的,如:group by f1,f2,f3,当且仅当两条记录在所有属性在 f1、f2、f3 上达成一致,它们才是同一组的。 例:每一类图书的平均利润 sql:SELECT category,TO_CHAR(AVG(retail - cost),‘999.99‘)as profit FROM books GROUP BY category.
GROUP BY 字句注意事项 1、如果在 select 子句中使用一个组函数,那么在 select 子句中列出的单独的列必须在 GROUP BY 子句中列出 2、用来在 group by 子句中分组数据的列不必在 select 子句中列出,在 select 子句中包括它们只是为了在输出中指定组; 3、不能在 group by 子句中使用列别名 4、从包括 group by 子句的 select 语句返回的结果将以在 group by 子句中列出的列的升序显示结果,要想以不同的顺序显示结果,可以使用 order by 子句。
HAVING 子句 1、用来限制一个查询返回的组; 2、如果需要使用组函数来限制组,那么必须使用 having 子句,因为 where 子句不能包含组函数。Having 子句指定了那些将显示在结果中。即: having 子句充当了组的 where 子句。 例:显示平均利润超过 15 美元的图书的种类 sql:SELECT category,TO_CHAR(AVG(retail - cost),‘999.99‘)as profit FROM books GROUP BY category Having AVG(retail-cost)>15.
ORDER BY子句 1、用于末尾,默认升序
次排序 1、ORDER BY 子句只指定一列时,称为"主排序",如果住排序中的两行或更多行完全相同,那么次排序提供了另一个进行排序的手段。 例:查询按州降序排列的客户,有多个居住在某个特定州的客户时,将按城市的升序对客户排序。 sql:SELECT lastname,firstname,city,state FROM customers ORDER BY state desc,city;

版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle(零)--> 伪列和分组聚合(Oracle 开篇,比较初级啦~)

标签:伪列   分组聚合   

人气教程排行