Oracle--视图,序列及索引


Oracle--视图,序列及索引

Goal:学会使用视图序列和索引! 

  1. 一,视图:  
  2.     a)创建视图:  
  3.         create view 视图名称 as SQL语句;  
  4.         拓展:当如果需要改变列名时--create view 名称(列名1,列名2,...) as SQL语句;   
  5.         注意:列名的个数要与后面要查询的列数要相同  
  6.           
  7.     b)删除视图:  
  8.         drop view 名称;  
  9.           
  10.     c)描述:  
  11.         desc user_views;  
  12.           
  13. 二,序列:  
  14.     写在前面的:序列在Oracle中有着重要的作用,因为Oracle中没有自增长列,所以必须通过序列来达到目的!  
  15.     a)创建序列:  
  16.         create sequence 序列名  
  17.             start with 起始位置  
  18.             increment by 增量大小  
  19.             maxValue 最大值(没有这些nomaxValue)  
  20.             [cycle/nocycle(是否循环)];  
  21.               
  22.         eg:  
  23.             create sequence seq_stu increment by 1 start with 1 nomaxvalue nocycle;  
  24.               
  25.     b)序列中的两个特殊属性:  
  26.         .nextVal :下一个序列的值  
  27.         .currVal :当前序列的值;  
  28.         特别注意:只要用户使用了.nextVal 那么序列值就会增加一个增量,  
  29.         eg:select seq_stu.nextVal from DUAL;序列值依然会增加一个增量!  
  30.           
  31.     c)两个特殊属性的使用:  
  32.         加入学生信息表的StuId列是主键列,需要自己增长:  
  33.         insert into StuInfo values ('Stu'||to_char(Sysdate,'yyyymmdd')||seq_stu.nextVal,....);  
  34.         最后录入的学号就会是'Stu20111218序列值'  
  35.       
  36.     d)删除序列:  
  37.         drop sequence 序列名;  
  38.               
  39. 三,索引:  
  40.     写在前面的话:Oracle中的所用的使用与SqlServer不一样,Oracle中是Oracle自行调用的,而非手动调用!  
  41.       
  42.     a)索引的创建:  
  43.         create index 索引名 on 表名(列名1,列名2,..);  
  44.       
  45.     b)索引的使用:  
  46.         这个有Oralce自行调用,而非手动调用!  
  47.           
  48.     c)删除索引:  
  49.         drop index 索引名称;  
  50.           
  51.     d)描述用户所有索引:  
  52.         desc user_indexes;  

相关内容