zoukankan      html  css  js  c++  java
  • 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 ;

     

     

  • 相关阅读:
    Entity Framework Core 2.0 新特性
    asp.net core部署时自定义监听端口,提高部署的灵活性
    asp.net core使用jexus部署在linux无法正确 获取远程ip的解决办法
    使用xshell连接服务器,数字键盘无法使用解决办法
    使用Jexus 5.8.2在Centos下部署运行Asp.net core
    【DevOps】DevOps成功的八大炫酷工具
    【Network】Calico, Flannel, Weave and Docker Overlay Network 各种网络模型之间的区别
    【Network】UDP 大包怎么发? MTU怎么设置?
    【Network】高性能 UDP 应该怎么做?
    【Network】golang 容器项目 flannel/UDP相关资料
  • 原文地址:https://www.cnblogs.com/ldxsuanfa/p/9981874.html
Copyright © 2011-2022 走看看