视图
1.分类 1)简单视图: 一个表无函数无分组 2)复杂视图: 多个表或则有函数或则有分组 2.如何创建视图?语法 create or replace view v_SALGRADE as select "GRADE","LOSAL","HISAL" from SALGRADE 3.简单视图是可以支持dml操作的? 往视图(表)中插入数据 insert into v_salgrade values(1,1,1); 删除视图(表)中的数据 delete from v_salgrade t where t.rowid='AAAHacAALAAAACKAAF' 4.避免对视图进行dml操作 WITH READ ONLY; 5.删除视图 drop view v_SALGRADE; 6.表和视图的区别和联系 区别 1、视图是已经编译好的sql语句。而表不是 2、视图没有实际的物理记录。而表有。 3、表是内容,视图是窗口 4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改 5、表是内模式,试图是外模式 6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 8、视图的建立和删除只影响视图本身,不影响对应的基本表。 联系 视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系
序列 1.什么是序列?(对照ppt) 2.如何创建序列?语法 create sequence SEQ_LESSION minvalue 1 maxvalue 999999999999999999999999999 start with 1 increment by 1 cache 1000; 3.如何查询序列? 下次值: select seq_lession.nextval from dual; 当前值: select seq_lession.currval from dual; 4.序列的用途? 充当主键(自增长) insert into salgrade t values(seq_lession.nextval,1,1); 5.什么是裂缝?口诉 造成裂缝的原因 1)回滚 2)系统异常 3)多个表同时使用同一序列 6.在数据字典中查看序列 select * from dba_SEQUENCES where dba_SEQUENCES.sequence_owner='JGRING'; 7.如何删除一个序列? DROP SEQUENCE seq_lession;
索引 1.什么是索引?(结合图书馆借书口述) 2.在索引中存储的是什么? 索引存储的是关键字和真正的数据指针 3.索引的分类 1)逻辑分类 { a.单一 b.非单一 c.唯一 d.函数 } 2)物理分类 { B-tree Bit-map } t t t T t t t
t 索引项(索引项头、<索引列长度、索引列值>、rowid)
姓名 性别 张三 男 李四 女 王五 男 赵六 未知
男 1<rowid> 0<rowid> 1<rowid> 女 0<rowid> 1<rowid> 0<rowid> 未知 0<rowid> 0<rowid> 1<rowid>
4.如何查询索引?在什么表空间? select index_name,table_name,tablespace_name,index_type,uniqueness,status from dba_indexes where owner='JGRING' 5.如何创建索引? create INDEX JGRING.LOSAL_INDEX on JGRING.SALGRADE(LOSAL) pctfree 25 storage (initial 30k) tablespace LESSION_INDEX; 6.如何删除索引? drop index JGRING.LOSAL_INDEX;
同义词(别名 alias) 1.什么是同义词? 2.同义词的好处?隐藏对象信息、别名便于记忆 3.如何创建同义词? CREATE SYNONYM seq_lession_alias FOR seq_lession; |