oracle视图及其他对象操作

视图及其他对象操作

实验目的

 (1) 掌握视图的建立、查询、修改、删除操作。

 (2) 掌握同义词的建立、查询、修改、删除操作,比较对同义词的操作与对原数据库对象的操作是否一致。

 (3) 掌握序列的建立、查询、修改、删除操作,利用序列向数据库表中插入数据。

  

实验内容

1.创建视图

(1) 利用企业管理器为实现显示医保卡信息创建视图,该视图中包括医保卡信息、医保卡所属人信息和所属人单位信息,视图名为“ygbx_card_view”。

(1)

(2)利用SQL*Plus或iSQL*Plus为实现员工持医保卡到医院消费的功能创建视图,该视图中包括员工的信息、医保卡信息、医保信息和消费等信息,视图名为“consume_view”。

SQL> create view consume_view as select staff.sno,sname,ssex,sbirthday,

2  saddress,stel,staff.cno,staff.bno,ctype,cmoney,idate,imoney,see.hno,csdate,mname,mnum,csmoney

3  from staff,insurance,card,consume,see

4  where staff.sno=see.sno and see.hno=consume.cno and consume.cno=card.cno and card.cno=insurance.cno ;

(3) 利用SQL*Plus或iSQL*Plus为企业医保缴费信息功能创建视图,该视图中包括医保缴费的企业信息,医保卡信息和企业医保缴费费用等信息,视图名为“insurnce_view”。

SQL> create view insurance_view as select insurance.bno,bname,btype,baddress,btel,card.cno,ctype,cmoney,

2  hno,csdate,mname,mnum,csmoney

3  from insurance,business,card,consume

4  where insurance.bno=business.bno and insurance.cno=card.cno

5  ;

(4) 利用SQL*Plus或iSQL*Plus为企业表创建视图,视图名为“business_view”。

SQL> create view  business_view as

2  select bno,bname,btype,baddress,btel

3  from business;

2.查看视图

(1) 利用企业管理器查看“ygbx_user”方案下的视图。

(2) 利用企业管理器查看“consume_view”视图的信息。

(3)利用SQL*Plus或iSQL*Plus查看“card_view”视图的子查询语句。

SQL> select text from user_views where view_name=‘YGBX_CARD_UIEW‘

2  ;

(4)利用SQL*Plus或iSQL*Plus显示“insurance_view”视图的信息。

SQL> select view_name,view_type,read_only,text,text_length from user_views

2  where view_name=‘insurance_view‘

3  ;

3.视图数据的更新

(1) 利用SQL*Plus或iSQL*Plus向“business_view”插入一个记录,企业编号为“B1997010287”,企业名称为“格林制药”,企业类型为“企业”,企业地址为“鸭绿江街98号”,联系电话为“84692315”。

SQL> alter table business modify(bno char(20));

表已更改。

SQL> insert into business_view values(‘B1997010287‘,‘格林制药‘,‘企业‘,‘鸭绿江街98号‘,‘84692315‘);

已创建 1 行。

(2) 利用SQL*Plus或iSQL*Plus查看“business”表是否有变化。

SQL> select * from business;

4.删除视图

(1) 利用企业管理器删除“business_view”视图。

(2) 利用企业管理器删除“card_view”视图。

(3) 利用SQL*Plus或iSQL*Plus删除“consume_view”视图。

SQL> drop view consume_view;

(4) 利用SQL*Plus或iSQL*Plus删除“insurnce_view”视图。

SQL> drop view insurance_view;

5.创建同义词

(1) 利用企业管理器创建企业表同义词,名为“qyb”。

SQL> grant create public synonym to scott;

授权成功。

(2) 利用SQL*Plus或iSQL*Plus创建医保卡表的同义词,名为“ybk”。

SQL> create synonym ybk for card;

同义词已创建。

6.查询同义词

(1) 利用企业管理器查看同义词“qyb”。

(2) 利用SQL*Plus或iSQL*Plus查看同义词“ybk”。

SQL> select * from user_synonyms where synonym_name=‘ybk‘;

7.删除同义词

(1) 利用企业管理器删除同义词“qyb”。

(2) 利用SQL*Plus或iSQL*Plus删除同义词“ybk”。

SQL> drop synonym ybk;

同义词已删除。

8.创建序列

(1) 利用企业管理器创建序列,该序列最大值为“28000”,最小值为“60”,步长为“1”,可循环,序列名为“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus创建序列,该序列最大值无限制,最小值为“1”,步长为“10”,序列名为“ygbx_seq2”。

SQL> create sequence ygbx_seq2 nocycle noorder nomaxvalue minvalue 1

2  increment by 10 start with 1;

序列已创建。

9.查询序列

(1) 利用企业管理器查看序列“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus查看同义词“ygbx_seq2”。

SQL> select * from user_sequences where sequence_name=‘ygbx_seq2‘;

10.修改序列

(1) 利用企业管理器修改序列“ygbx_seq1”,将该序列最大值设为“82000”,最小值设为“100”,步长设为“5”。

最小值不能大于当前值,所以最小值为60

(2) 利用SQL*Plus或iSQL*Plus修改序列“ygbx_seq2”,将该序列最大值设为“1000”。

SQL> alter sequence ygbx_seq2 maxvalue 1000;

序列已更改。

11.删除序列

(1) 利用企业管理器删除序列“ygbx_seq1”。

(2) 利用SQL*Plus或iSQL*Plus删除序列“ygbx_seq2”。

SQL> drop sequence ygbx_seq2;

序列已删除。

附录:员工医疗保险系统表

表1 企业(business)表结构

表2医院(hospital)表结构

表3医保卡(card)表结构

表4员工(staff)表结构

表5就诊表(see)结构

表6消费(consume)表结构

表7医保(insurance)表结构

实验总结:

1. 可以采用CREATE OR REPLACE VIEW 语句修改视图,实质是删除原视图并重建该视图,但是会保留该视图上授予的各种权限。

2. 序列用于产生惟一序号的数据库对象,用于为多个数据库用户依次生成不重复的连续整数。通常使用序列自动生成表中的主键值。序列不占用实际的存储空间,在数据字典中只存储序列的定义描述。

3. 视图是从一个或多个表或视图中提取出来的数据的一种表现形式。在数据库中只有视图的定义,而没有实际对应“表”的存在,因此视图是一个“虚”表。当对视图进行操作时,系统根据视图定义临时生成数据。

4. 可以使用DROP VIEW语句删除视图。删除视图后,该视图的定义从数据字典中删除,同时该视图上的权限被回收,但是对数据库表没有任何影响。

5. 同义词是数据库中表、索引、视图或其他模式对象的一个别名。利用同义词,一方面为数据库对象提供一定的安全性保证,例如可以隐藏对象的实际名称和所有者信息,或隐藏分布式数据库中远程对象的位置信息;另一个方面是简化对象访问。

6. 视图创建后,就可以对视图进行操作,包括数据查询、DML操作等。因为视图是“虚表”,因此对视图的操作最终转换为对基本表的操作。

时间: 2024-10-13 23:29:04

oracle视图及其他对象操作的相关文章

使用SSH操作Oracle中BLOB大对象

package entity; /** * Bigobject entity. @author MyEclipse Persistence Tools */ public class Bigobject implements java.io.Serializable { // Fields private Integer id; private byte[] tblob; private String filename; // Constructors /** default construct

Oracle视图详解

转载自:http://blog.itpub.net/29785807/viewspace-1270120/ 一. 视图的定义 视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的.视图只有逻辑定义.每次使用的时候,只是重新执行SQL. 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中.那些用于产生视图的表叫做该视图的基表.一个视图也可以从另一个视图中产生. 视图的定义存在数据库中,与此定义相关的数据并没有再存一份于数据库中.通

oracle中的数据对象

oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(18), as name varchar2(5), select * from person age number(3), sex varchar2(4) ); 2.删除表 方式一:只会删除表中的内容,不会删除表结构truncate delete 方式二:删除表结构truncate table per

Oracle 10g 物理Dataguard日常操作维护(二)

3.3进程日志的监控操作 3.3.1 查看备库进程状态 SQL>select process,client_process,sequence#,status from v$managed_standby PROCESS   CLIENT_P  SEQUENCE#    STATUS ---------       --------     ---------- -      ----------- ARCH      ARCH            153       CLOSING ARCH 

Stripes视图框架Java对象属性验证和prototype.js Ajax的测试

Stripes视图框架Java对象属性验证,它允许对字段设置是否必须填写,对数字大小进行限制等.我用prototype.js Ajax 将验证后的数据及时地展示出来,下面来看程序. 1.编写User实体类 此用户共三个属性: name.email.age. package com.boonya.stripes.entity;      public class User {              private String name;              private String

oracle视图总结(创建、查询、修改、删除等)

视图定义: - -视图是一种虚表. - -视图建立在已有表的基础上, 视图赖以建立的这些表称为基表. - -向视图提供数据内容的语句为 SELECT 语句, 可以将视图理解为存储起来的 SELECT 语句. - -视图向用户提供基表数据的另一种表现形式 为什么使用视图? - -控制数据访问 - -简化查询 - -避免重复访问相同的数据 创建视图:在 CREATE VIEW 语句中嵌入子查询,子查询可以是复杂的 SELECT 语句 <span style="font-size:14px;&q

Oracle 视图简单介绍

Oracle视图的种类 关系视图 关系视图:Oracle视图是作为数据库对象存在的,因此,创建之后也可以通过工具或数据字典来查看视图的相关信息.这是大家常用的视图 如:create view 视图名称 as 查询语句|关系运算 http://blog.csdn.net/tianlesoftware/article/details/5530618 内嵌视图 内嵌视图:在from语句中的可以把表改成一个子查询,如:select a.id ,b.id from emp a,(select id fro

Oracle 视图

一:概念 视图是基于一张表或多张表或另外一个视图的逻辑表.视图不同于表,视图本身不包含任何数据.表是实际独立存在的实体,是用于存储数据的基本结构.而视图只是一种定义,对应一个查询语句.视图的数据都来自于某些表,这些表被称为基表.数据库中只在数据字典中存储对视图的定义. 二:优点 1.为用户集中数据,简化用户的数据查询和处理. 2.屏蔽数据库的复杂性,用户不必了解数据库的复杂性. 3.简化用户权限的管理,只授予用户使用视图的权限. 4.可以提高数据访问的安全性,通过视图往往只可以访问数据库中表的特

Javascript 笔记与总结(2-3)Javascript 运算符、控制结构与对象操作

[连接运算符 + ] <script> console.log(1+2+'a'+3+4); </script> 输出: 3a34 [逻辑运算符]返回的是最早能判断表达式结果的那个值 例① <script> var a = false; var b = 10; var c = true; var d = a || b || c; console.log(d); console.log(typeof(d)); </script> 输出: 10 number 例②