zoukankan      html  css  js  c++  java
  • Oracle学习 第13天

    一、约束:先跳过,MsSQL里也不怎么用了

    二、视图:这个还是比较有用的,特别是和其它公司合作时,经常是互相提供视图

    1、创建视图:CREATE OR REPLACE VIEW XX AS SELECT * FROM XXX; 用【OR REPLACE】比较方便更新

    默认SCOTT用户没有创建视图权限

    2、视图所在数据字典 USER_VIEWS

    3、视图增加数据:单表可以,但如果INSERT INTO 视图,则只会增加视图包含的这些数据,剩作的表字段会用NULL填充,如果不能为NULL则会报错。

    4、视图更新数据:单表可以

    5、视图多表插入或更新:会报【无法通过联接视图修改多个基表】

    6、删除数据:单表可以,但多表关联只会删了一张表,另一张表未删除

    7、WITH CHECK OPTION:不会更新视图创建条件字段,但可更新其它字段

    8、WITH READ ONLY:只读视图

    9、删除视图:DROP VIEW XXX

    三、序列Sequence(类似MsSQL自增列)

    1、创建序列,CREATE SEQUENCE XXX,

    2、伪列, XXX.CURRVAL、XXX.NEXTVAL,要先调用NEXTVAL,才能调用CURRVAL。相当于调用了NEXTVAL后,序列才到了【可用状态】

    3、序列缓存,默认20,即一开始生成20个,用完后再生成20个,不是每次去生成,而是一次性生成若干个备用

    4、使用序列:INSERT INTO XX (Id, Name) VALUES (XXSEQ.NEXTVAL, 'xxx'); MsSQL设置个自增列就可以不用管它了,Oracle要手动处理

    5、删除序列:DROP SEQUENCE XXX;

    6、步长/初始值:CREATE SEQUENCE XXX INCREMENT BY 步长 START WITH 初始值

    7、缓存:CREATE SEQUENCE CACHE 缓存,如不需要缓存,则:CREATE SEQUENCE NOCACHE

    8、循环序列:CYCLE/NOCYCLE,如果设置了NOCACHE会报CACHE值不能小于CYCLE值

    9、修改序列:ALTER SEQUENCE XXX

    10、删除序列:DROP SEQUENCE XXX

    11、自动序列:Oracle 12C之后才有的新特性,与MsSQL的自增列一样

    建表时要自增的列加上 GENERATED BY DEFAULT AS IDENTITY

    四、同义词

    1、创建同义词:CREATE OR REPLACE SYNONYM 同义词名称 FOR 数据库对象;

    2、删除同义词:DROP SYNONYM 同义词名称

    五、ROWNUM/ROWID伪列

    1、ROWID是一列类似GUID的不重复伪列,类似于MsSQL的主键,可用于标识数据行。

    2、ROWNUM:行号(当前查询)

    SELECT * FROM XXX WHERE ROWNUM = 1; 查出第一行

    但ROWNUM = 2却查不出来,因为ROWNUM是随机生成,在SELECT中出现,而WHERE优先于SELECT

    只能用<或<=,BETWEEN AND之类不行,大于也不行

    3、利用ROWNUM分页:

    SELECT * FROM (

      SELECT *, ROWNUM AS RN

      FROM XXX WHERE ROWNUM<=10

    ) T

    WHERE T.RN>5

    4、FETCH:ORACLE 12C新特性,类似MySQL的LIMIT

    取指定范围:OFFSET 开始位置 ROWS FETCH NEXT 个数 ROWS ONLY

    六、索引,主键或唯一约束会自动创建索引

    1、B树索引、降序索引、函数索引:CREATE INDEX 索引名称 ON 表名称(列名称[ASC | DESC]);

    B树索引:最常用的普通索引,即平衡二叉树

    2、位图索引:CREATE BITMAP INDEX 索引名称 ON 表名称(列名称[ASC | DESC]);

    3、删除索引:DROP INDEX 索引名称

  • 相关阅读:
    CentOS 6.2安装Darwin Streaming Server
    流媒体技术笔记(协议相关)
    流媒体技术笔记(视频编码相关)
    CentOS6.2下编译mpeg4ip
    用popen函数操作其它程序的输入和输出
    给centos6.2安装yum源
    启动新进程(fork和exec系列函数实现)
    扩展Asterisk1.8.7的Dialplan Applications
    源码安装ffmpeg(带libx264)
    扩展Asterisk1.8.7的AMI接口
  • 原文地址:https://www.cnblogs.com/liuyouying/p/5638035.html
Copyright © 2011-2022 走看看