oracle的数据对象包括表、视图、约束、序列、索引、函数、存储过程、包和触发器等。

这里主要介绍视图、序列、索引、触发器、存储过程

视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。

一般视图上不用建立索引,对视图的操作最终会转化为对表的操作。

 CREATE [OR REPLACE] [FORCE|NOFORCE] ---- FORCE:不管基表是否存在ORACLE都会自动创建该视图;
---- NOFORCE:只有基表都存在ORACLE才会创建该视图
VIEW view_name [(alias[, alias]...)] ---- 为视图产生的列定义的别名 AS subquery ---- 一条完整的SELECT语句,可以在该语句中定义别名 [WITH CHECK OPTION [CONSTRAINT constraint]] ---- 插入或修改的数据行必须满足视图定义的约束 [WITH READ ONLY] ----该视图上不能进行任何DML操作 --例如
create or replace view myview(ename,job,sal,dname)
as
select ename,job,sal,dname from emp,dept
where emp.deptno = dept.deptno
with read only;

序列 是oacle提供的用于产生一系列唯一数字的数据库对象。

序列主要是为了提供表的主键值。

序列的语法:

 CREATE SEQUENCE sequence  //创建序列名称

        [INCREMENT BY n]  //递增的序列值是n 如果n是正数就递增,如果是负数就递减 默认是1

        [START WITH n]    //开始的值,递增默认是minvalue 递减是maxvalue

        [{MAXVALUE n | NOMAXVALUE}] //最大值

        [{MINVALUE n | NOMINVALUE}] //最小值

        [{CYCLE | NOCYCLE}] //循环/不循环

        [{CACHE n | NOCACHE}];//分配并存入到内存中
--------------------------------------------------
--例如:------------------------------------------
create sequence myseq start with 1
increment by 1 maxvalue 20
cache 10 cycle;

新建的序列,使用序列的值必须先调用序列的nextval值,否则会报错。

如果myseq的起始值为1,则第一次执行select myseq.nextval from dual;的值就是1

select myseq.currval from dual;序列的当前值

索引的概念

1、类似书的目录结构;

2、 Oracle 的“索引”对象,与表关联的可选对象,提高SQL查询语句的速度;

3、 索引直接指向包含所查询值的行的位置,减少磁盘I/O;

4、 与所索引的表是相互独立的物理结构;

5、 Oracle 自动使用并维护索引,插入、删除、更新表后,自动更新索引;

6、 语法:CREATE INDEX index ON table (column[, column]...);

7、 B-tree结构(非bitmap);

索引的具体解释参考:

https://www.oschina.net/question/30362_4057

触发器分为语句级触发器和行级触发器

语句级的触发器可以在某些语句执行前或执行后被触发;

行级触发器则是在定义的了触发的表中的行数据改变时就会被触发一次。

行级触发器是按触发语句所处理的行激发的,可以引用受到影响的行值。创建触发器时采用关键字FOREACHROW
  这种访问是通过两个相关的标识符实现的
  :old:用于存放未进行修改前的数据
  :new:用于存放进行修改后的数据

create or replace trigger tri_insert
before insert on goods
for each row
begin
select seq_id.nextval into :new.id from dual;
end;

参考链接:

http://www.cnblogs.com/linjiqin/archive/2012/04/01/2429144.html

https://blog.csdn.net/indexman/article/details/8023740/

存储过程

oracle的数据对象的更多相关文章

  1. oracle中的数据对象

    oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(1 ...

  2. Oracle 常用的SQL语法和数据对象

    一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……);  INSE ...

  3. Oracle 之——子查询 DDL DML 集合 及其他数据对象

    Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1  select * 2  from emp ...

  4. Oracle索引梳理系列(一)- Oracle访问数据的方法

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  5. 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法

    在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...

  6. 使用JDBC处理Oracle大数据

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  7. [转]oracle 10g数据泵之impdp-同时导入多个文件

    要了解impdp,请先了解导出,我之前作过导出的笔记:oracle 10g数据泵之expdp.这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些 ...

  8. 利用jdbc处理oracle大数据---大文件和二进制文件

    一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...

  9. Oracle基础 数据泵导出/导入Expdp/impdp(转)

    一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...

随机推荐

  1. 跟我一起写 Makefile (Linux )

    1.昨天 在 Linux 下用  touch  指令 新建了一个  hello.c 并且使用 vim 编辑器 写了代码 ,使用 gcc 指令编译 最后运行 成功了 .具体方式如下: 在Linux 根目 ...

  2. 不用循环,、es6创建一个长度为100的数组

    问题描述:在不使用循环的条件下,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标? 结果为: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1 ...

  3. EDA风格与Reactor模式

    本文将探讨如下几个问题: Event-Driven架构风格的约束 EDA风格对架构属性的影响 Reactor架构模式 Reactor所解决的问题 redis中的EventDriven 从观察者模式到E ...

  4. 解决Windows10下小娜无法搜索本地应用的问题

    适用场景 小娜突然出现各种问题.比如突然无法搜索到本地应用...等其它问题 一般使用下面的方法,将小娜进行重新注册就ok了. 解决方案 1.用管理员权限打开 C:\Windows\System32\W ...

  5. 09 OCP知识点讲解 之 LRU链与脏LRU链

    OCP知识点讲解 之 LRU链与脏LRU链 分类: Oracle 2012-06-30 10:49:26   一.LRU链: 任何缓存的大小都是有限制的,并且总不如被缓存的数据多.就像Buffer c ...

  6. Swift_销毁

    Swift_销毁 点击查看源码 销毁 func test() { class SomeClass { //类销毁时 通知此方法 deinit { print("销毁") } } v ...

  7. Git&GitHub-初步使用

    Git 1.安装 下载安装包,安装,默认安装了 Git GUI Here 和 Git Bash Here. 需要在哪里使用 git,只需在文件夹空白处右键,选择Git Bash Here即可打开 gi ...

  8. 最优贸易(tarjan,spfa)

    题目描述 C国有n个大城市和m 条道路,每条道路连接这 n个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 m 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的道 ...

  9. 【2018 ICPC亚洲区域赛徐州站 A】Rikka with Minimum Spanning Trees(求最小生成树个数与总权值的乘积)

    Hello everyone! I am your old friend Rikka. Welcome to Xuzhou. This is the first problem, which is a ...

  10. 阿里云Docker镜像仓库(Docker Registry)

    镜像仓库申请地址: https://cr.console.aliyun.com/cn-shanghai/instances/repositories   一.创建命名空间 例如daniel-hub   ...