Oracle 笔记(十)、视图、同义词、序列

简介:

一、视图
    视图是一条存储起来的 SELECT 语句,是数据的显示方式,通过视图可以限制用户访问行、列、或更新表内容。


1.1、基表
组成视图的表称为基表。在 Oracle 中,不能对有多个基表的视图进行更新,此类操作可以利用"替换触发器"完成。


1.2、视图的更新约束
[WITH CHECK OPTION] 选项可以约束 对视图更新值 符合 视图的WHERE条件。


1.3、只读约束
[WITH READ ONLY] 选项和 视图查询语句包含 GROPU BY/SUM 等聚合函数、DISTINCT 关键字时视图不允许更新。


1.4、查看视图内容
DESC user_views;
SELECT text FROM user_views WHERE view_name='V_READ';

一个视图的例子:

CREATE OR REPLACE VIEW myview
AS
SELECT * FROM books WHERE price>30
WITH CHECK OPTION;
/* 当利用视图插入一个 price<=30 的数据时会报错 */




二、同义词
同义词是一个对象的一个别名,利用同义词,可以方便的操纵不同用户模式下的对象,简化编码。

使用同义词之前要确保用户拥有访问该对象的权限。
当公有对象(公有同义词)和本地对象具有相同的名称时,本地对象优先。

● 公有同义词:DBA建立,所有用户共同拥有。CREATE PUBLIC SYNONYM ...
● 私有同义词:用户建立,使用与该用户(对象,可被授权)。

CREATE OR REPLACE SYNONYM dept  FOR scott.dept;
SELECT * FROM dept;

DESC user_synonyms;
SELECT synonym_name, table_name, table_owner FROM user_synonyms;



三、序列
    序列是用来生成唯一、连续的整数的数据库对象。它通常用来自动生成主键或唯一键。序列可以按升序、降序排列。
序列是一个独立型事务,不受提交或回滚事务影响。


3.1、创建

CREATE SEQUENCE sequence_name
  [START WITH integer]            /* 序列起始值,升序默认为最小值,降序默认为最大值 */
  [INCREMENT BY integer]        /* 递增量,默认为 1, */
  [MAXVALUE integer | NOMAXVALUE]    /* 最大值,默认为 NOMAXVALUE */
  [MINVALUE integer | NOMINVALUE]    /* 最小值,必须小于等于起始值和 小于最大值 */
  [CYCLE | NOCYCLE]            /* 序列到达最大值后是否循环,默认为 NOCYCLE 不循环 */
  [CACHE integer | NOCACHE];        /* 是否预分配序列号,默认缓存20个序列号 */


3.2、访问
  NEXTVAL 伪列:返回一个新的序列值。
  CURRVAL 伪列:内存中最后一次引用 NEXTVAL 的返回值,也就是序列的当前值。

INSERT INTO t1 VALUES(t1_seq.NEXTVAL, 'aaa');
SELECT t1_seq.CURRVAL FROM dual;


3.3、修改
    序列建立后只能修改 最大/最小值、增量值、序列号缓存大小,不能修改起始值,并且保证序列最大/最小值符合规则。


3.4、查看
DESC user_sequences;
SELECT * FROM user_sequences WHERE SEQUENCE_NAME = 'T1_SEQ';


本文转自 qvodnet 51CTO博客,原文链接:http://blog.51cto.com/bks2015/1982994
相关文章
|
运维 Oracle 容灾
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
Oracle dataguard 容灾技术实战(笔记),教你一种更清晰的Linux运维架构
|
Oracle 关系型数据库 数据库
oracle数据创建同义词
oracle数据创建同义词
173 1
|
SQL Oracle 关系型数据库
[oracle]使用impdp导入数据时卡在视图
[oracle]使用impdp导入数据时卡在视图
605 2
|
缓存 Oracle 关系型数据库
[oracle]序列
[oracle]序列
139 1
|
Oracle 关系型数据库 Java
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
mybatis使用statement.getGenreatedKeys(); useGeneratedKeys=”true”;使用自增主键获取主键值策略和Oracle不支持自增,Oracle使用序列
276 9
|
运维 DataWorks Oracle
DataWorks产品使用合集之在标准模式下,当同步Oracle的表或视图时,是否需要在源端的测试和生产环境中都存在要同步的表或视图
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
193 3
|
Oracle 关系型数据库 Java
Oracle 19c 查看隐含参数视图
Oracle 19c 查看隐含参数视图
344 7
|
Oracle 关系型数据库 数据管理
Oracle序列:数据世界的“自动售货机”
【4月更文挑战第19天】Oracle序列是数据库中生成唯一数值的关键工具,比喻为数据世界的“自动售货机”。它提供有序、唯一的序列号,适用于需要唯一标识符的场景,如订单号和员工编号。通过设定起始值、增量和最大值,序列能自动化产生新号码,提高效率并减少错误。然而,使用时需注意设置恰当的属性以适应业务需求,并解决并发访问时的冲突问题。熟练掌握序列使用对数据管理至关重要。
|
Oracle 关系型数据库 数据库
oracle基本操作笔记分享
oracle基本操作笔记分享
162 0
|
SQL 缓存 Oracle
Oracle中序列Sequence详解
Oracle中序列Sequence详解

推荐镜像

更多