• Oracle 学习笔记 12 -- 序列、索引、同义词


    版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/Topyuluo/article/details/24232449

    数据库的对象包含:表、视图、序列、索引和同义词。在前面的笔记中陆续学习了表和视图,那么本次笔记将学习剩

    下的数据库对象,即:序列、索引和同义词。

    序列:提供有规律的数值。可供多个用户用来产生唯一数值的数据库对象,主要用来提供主键的值。

    索引:提高查询的效率。

    同义词:给对象起别名。

    在MYSQL 和 SQL SERVER 数据库中。主键的值都是设置为自己主动增长的,这样在插入数据的时候。便不须要再显示

    的指明数据的值。

    假设也想要在Oracle中也完毕自己主动增长的更能,则要依靠序列来实现。

    创建语法格式:

    CREATE SEQUENCE sequence
           [INCREMENT BY n]  --每次增长的数值
           [START WITH n]    --从哪个值開始
           [{MAXVALUE n | NOMAXVALUE}]
           [{MINVALUE n | NOMINVALUE}]
           [{CYCLE | NOCYCLE}]     --是否须要循环
           [{CACHEn | NOCACHE}];  --是否缓存登录

    例:创建序列

    create  sequence empseq
    increment by 1 --每次增长1个数
    start with 1  --从十開始增长
    nomaxvalue    --没有最大值。无限制增长
    cycle  --须要循环
    nocache --不须要缓存

    序列创建之后,全部的自己主动增长应该由用户自己处理,序列提供了以下的两种操作:

    nextVal:取得序列的下一个内容。

    currVal:取得序列当前的内容。

    注意:在使用currVal之前,应该先运行nextVal。否则回报currVal尚未在会话中定义的错误。

    在创建empseq的时候。设置增长的速度为1。能够通过改变increment by 后面的数值来设置添加的速度。如能够设置为10 。20。可是主键的增长速度一般设置为1。

    默认情况下序列的起始值为1,能够通过start with n来设置用户须要的数值。

    例:使用序列

    insert into emp(empno  , ename  ,sal ) values(empseq.nextVal ,'lisi'  , '8000' ) ;

    使用empseq.nextVal 取代了原先须要手动设置的值。提高了效率。

    注意:一下情况easy产生序列的裂缝。

    系统回滚操作、系统异常错误、多个表同一时候訪问一个序列。

    改动序列

    改动序列使用alterkeyword,语法格式例如以下:

    ALTER SEQUENCE seq_name

           [INCREMENT BY n]  --每次增长的数值

           [{MAXVALUE n | NOMAXVALUE}]
           [{MINVALUE n | NOMINVALUE}]
           [{CYCLE | NOCYCLE}]     --是否须要循环
           [{CACHEn | NOCACHE}]; 

     仅仅有序列的拥有者才干改动序列,序列改动后影响的是将来的数据。曾经的数据不会受影响,序列的起始值仅仅能通过删除再重建序列的方式改动。

    删除序列

    语法格式:

    Drop  sequence  seq_name ;

    序列删除之后,不能再引用。

    索引

    一种独立于表的模式对象, 能够存储在与表不同的磁盘或表空间中
    索引被删除或损坏, 不会对表产生影响, 其影响的仅仅是查询的速度
    索引一旦建立, Oracle 管理系统会对其进行自己主动维护, 并且由 Oracle 管理系统决定何时使用索引。

    用户不用在查询语句中指定使用哪个索引

    在删除一个表时,全部基于该表的索引会自己主动被删除
    通过指针加速 Oracle server的查询速度
    通过高速定位数据的方法,降低磁盘 I/O

    创建语法:

    CREATE INDEX index
    ON table (column[, column]...);

    删除索引

    DROP INDEX  index_name ; 删除索引语句。该操作不可回滚。

    同义词-synonym

    在创建查询的时候,有的表名字比較的长。这是能够给表起一个同义词,来缩短表的名字

    CREATE SYNONYM e FOR employees;
    给表employees创建了一个同义词e 。 
    运行select * from e;语句的查询结果和运行select * from employees的结果是一样的。

     

    删除同义词

    DROP SYNONYM syn_name ;

     

     

  • 相关阅读:
    MySQL管理工具-SQLyog 9.63的使用详解
    通讯录管理系统
    Mavenx学习找对方法,快速上手!
    晚风花间寺中人
    PE重装系统,U盘重装系统,一步到位,重装无忧!
    进入博客园的第一篇随笔,贡献给我最喜欢的作家-大冰
    天地有情尽白发,人间无意了沧桑
    狼和羊的故事(安徒生新篇)
    .Net Core CLR GC的浅度分析
    .net core 的夸代扫描标记card_table的细节分析
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9981874.html
Copyright © 2020-2023  润新知