pl/sql基础入门之视图和索引
pl/sql:过程语言(procedure language)和结构化语言(structured query language)结合而成的语言,是对sql的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与oracle服务器和oracle工具紧密集成,具有可移植性,灵活性和安全性。
—————————————————————————————————–
视图:
/*
视图:经过以制定的方式显示来自一个或多个表的数据
可以视为”虚拟表”或”存储的查询”
创建视图所依据的表为基表
优点:1.提供了另外一种级别的安全性;
2.隐藏数据的复杂性;
3.简化用户的sql语句;
4.隔离基表的变化
5.通过重命名列,从另外一个角度提供对数据的访问。
*/
–穿件视图,关键字view as
create or replace view emp_view -- 要有创建view的权限 as select ename,sal,dname from emp,dept where emp.deptno = dept.deptno;
–从视图中查询
select * from emp_view;
–删除视图
drop view emp_view;
/*
连接视图查询与多表连接查询相似,因为可以将视图当做虚拟表,只是有一些限制:
1.只能修改一个底层的基表
2.如果修改违反了基表的约束条件,则无法更新视图
3.如果视图包含连接操作符、distinct关键字、集合操作符、聚合函数或 group by子句,则将无法更新视图
4.如果视图包含伪列或表达式,则将无法更新视图
*/
—————————————————————————————————————–
索引:
/*
索引:索引是与表相关的一个可选结构
创建索引的优点:1.减少磁盘的i/o
2.能提高查询语句的执行能力
注意:建立不必要的索引会造成写入数据的性能开销以及磁盘空间的浪费
*/
— 1.创建标准索引
create index emp_index on emp(ename);-- 注意不能用or replace alter index emp_index rebuild;--重构索引 drop index emp_index;--删除索引
–创建唯一索引
create unique index dept_uniqueindex on dept(dname); drop unique index dept_uniqueindex;