Oracle 目标ITeye - 娱乐之横扫全球

Oracle 目标ITeye

2019年03月13日13时57分08秒 | 作者: 问寒 | 标签: 视图,目标,数据 | 浏览: 2626

Oracle 数据库目标
1.近义词(synonym)
 1.1 近义词的长处:
      (1)简化SQL句子
      (2)躲藏目标的称号和一切者,进步数据库安全性
      (3)供给对目标的公共拜访,应用程序开发能够不必股数据库的详细目标名

 

1.2 近义词分为私有和公有(public)

 

1.3 创立近义词:
      create or replace synonym [synonym_name] for [表或字段];//私有
      create or replace public synonym [synonym_name] for[];//公有
      留意:(1)私有近义词只能在其方式内拜访,且不能与当时方式的目标同名;
               (2)公有近义词可被一切的数据库用户拜访。
 
 1.4 删去近义词:
      drop (public) synonym [synonym_name];
 
2.序列(sequence)
   序列:是用于生成仅有、接连序号的目标,序列能够是升序的,也能够是降序的。
 
 2.1 创立序列
       SQL CREATE SEQUENCE [seq_name]
                 START WITH []//开端
                 INCREMENT BY []//距离或增长量
                 MAXVALUE []//最大值
                 MINVALUE []//最小值
                 NOCYCLE//当抵达最大值时不循环
                 CACHE [];//指定内存中预先分配的序列号
 
 2.2 拜访序列
       NEXTVAL 回来序列的下一个值
       CURRVAL 回来序列的当时值
  
       SQL INSERT INTO toys (toyid, toyname, toyprice) VALUES( toys_seq.NEXTVAL, M  AGIC PENCIL, 75);
 
 2.3 修正序列
       SQL ALTER SEQUENCE toys_seq MAXVALUE 5000 CYCLE;
       留意:运用ALTER SEQUENCE句子修正序列,不能更改序列的START WITH参数
 
 2.4 废弃序列
       DROP SEQUENCE toys_seq;

 

3.视图(view)
   视图以经过定制的方法显现来自一个或多个表的数据,能够视为"虚拟表"或"存储的查询"
   创立视图所根据的表称为"基表"


 3.1视图的长处有:
      躲藏的数据的杂乱性,供给了别的一种等级的表安全性
      简化的用户的SQL指令
      阻隔基表结构的改动

 

3.2创立
   SQL CREATE [OR REPLACE] [FORCE] VIEW
              view_name [(alias[, alias]...)]
              AS select_statement
              [WITH CHECK OPTION]
              [WITH READ ONLY];

 OR REPLACE若所创立的企图现已存在,ORACLE主动重建该视图;
 FORCE不论基表是否存在ORACLE都会主动创立该视图;
 NOF只要基表都存在ORACLE才会创立该视图:
 alias为视图发生的列界说的别号;
 subquery一条完好的SELECT句子,能够在该句子中界说别号;
 WITH CHECK OPTION刺进或修正的数据行有必要满意视图界说的束缚;
 WITH READ ONLY该视图上不能进行任何DML操作。

 例如:
       CREATE OR REPLACE VIEW dept_emp_vw
               (name,minsal,maxsal,avgsal)
       AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
       FROM  emp e,dept d
       WHERE e.deptno=d.deptno
       GROUP BY d.dname;
 
3.3视图的界说准则:
     1).视图的查询能够运用杂乱的SELECT语法,包括衔接/分组查询和子查询;
     2).在没有WITH CHECK OPTION和 READ ONLY 的状况下,查询中不能运用ORDER BY 子句;
     3).假如没有为CHECK OPTION束缚命名,体系会主动为之命名,方式为SYS_Cn;
     4).OR REPLACE选项能够不删去原视图便可更改其界说并重建,或从头颁发目标权限。

3.4视图的查询:
    视图创立成功后,能够从视图中检索数据,这点和从表中检索数据相同。
    还能够查询视图的悉数信息和指定的数据行和列。
 如:
 
         检索数据:
          SQL SELECT * FROM dept_sum_vw;
 
         查询视图界说:
         SELECT view_name,text from user_views;
            其间text显现的内容为视图界说的SELECT句子,可经过DESC USER_VIEWS
            得到相关信息。
 
3.5视图的删去:
            DROP VIEW VIEW_NAME句子删去视图
 
3.6视图上的DML操作:
 DML操作应遵从的准则:
 1).简略视图能够履行DML操作;
 2).在视图包括GROUP 函数,GROUP BY子句,DISTINCT关键字时不能删去数据行;
 3).在视图不出现下列状况时可经过视图修正基表数据或刺进数据:
  a.视图中包括聚合函数,GROUP BY子句,DISTINCT关键字
  b.运用表达式界说的列
  c.ROWNUM伪列
  d.基表中未在视图中挑选的其他列界说为非空且无默认值
 
 WITH CHECK OPTION 子句限制:
  经过视图履行的INSERTS和UPDATES操作不能创立该视图检索不到的数据行,
  由于它会对刺进或修正的数据行履行完好性束缚和数据有效性查看。
 例如:
           CREATE OR REPLACE VIEW vw_emp20
           AS SELECT * FROM emp
           WHERE deptno=20
           WITH CHECK OPTION constraint vw_emp20_ck;
          视图 已树立。
 
          查询成果:
           SELECT empno,ename,job FROM vw_emp20;
          
          EMPNO                ENAME                JOB
-                     -
              7369                 SMITH                CLERK
              7566                 JONES               MANAGER
              7902                 FORD                ANALYST
 
          修正:
                UPDATE vw_emp20
                SET        deptno=20
                WHERE   empno=7902;
           将发生过错:
               UPDATE vw_emp20
                              *
               ERROR 坐落榜首行:
               ORA-01402:视图WITH CHECK OPTION 违背WHERE 子句

 


oracle分页 SELECT * FROM (SELECT emp.*, ROWNUM RN FROM emp) WHERE RN BETWEEN 5 AND 10;


oracle分页 SELECT * FROM (SELECT emp.*, ROWNUM RN FROM emp) WHERE RN 5 AND RN

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章