Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 数据库 > Oracle > 正文

linux安装orcale四视图、存储过程

时间:2014-05-30 17:57 来源:未知 作者:www.51ou.com 阅读:

1、视图的介绍和使用

       表和视图的区别,表是占用硬盘空间物理表,而视图可以理解为一个虚表,并不存储在硬盘上,

不占用硬盘空间,实际上就是一个查询语句,方便查询。

       对视图里面的数据操作(增 删 改) 其实就是对真实的表 增 删 改, 它们始终保持一致性。

       哪为什么还需要视图 ?

       视图可以理解成一个封装过的表, 例如不让用户 清楚知道表的某些字段信息,比较安全。

===========

 

下面进行操作 演示

 

 

CREATE TABLE xue_sheng( id integer, xing_ming varchar(25),xing_bie number, fen_shu number, b_id integer);

 

INSERT INTO xue_sheng VALUES(1,'ZhanSan',1,80,1);

 

INSERT INTO xue_sheng VALUES(2,'LiSi',1,90,2);

 

INSERT INTO xue_sheng VALUES(3,'ZhanHong',0,75,2);

 

INSERT INTO xue_sheng VALUES(4,'ChenXiaoMing',1,85,1);

 

增加一个视图:

SQL> CREATE VIEW xs_view AS SELECT * FROM xue_sheng;

CREATE VIEW xs_view AS SELECT * FROM xue_sheng

           *

ERROR at line 1:

ORA-01031: insufficient privilegesscott  没有创建视图的权限

 

更改用户为sysdba

----------------------------------

SQL> conn /as sysdba

Connected.

SQL> grant connect,dba to scott;    赋予权限;

Grant succeeded.

 

SQL> conn scott/tiger

Connected.

 

SQL> CREATE VIEW xs_view AS SELECT * FROM xue_sheng;

View created.

 

------------------------------

#对比表和视图,一模一样

wKiom1NfKpqDMrrJAAA08uFVGCo579.png

#插入一条数据可以发现,对视图增删改,就是对表增删改;

wKiom1NfK1zTUy24AABJMO8IIQs350.png

 

#设置视图权限

CREATE OR REPLACE 的使用 和 设置视图的权限 WITH READ ONLY 只读

如果视图不存在,则创建视图;如果视图存在则替换视图;

修改原来的视图, 其实就是做一个替换

修改视图为只读权限

CREATE OR REPLACE VIEW xs_view AS SELECT * FROM xue_sheng WITH READ ONLY;

wKioL1NfLWXgoMzTAAAvama0rjM213.png

提示这是一个 read-only view 只读的视图

 

#创建一个带条件的视图

wKioL1NfLqKTxOEfAABBbRs4Cv8973.png

 

#再增加一个班级表

CREATE TABLE ban_ji( id integer , ban_ji varchar(25));

 

INSERT INTO ban_ji VALUES(1,'1-(1)');

 

INSERT INTO ban_ji VALUES(2,'1-(2)');

 

INSERT INTO ban_ji VALUES(3,'1-(3)');

 

建立一个简单的视图, 取代复杂的查询语句,创建一个视图用于临时存放查询结果,而且以后需要对查询的结果反复操作;

CREATE OR REPLACE VIEW xs_view AS SELECT x.id, xing_ming,ban_ji FROM xue_sheng x JOIN ban_ji b ON x.b_id=b.id;

 

SELECT * FROM xs_view;

 

显示视图的字段和数据类型

DESC xs_view;

wKioL1NfUePjiorBAABBbRs4Cv8310.png

 

2、存储过程

#定义

存储过程 - 执行一个任务,该任务包括了一系列的PL SQL语句,存储在数据库中,成为数据库一个对象。效率比较高的,但你创建一个存储过程它会进行一个判断编译的

#创建一个简单的存储过程,这个存储过程什么都不操作,NULL表示;

 

wKiom1NfUn-Ays71AAAQnNlEqbo848.png

is:声明一些变量;

#执行存储过程;

wKiom1NfU0HhODt7AAAYazTRG64203.png

以上2中方法执行存储过程,如果没有什么输出参数可以用第一种execute xs_proc;如果有输出参数,最好用第2中方法;

 

#存储过程显示信息

wKioL1NfVJ-ieLMuAAAueVC85HI780.png

输出要设置为ON , 才会把 hello 显示出来

 

#存储过程实例

CREATE TABLE xue_sheng( id integer, xing_ming varchar(25), yu_wen number,shu_xue number);

 

INSERT INTO xue_sheng VALUES(1,'ZhanSan',80,90);

 

INSERT INTO xue_sheng VALUES(2,'LiSi',85,87);

只带一个输入参数 ,把查询的结果显示出来

wKioL1NfWRPySJPCAAAwaCAWY2M548.png

当输入学生的名字, 就会把他的总分(语文+数学)显示出来。

wKiom1NfXozywOcgAABISNawbxg045.png

 

#输入参数 和 输出参数一起使用

wKioL1NfYWLypniKAAAqw7RYg0U309.png

wKioL1NfYWPwx4-gAAAa1c4grxw217.png

 

#维护存储过程

 

  1、查看过程状态

 

    SELECT object_name,status FROM USER_OBJECTS WHERE object_type='PROCEDURE';

 

  2、重新编译过程

 

    ALTER PROCEDURE xs_proc COMPILE;

 

  3、查看过程的源代码

 

    SELECT * FROM USER_SOURCE WHERE TYPE='PROCEDURE';

 

  4、删除存储过程

 

    DROP PROCEDURE xs_proc;

 

本文出自 “平哥_Jason” 博客,请务必保留此出处http://jasonliping.blog.51cto.com/471157/1404635

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《linux安装orcale四视图、存储过程》技术文章,《linux安装orcale四视图、存储过程》详细使用和说明,有时《linux安装orcale四视图、存储过程》可能不完善、敬请谅解!如果《linux安装orcale四视图、存储过程》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(1)
100%
踩一下
(0)
0%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片