oracle视图、索引等

视图:
1、是一个数据库中的虚拟表
2、经过查询操作形成的结果
3、具有普通表的结构
4、不能实现数据的存储
5、对视图的修改将会影响实际的数据表
-- 视图创建
create or replace view v_emp_1 
as select empno,ename,sal from emp ;

--查询视图
select * from v_emp_1

--删除视图
drop view v_emp_1
create table product(
  pro_no number(5,0),
  pro_name VARCHAR2(40),
  pro_place VARCHAR2(40),
  pro_price NUMBER(8,2),
  sup_no NUMBER
)
create table supplier(
  sup_no number,
  sup_info VARCHAR2(40)
)
create or replace view v_emp_2 
as select p.*,s.sup_info from product p, supplier s where p.sup_no(+)= s.sup_no;
select * from v_emp_2
Oracle中的包:
什么是包:
包是有存储在一起的相关对象组成的pl/sql结构
用于逻辑组合相关的自定义类型、变量、游标、过程和函数
包的组成:
包的规范(又称包头)
用于定义常量、变量、游标、过程和函数等用户与程序的接口
可以在包内引用、也可以被外部程序调用
包的主体:
是包规范的实现,包括变量、游标、过程和函数等
包体内的内容不能被外部的应用程序调用
--创建包的规范 定义包头
create or replace package pac_emp
as

--声明存储过程 
procedure pro_emp(empno_ NUMBER,emp_ OUT emp%rowtype);

--声明一个函数
function fun_emp(empno_ NUMBER)
return emp%rowtype;
--结束语句
end;
数据库链:
是一个建立在本地的路径
用于方便地实现不同数据库之间的通信
--数据库链创建方式1
create database link link_test connect to scott identified by tiger

using '(DESCRIPTION =
    (ADDRESS_LIST =
         (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)))
         (CONNECT_DATA =(SERVICE_NAME = orcl))
    )';
    
--数据库链创建方式1
create database link link_test2 connect to scott identified by tiger

using 'TEST2';

--在 数据库\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN下的tnsnames.ora文件中添加新的链接实例,格式同上。
--例:TEST2 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
索引:
可以建立类似目录的数据库对象,实现数据快速查询
按照索引的存储结构分类:
1、B树索引
2、位图索引
3、反向键索引
按照索引值是否唯一分类:
1、唯一索引
2、非唯一索引
按索引列分类:
1、单列索引
2、组合索引
3、基于函数的索引
建立索引的列的特点:
1、经常需要搜索的列
2、主键列
3、经常用在链接的列
4、经常需要排序的列
5、经常出现在where子句的列
触发器:
什么是触发器:
触发器是一种过程,与表关系密切,用于保护表中的数据,当一个基表被修改时,触发器自动执行
触发器可实现多表之间数据的一致性和完整性
触发器的类型:
1、DML触发器:
oracle可以在DML语句进行触发,可以在DML操作前或操作后进行触发,并且可以对每个行或语句操作上进行触发
2、替代触发器:
由于在Oracle里,不能直接对由两个以上的表建立的视图进行操作。所以给出了替代触发器。它就是oracle 8i专门为进行视图操作的一种处理方法
3、系统触发器:
oracle从8i开始,提供了第三种类型的触发器叫系统触发器。它可以在oracle数据库系统的事件中进行触发,如oracle系统的启动与关闭等
--创建一个触发器
create or replace trigger tri_statistics_2
--在增删改操作emp1表后触发
after insert or update or delete on emp1
FOR EACH ROW
--增加FOR EACH ROW,说明创建的是行级触发器 
begin
  dbms_output.put_line('发生改变');
end;

set serveroutput on;
--修改一条emp1表数据
UPDATE emp1 set sal=2500 ;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值