Top-N分析

查询最大的几个值的 Top-N 分析: 

SELECT [column_list], ROWNUM  
FROM   (SELECT [column_list] 
        FROM table
        ORDER  BY Top-N_column)
WHERE  ROWNUM <=  N;

注意: 对 ROWNUM 只能使用 < 或 <=, 而用 =, >, >= 都将不能返回任何数据。

#创建视图

CREATE VIEW	dept_sum_vu
  (name, minsal, maxsal, avgsal)
AS SELECT	 d.department_name, MIN(e.salary), 
             MAX(e.salary),AVG(e.salary)
   FROM      employees e, departments d
   WHERE     e.department_id = d.department_id 
   GROUP BY  d.department_name;

修改视图

CREATE OR REPLACE VIEW empvu80
  (id_number, name, sal, department_id)
AS SELECT  employee_id, first_name || ' ' || last_name, 
           salary, department_id
   FROM    employees
   WHERE   department_id = 80;

CREATE VIEW 子句中各列的别名应和子查询中各列相对应

索引

以下情况可以创建索引:

列中数据值分布范围很广

列经常在 WHERE 子句或连接条件中出现

表经常被访问而且数据量很大 ,

访问的数据大概占数据总量的2%到4%

CREATE INDEX 	emp_last_name_idx
ON 		employees(last_name);

注意:由于查询的速度快了,插入的速度就会慢。因为插入数据的同时,还需要维护一个索引,所以,表经常更新的时候不要创建索引。

猜你喜欢

转载自blog.csdn.net/weixin_38110091/article/details/88423327
今日推荐