Oracle 学习:PL/SQL循序渐进全面学习教程--课程七 其他数据库对象

来源:互联网 发布:网络推广经理岗位职责 编辑:程序博客网 时间:2024/06/03 19:04

  课程七 其他数据库对象
  
  SEQUENCE
  
  创建实例:
  
  SQL> CREATE SEQUENCE s_dept_id
  
  2 INCREMENT BY 1
  
  3 START WITH 51
  
  4 MAXVALUE 9999999
  
  5 NOCACHE
  
  6 NOCYCLE;
  
  Sequence created.
  
  1、NEXTVAL和CURRVAL的用法
  
  只有在INSERT 中,才可以作为子查询出现。
  
  以下几个方面不可用子查询:
  
  SELECT 子句OF A VIEW
  
  有DISTINCT的出现的SELECT。
  
  有GROUP BY,HAVING,ORDER BY的SELECT 子句。
  
  SELECT 或DELETE,UPDATE 中的子查询。
  
  DEFAULT选项中不能用。
  
  2、编辑SEQUENCE
  
  只有OWNER或有ALTER权限的用户才能修改SEQUENCE
  
  未来的NUMBER受修改的影响。
  
  不能修改START WITH,如果变,则要RE-CREATE。
  
  修改会受到某些有效性检验的限制,如MAXVALUE
  
  3、删除:
  
  DROP SEQUENCE sequence;
  
  ORACLE对象之INDEX
  
  一、INDEX概述:
  
  是ORACLE的一种数据对象,用POINTER来加速查询行。通过快速路径存取方法定位数据并减少I/O。 INDEX独立于

表。INDEX由ORACLE SERVER来使用和保持。
  
  二、索引如何建立?
  
  1、自动:通过PRIMARY KEY和UNIQUE KEY约束来建立。
  
  2、用户手工建立非唯一性索引。
  
  三、创建方法:
  
  语法:CREATE INDEX index
  
  ON table (column[, column]...);
  
  何时建立INDEX:
  
  此列经常被放到WHERE字段或JOIN来作条件查询。
  
  此列含有大量的数据。
  
  此列含有大量的空值。
  
  两个或几个列经常同时放到WHERE字段进行组合查询
  
  表很大而且只有少于2-4% 的ROW可能被查询的时候。
  
  以下情况不要建立索引:
  
  表很小;
  
  表被更新频繁。
  
  四、查看已经存在的索引:
  
  1、USER_INDEXES可以查询索引名和类型。
  
  2、USER_IND_COLUMNS包含索引名、表名、列名。
  
  实例:
  
  SQL> SELECT ic.index_name, ic.column_name,
  
  2 ic.column_position col_pos, ix.uniqueness
  
  3 FROM user_indexes ix, user_ind_columns ic
  
  4 WHERE ic.index_name = ix.index_name
  
  5 AND ic.table_name = ’S_EMP’;
  
  五、删除索引:
  
  DROP INDEX index;
  
  SYNONYMS 同义词
  
  语法:
  
  CREATE [PUBLIC] SYNONYM synonym for object;
  
  注意:此对象不能包含在一个包里;
  
  一个私有的同义词不能与同一USER的其他对象重名。
  
  DROP SYNONYM D_SUM;

原创粉丝点击