to_char(hire_date,"yyyy")=1997
group by to_cahr(hire_date,"mm")
having cout(*)>3//having只能在分组后使用
先找97年,之后按月份组...,显示月份,及人数总数,最后having>3,也可以先月份分组,在havin中选97年 切count>3
where 与having区别
功能上:where对原始表的数据(from后的表)进行过滤,having...by:排序永远放在最后执行
伪列
oracle独有的pl-sql的内容
rowid
根据数据在硬盘中存储的物理地址计算得来,
作用:数据的默认索引,底层使用
rownum对查询结果进行编号,与where...,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引
应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描
如:select...避免在索引列上使用计算,也就是说,应尽量避免在 where 子句中对字段进行表达式操作和函数操作,这将导致引擎放弃使用索引而进行全表扫描。