• Oracle PL/SQL高级应用 视图 同义词 序列



    视图:

      视图叫虚表,即是在哪个表上建立的视图,将那个表的数据用一条查询sql语句查出的数据展现在该视图中,对这个视图操作就是只能对该视图中的数据进行操作,该操作也会保存在建立的表中。可以理解为表上表,视图为该表的子表。

    CREATE OR REPLACE VIEW myview AS     --建立视图
    
    SELECT * FROM books WHERE price>30;   --将表中符合条件的数据放入视图中
    SELECT * FROM myview;            --查询视图中的数据
    INSERT INTO myview VALUES('009','ABC',23,5);  --插入数据,插入到了原表中 但视图中不存在,因为价格为23
    CREATE OR REPLACE VIEW v_read AS
    SELECT eid,ename FROM emp
    WITH READ ONLY;                           --不允许更改数据

     

    同义词:

       一个对象的替代名字,利用同义词可以 很方便的操纵不同用户模式下的对象。如访问scott下的dept表必须是SELECT * FROM scott.dept,一般表名过长可用简单的同义词来替代;

    CREATE SYNONYM dept FOR scott.dept;
    DROP SYNONYM dept;

    这样在此用户下(即创建同义词的用户下)用SELECT * FROM dept;语句即可。

    CREATE PUBLIC SYNONYM dept FOR scott.dept; --创建公共的同义词,任何用户下都能用

    序列:如果需要整型、递增的数字时使用较多。

    CREATE SEQUENCE myseq
    START WITH 1         --默认起始位置1
    INCREMENT BY 1        --默认一次递增1    
    ORDER                    --排序
    NOCYCLE;            --不循环即一直递增往下排 会访问磁盘 影响性能    
    SQL>SELECT myseq.NEXTVAL FROM dual; --查询下一个值1
    
    SQL>SELECT myseq.NEXTVAL FROM dual; --查询下一个值2
    
    SQL>SELECT myseq.NEXTVAL FROM dual; --查询下一个值3
    
    SQL>SELECT myseq.CURRVAL FROM dual; --查询当前值3 只有查询了下一个值后才可查询当前值
    CREATE TABLE auto(a number,b varchar2(10));    --创建表
    
    INSERT INTO auto VALUES(myseq.NEXTVAL,'dfd');  --将序列插入
    
    INSERT INTO auto VALUES(myseq.NEXTVAL,'dfd');  --将序列插入
    
    INSERT INTO auto VALUES(myseq.NEXTVAL,'dfd');  --将序列插入
    ALTER SEQUENCE myseq INCREMENT BY 3; --修改每次递增为3,但不能更改当前值
  • 相关阅读:
    131.著作权
    130.专利权
    idea新用法
    map的put和putIfAbsent使用
    netty的option和childOption
    Java8 lam。。。表达式
    protobuf学习
    protobuf生成
    idea调试
    spring,mapper的参数
  • 原文地址:https://www.cnblogs.com/weixiaole/p/3242312.html
Copyright © 2020-2023  润新知