`

Oracle数据库表、视图

 
阅读更多

一、数据库表常用操作

--建表,指定表空间
create table student(student_id number,student_name varchar2(20)) tablespace TS1;
--增加列
alter table student add (address varchar2(20));
--修改列
alter table student modify (address varchar2(30));
--删除列
alter table student drop column address;
--重命名列
alter table student rename column student_name to name;
--修改表空间
alter table student move tablespace users;
--删除数据表
drop table student;

 

二、 关系视图

--创建视图
create view v_emp as select * from emp; 

--with read only
--创建只读视图
create or replace view 视图名字 as 查询语句 with read only;

--强制创建视图,此时基础表并未创建
--提示:视图创建成功,但是存在编译错误
create or replace force view 视图名字 as 查询语句

--通过user_updatable_columns查看用户视图各列的可更新情况
--对于视图的更新 操作,只要该列可更新,就可以 利用视图进行更新
--对于插入和删除操作,必须所有列均可执行插入和删除操作,才能利用视图进行操作
select * from user_updatable_columns where lower(table_name)='v_emp';

--with check option
--为视图创建约束,约束的检查依据为where子句中的条件。
--对于修改操作、插入操作不符合该约束,将报错,禁止修改。
create or replace view 视图名字 as 查询语句 with check option;

--修改视图
create or replace view v_emp as select * from emp; 

--删除视图
drop view view_name

--查询视图,通过user_views实现
select * from user_views;

 

 

三、对象视图

1、Oracle中的对象类型与对象

使用对象的好处:
1.对象的特性,如:继承、封装等,为开发人员提供灵活的处理形式。
2.可以构造复杂的对象类型来封装复杂的多表查询。
3.对象的传输效率更高。
 

       定义一个类型的SQL语法如下:

create or replace type 对象类型名 as object(

   attribute1  datatype1,
   attribute2  datatype2,
   ...
   member function function1,
   member procedure procedure1,
   ...

)

    说明:

            type   定义类

            as object        继承自object类

            member function     定义成员函数

            member procedure  定义成员过程

2、对象视图

 

对象类型在数据库编程中有许多好处,但是有时,应用程序已经开发完成。为了迎合对象类型而重建数据表是不实现的。对象视图下是解决这一问题的优秀策略。


1.创建对象视图:

--with object oid(employee_id)    为对象视图指定对象标识符  employee_id是对象类型employee的属性
--of employee --视图基于对象类型employee

SQL> create or replace view ov_employee of employee --视图基于对象类型employee
  2  with object oid(employee_id) as  --为对象视图指定对象标识符
  3  select employee_id a_id ,employee_name ,employee_position from
  4  employees;
 
View created
 
SQL> desc ov_employee;
Name              Type         Nullable Default Comments
----------------- ------------ -------- ------- --------
EMPLOYEE_ID       NUMBER(2)    Y                        
EMPLOYEE_NAME     VARCHAR2(20) Y                        
EMPLOYEE_POSITION VARCHAR2(30) Y     

    
查对象视图信息:
SQL> select view_name, view_type from user_views
  2   where view_name='VW_EMPLOYEES' or view_name='OV_EMPLOYEE';
 
VIEW_NAME                      VIEW_TYPE
------------------------------ ------------------------------
OV_EMPLOYEE                    EMPLOYEE
VW_EMPLOYEES   

               

2.更新视图
同样映射为更新表
SQL>  insert into ov_employee values(
  2   employee(20,'jjluu,'数据库工程师'));  --实例化一个employee对象
 
1 row inserted
 
SQL> select * from ov_employee;
 
EMPLOYEE_ID EMPLOYEE_NAME        EMPLOYEE_POSITION
----------- -------------------- ------------------------------
          1 abc                  开发经理
          2 efd                   高级工程师
          3 ewf                  高级工程师
          4 ewe                 工程师
          5 sdee                工程师
          6 hgd                  测试工程师
          7 李四                 测试工程师
          8 王五                 测试工程师
         19 Jamaly              
         20 jjluu               数据库工程师
 
10 rows selected


 再查看原表:employees
SQL> select * from employees;
 

分享到:
评论

相关推荐

    Oracle数据库表与视图

    在Oracle数据库中,理解并熟练操作表和视图是至关重要的,因为大多数数据库操作都涉及到对这些对象的管理。通过有效的表设计和视图的使用,可以提高数据的组织效率,提升查询性能,并确保数据的安全和一致性。在学习...

    连接其他oracle数据库信息创建本地视图

    这可以通过创建数据库链接(Database Links)实现,标题“连接其他Oracle数据库信息创建本地视图”正是围绕这一主题展开。数据库链接允许我们在一个Oracle实例中创建对另一个Oracle实例的逻辑连接,从而能够查询远程...

    用其它oracle数据库表内容创建本地视图

    在Oracle数据库环境中,有时候我们需要访问位于不同数据库实例中的数据。为了实现这一目标,Oracle提供了数据库链接(Database Link)的功能,通过该功能可以轻松地从一个数据库访问另一个数据库的数据。本文将详细...

    Oracle数据库视图管理

    ### Oracle数据库视图管理知识点详解 #### 一、Oracle数据库对象概述 在Oracle数据库中,数据对象主要包括表和视图,此外还有约束、序列、函数、存储过程、包、触发器等多种类型。这些数据对象构成了Oracle数据库...

    Oracle数据库表生成C#实体类

    "Oracle数据库表生成C#实体类"是一个实用的小工具,它的主要目的是自动化这个过程,避免开发者手动编写繁琐的实体类代码。虽然这个工具可能存在一些小问题,但它可以大大提高开发效率,尤其是在处理大量表结构时。 ...

    C# 实现oracle数据库视图的迁移

    本篇将详细讲解如何利用C#编程语言实现Oracle数据库视图的迁移。 首先,我们需要理解C#的基本语法和Oracle数据库的连接方式。C#提供了ADO.NET框架,通过System.Data.OracleClient或Oracle.ManagedDataAccess.Client...

    oracle数据库导出表结构到WORD文档

    "oracle数据库导出表结构到WORD文档"是一个实用的操作,它能够帮助我们生成包含所有表定义、字段信息、主键、外键等的详细报告。通过这个工具,我们可以快速地将Oracle中的数据库对象信息整理成Word文档,方便打印、...

    Oracle数据库大作业

    在Oracle数据库中实现这样的系统,需要进行数据库设计,包括实体关系模型(ER模型)的构建,确定数据表的结构、字段、主键和外键等关键元素,以确保数据的一致性和完整性。 在PPT中,可能详细阐述了需求分析、系统...

    通过MSQL通过视图访问ORACLE中的表

    本篇主要介绍如何通过MySQL数据库创建视图来访问Oracle数据库中的表,实现数据的互联互通。 首先,我们要理解MySQL和Oracle之间的数据集成。由于它们是两个不同的数据库系统,直接的SQL查询并不能实现跨库操作。...

    Oracle数据库体系结构( 中文详细版)

    1. **数据文件**(Data Files):数据文件是Oracle数据库存储实际数据的地方,包含了表、索引、视图等对象的数据。每个表空间由一个或多个数据文件组成,每个数据文件中包含一系列的数据块,这是Oracle数据存储的...

    Oracle数据库中物化视图的原理剖析

    Oracle数据库中的物化视图(Materialized View,简称MV)是一种强大的优化工具,它通过预先计算并存储查询结果,提供了一种快速访问复杂查询数据的方式。这种技术在数据仓库环境中尤其有用,因为数据仓库通常涉及...

    ORACLE数据库 ORACLE数据库

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本篇...

    geoserver2.14.0 oracle 数据库连接

    4. **导入Shapefile数据**:在Oracle数据库中,可能已经将Shapefile数据导入为一个表或者视图。在GeoServer中,你需要知道这个表或视图的名称,以便在数据源配置时引用。在“工作空间”->“图层”->“添加新图层”中...

    Oracle数据库试题100题(附答案)

    Oracle数据库的逻辑结构包括表空间、段、区和数据块,其中表空间是数据库中的一个逻辑存储单元,段是表空间中分配的逻辑存储区域,区是段中分配的一系列连续的数据块,数据块是Oracle数据库中最小的存储单位。...

    Oracle数据库开发和设计规范

    Oracle 数据库开发和设计规范中,命名约定是指对数据库、数据库对象如表、字段、索引、序列、存储过程等的命名约定。命名约定要求使用富有意义的英文词汇,尽量避免使用缩写,多个单词组成的,中间以下划线分割。...

    Oracle数据库资料大全

    Oracle数据库是全球最广泛使用的商业关系型数据库管理系统之一,由美国甲骨文公司(Oracle Corporation)开发和维护。Oracle数据库以其高效、稳定和强大的功能在金融、电信、医疗、政府等多个领域得到广泛应用。本...

    Oracle数据库.pdf

    Oracle数据库管理是数据库管理员(DBA)日常工作中不可或缺的一部分,涉及到用户管理、系统参数配置、表空间操作等多个方面。在Oracle环境中,以下是一些关键的知识点: 1. **用户管理**: - `ALTER USER`语句用于...

    oracle实验二视图

    Oracle 是一种关系数据库管理系统,广泛应用于各个行业中。本实验主要介绍了 Oracle 中的视图概念和操作。 一、什么是视图? 视图是一种虚拟表,基于一个或多个基本表,它们之间可以是一对一、多对一、多对多的...

    数据库开发 Oracle数据库 SQL开发教程 全套PPT课件 共20个章节.rar

    数据库开发 Oracle数据库 SQL开发教程 第15章 视图(共23页).pdf 数据库开发 Oracle数据库 SQL开发教程 第16章 序列、索引、同义词(共34页).pdf 数据库开发 Oracle数据库 SQL开发教程 第17章 用户、权限和角色...

Global site tag (gtag.js) - Google Analytics