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;