oracle的数据对象
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的数据对象的更多相关文章
- oracle中的数据对象
oracle中的数据对象有表.视图.索引.序列等 表的相关操作 1.创建表 方式一: 方式二:create table person( create table person1 id number(1 ...
- Oracle 常用的SQL语法和数据对象
一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSE ...
- Oracle 之——子查询 DDL DML 集合 及其他数据对象
Oracle 学习笔记(二) 知识概要: 1.子查询 2.集合操作 3.DML语句操作 4.其他数据库对象 1.子查询 查询工资比SCOTT高的员工信息 1 select * 2 from emp ...
- Oracle索引梳理系列(一)- Oracle访问数据的方法
版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...
- 关于 Oracle 的数据导入导出及 Sql Loader (sqlldr) 的用法
在 Oracle 数据库中,我们通常在不同数据库的表间记录进行复制或迁移时会用以下几种方法: 1. A 表的记录导出为一条条分号隔开的 insert 语句,然后执行插入到 B 表中2. 建立数据库间的 ...
- 使用JDBC处理Oracle大数据
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- [转]oracle 10g数据泵之impdp-同时导入多个文件
要了解impdp,请先了解导出,我之前作过导出的笔记:oracle 10g数据泵之expdp.这两个笔记也许只对程序员有用,通常用于把正式区的数据导入到测试区,对数据库管理员也许帮助不大,他们使用这些 ...
- 利用jdbc处理oracle大数据---大文件和二进制文件
一.Oracle中大数据处理 在Oracle中,LOB(Large Object,大型对象)类型的字段现在用得越来越多了.因为这种类型的字段,容量大(最多能容纳4GB的数据),且一个表中可以有多个这种 ...
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...
随机推荐
- Linux学习总结(九)-源码包和rpm包安装
一.源码包安装 通常办法是安装三部曲:./configuremakemake install但是具体还要根据包里面的帮助文档操作./configure --help 可以查看可以带什么参数,比如--p ...
- Mabatis入门案例
log4j.properties # Global logging configuration #\u5728\u5f00\u53d1\u9636\u6bb5\uff0c\u8bbe\u7f6e\u4 ...
- hdu 1010(迷宫搜索,奇偶剪枝)
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1010 Tempter of the Bone Time Limit: 2000/1000 MS (Ja ...
- JQuery手写一个简单的分页
效果图: 大概思路:使用ul进行初始布局,每一次点击事件改变li里的值.完整的代码在gitup上:https://github.com/anxizhihai/Paging.gitcss部分: html ...
- 前端基础-CSS如何布局以及文档流
一. 网页布局方式 二. 标准流 三. 浮动流 四. 定位流 一. 网页布局方式 1.什么是网页布局方式 布局可以理解为排版,我们所熟知的文本编辑类工具都有自己的排版方式, 比如word,nodpad ...
- 基于LSB的图像数字水印实验
1. 实验类别 设计型实验:MATLAB设计并实现基于LSB的图像数字水印算法. 2. 实验目的 了解信息隐藏中最常用的LSB算法的特点,掌握LSB算法原理,设计并实现一种基于图像的LSB隐藏算法. ...
- 新人成长之入门Vue.js弹窗Dialog介绍(二)
前言 在上一篇博文中介绍了Vue.js的常用指令,今天总结归纳一下弹窗Dialog的使用,弹窗经常被使用在一些表单的增删改查啊,或者弹出一些提示信息等等,在保留当前页面状态的情况下,告知用户并承载相关 ...
- 小白CSS学习日记-----杂乱无序记录(3)
1.后代选择器 .antzone li { } class='antzone' 所有子孙后代中的li 2.子选择器 .antzone > li { } class='antzone' 的子一 ...
- Waltz of love
Waltz of love Love me tenderly Love me softly Close your eyes,fling to the dangcing hall Follow your ...
- linux静态链接库
库 库是写好的现有的,成熟的,可以复用的代码.现实中每个程序都要依赖很多基础的底层库,不可能每个人的代码都从零开始,因此库的存在意义非同寻常 本质上来说库是一种可执行代码的二进制形式,可以被操作系统载 ...