视图
视图
创建视图 emp_view,连接system用户,将创建视图的权限授予用户
1 | GRANT CREATE VIEW to scott; |
创建带检查约束的视图。 建立一个部门员工薪水介于1000~3000元的员工信息SAL_MID视图。
1 | create view SAL_MID as select ename,job,sal from emp where sal between 1000 and 3000 with check option; |
创建只读视图。建立一个部门号为10的10员工的只读视图DEP_10。
1 | create view dep_10 as select ename,job,sal from emp where deptno=10 with read only; |
创建一个包含各部门的部门号、部门人数和部门平均工资的视图。
1 | create view sal_avg as select deptno ,avg(sal) avgsal,count(*) total from emp group by deptno; |
创建一个部门员工信息视图,此视图中包含员工名、部门名、工作职位、薪水等信息。
1 | create view emp_dept as select empno,ename,dname,job,sal from emp ,dept where emp.deptno =dept.deptno; |
更改视图emp_view
1 | create or replace view emp_view as select empno,ename,job,sal from emp; |
给emp_view重新命名为emp_view1.
1 | rename emp_view to emp_view1; |
删除视图emp_view
1 | drop view emp_view; |
查询SCOTT用户下的视图及视图定义信息。
1 | col view_name format a10; |
索引
从emp表上创建不同的索引。
1 | create index emp_idx on emp(ename); |
创建基于函数的索引。
1 | create index emp_fun_idx on emp(UPPER(ename)); |
建立一个大表,对表中数据进行查询操作,比较建立索引前后的系统开销。
①建立单独的表空间wb和单独的临时表空间wbtemp,创建用户wb并为其指定表空间wb和临时表空间wbtemp,用于存放大量数据。
1 | conn system/password |
②建立表emp1,并用pl/sql程序为其生成一百万行数据。
1 | grant connect,resource to wb; |
③通过计算表上的统计数据得到查询语句的开销。由于表中有大量的数据,为确保SQL*Plus显示查询的开销,而不显示查询结果。进行如下设置:
1 | analyze table emp1 compute statistics; |
④对empl表进行查询,从中获取一行数据,
1 | select id,name,phone from emp1 where id=849765; |
⑤在empl表的id列上创建索引,重新执行查询,
1 | create index idx_id on emp1(id); |
检查索引是否已经创建。
1 | select index_name from user_indexes where table_name='emp1'; |
使用SELECT查看表emp1的索引信息。
1 | select index_name,table_name,uniqueness,status from user_indexes where table_name='emp1'; |
修改idx_ id 索引。
1 | alter index idx_id rename to emp1_idx_id; |
删除idx_sex 索引。
1 | DROP index idx_sex; |
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.