• Oracle 数据库对象


      数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作。前面已经接触过的数据库对象有表、用户等。 今天将学习更多的Oracle数据库对象

      同义词:就是给数据库对象一个别名。

      序列:Oracle中实现增长的对象。

      视图:预定义的查询,作为表一样的查询使用,是一张虚拟表。

      索引:对数据库表中的某些列进行排序,便于提高查询效率。

      ①同义词(通过同义词可以访问数据库对象)

      同义词(Synonym)是数据库对象的一个别名,Oracle可以为表、视图、序列、过程、函数、程序包等指定一个别名。同义词有两种类型:

      私有同义词:拥有CREATE SYNONYM权限的用户(包括非管理员用户)即可创建私有同义词,创建的私有同义词只能由当前用户使用。

      公有同义词:系统管理员可以创建公有同义词,公有同义词可以被所有用户访问。

      System用户访问Scott用户的Emp表

      SELECT ENAME,JOB,SAL FROM SCOTT.EMP WHERE SAL>2000

      管理员用户可以访问任何用户的数据库对象,SYSTEM用户访问SCOTT用户的EMP表时,必须使用SCOTT.EMP。

      ②序列

      序列(Sequence)是用来生成连续的整数数据的对象。序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成。创建序列的语法是:

      CREATE SEQUENCE sequence_name [START WITH num] [INCREMENT BY increment] [MAXVALUE num|NOMAXVALUE] [MINVALUE num|NOMINVALUE] [CYCLE|NOCYCLE] [CACHE num|NOCACHE]

      ① START WITH:从某一个整数开始,升序默认值是1,降序默认值是-1。

      ② INCREMENT BY:增长数。如果是正数则升序生成,如果是负数则降序生成。升序默认值是1,降序默认值是-1。

      ③ MAXVALUE:指最大值。

      ④ NOMAXVALUE:这是最大值的默认选项,升序的最大值是:1027,降序默认值是-1。

      ⑤ MINVALUE:指最小值。

      ⑥ NOMINVALUE:这是默认值选项,升序默认值是1,降序默认值是-1026。

      ⑦ CYCLE:表示如果升序达到最大值后,从最小值重新开始;如果是降序序列,达到最小值后,从最大值重新开始。

      ⑧ NOCYCLE:表示不重新开始,序列升序达到最大值、降序达到最小值后就报错。默认NOCYCLE。

      ⑨ CACHE:使用CACHE选项时,该序列会根据序列规则预生成一组序列号。保留在内存中,当使用下一个序列号时,可以更快的响应。当内存中的序列号用完时,系统再生成一组新的序列号,并保存在缓存中,这样可以提高生成序列号的效率。Oracle默认会生产20个序列号。

      ⑩ NOCACHE:不预先在内存中生成序列号。

      序列创建之后,可以通过序列对象的CURRVAL和NEXTVAL两个“伪列”分别访问该序列的当前值和下一个值。

      使用ALTER SEQUENCE可以修改序列,在修改序列时有如下限制:

      1. 不能修改序列的初始值。

      2. 最小值不能大于当前值。

      3. 最大值不能小于当前值。

      使用DROP SEQUENCE命令可以删除一个序列对象。

      ③视图

      视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。只需要简单的SELECT…FROM即可。 视图具有以下优点:

      1. 可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。

      2. 可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。

      3. 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。

      4. 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。

      ④索引

      数据库中索引(Index)的概念与目录的概念非常类似。如果某列出现在查询的条件中,而该列的数据是无序的,查询时只能从第一行开始一行一行的匹配。创建索引就是对某些特定列中的数据排序,生成独立的索引表。在某列上创建索引后,如果该列出现在查询条件中,Oracle会自动的引用该索引,先从索引表中查询出符合条件记录的ROWID,由于ROWID是记录的物理地址,因此可以根据ROWID快速的定位到具体的记录,表中的数据非常多时,引用索引带来的查询效率非常可观。

      Oracle数据库会为表的主键和包含唯一约束的列自动创建索引。索引可以提高查询的效率,但是在数据增删改时需要更新索引,因此索引对增删改时会有负面影响。

  • 相关阅读:
    P168 实战练习(权限修饰符)
    Java—面向对象—权限修饰符及思维导图
    P168 实战练习(构造方法)
    Java—面向对象—构造方法及相关思维导图
    面向对象编程(OOP)
    随堂练习——猜生日
    正则表达式
    P141 实战练习——字符串(修改后)
    java经典问题
    java开发环境
  • 原文地址:https://www.cnblogs.com/linhuide/p/5804878.html
Copyright © 2020-2023  润新知