⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 李强.txt

📁 关于oracle和sql的书籍和ppt教程,非常好,本人珍藏品
💻 TXT
字号:
1,给一个表创建视图,该试图不包含约束为not null的列,怎么给该视图插入数据?对于not null约束的列,可以给个常量作为该列的默认值。
    create view lq_view                --视图
    as  
    select name,sex,loc from lq ;
    
       
    create trigger lq_lq_view           --instead  of 触发器
    instead of insert 
    on lq_view
    for each row
    declare 
      pi int:=1;
    begin 
      insert into lq values(pi,:new.name,:new.sex,:new.loc);
    end;
 

    insert into lq_view values ('lili','男','深圳');


2,创建一个序列
   create sequence oopp_xu
     increment by 1
     start with   10
     minvalue     1
     order; 


   
3,用scott用户登陆,建一张表,至少包含id,name,sex,date列,插入1000000条数据,为了防止表名重复,建议大家用自己的名字做表名。用练习2创建的序列给该表的id加值,列id为该表的主键
   给name列创建B树索引,按该列查询
   给sex列创建位图索引,按该列查询
   给date列创建函数索引,按该列查询
   把查询的结果也写到你的答案里
create table oopp
(id int,name varchar2(20),sex char(2),age number,riqi  date);

insert into oopp values(1,'dd','na',23,'17-8月-1982');

insert into oopp values(2,'ddd','nv',23,'15-8月-1982');         --创建表 oopp

declare
i int; 
begin 
  for i in 1..1000000 loop
  insert into oopp values (oopp_xu.nextval,'ccv','na',24,'17-8月-1985');
  end loop;
end;


create index ind_name on oopp(name);
create bitmap index  ind_sex on oopp(sex);
create index funidx_riqi on oopp(to_char(riqi,'dd-mm-yyyy'));




4,根据练习3的三种查询结果,创建三个视图,然后对这三个视图做相应的查询

5,看书的索引那章,把创建索引的要求写下来(如:不同索引的差别,那些列应该创建索引,创建什么索引等等)

单列索引是基于单个列所创建的,复合索引是基于两列或者多列所创建的。
唯一索引是索引列值不重复的索引,非唯一索引是索引列值可以重复的索引。
B树索引可以是单列索引或复合索引、唯一或非唯一索引。
创建位图索引时,ORACLE 会对整个表进行扫描,并为索引列的每个取值建立一个位图。
函数索引既可以采用普通的B树索引,也可以采用位图索引。

在选择该为哪些表创建索引时,如下:
    一般不需要为很小的表创建索引。
    对于比较大的表来说,如果经常查询的纪录数目小于表中所有纪录数目的15%,则可以考虑为该表建立索引。这个百分比并不是绝对的,他主要取决于进行一次全表的扫描速度。全表扫描的速度越快,这个百分比月低,否则索性就使用全表扫描而不是创建索引。
在选择该为表中的哪些列建立索引时,如下:
    应当为大部分列值不重复的列建立索引。
    对于取值范围(基数)很大的列(如姓名列),应当创建B树索引;对于取值范围 (基数)很小的列,(如性别),应当创建位图索引。
    对于包含很多个NULL值,但是经常需要查询所有非NULL值纪录的列,应当建立索引。同时,为了利用索引,还需要对查询条件进行适当的调整。
    对于包含很多NULL值,但是不会经常查询所有NULL值的列,没有必要创建索引。
    不能在LONG或BLOB等大对象数据类型的列上创建索引。
    对于经常要进行连接(jion)查询的多个表来说,在用于连接的列上创建索引能够显著提高查询速度。
    ORACLE会自动为具有PRIMARY KEY 约束和UNIQUE约束的列建立索引,但是却不会自动为POREIGN KEY 列创建索引,所以有时用户需要为连接查询中使用的外键列创建索引。
在选择该为表创建多少个索引时,如下:
    用户必须在表的查询速度(索引越多查询越快)和表的更新速度(索引越多更新越慢)之间找到一个合适的平衡点。比如,如果在大部分情况下只需要对表进行只读操作,就可以为它创建更多的索引以提高查询速度;相反,如果在大部分情况下不需要对表进行更新操作,那么应当为它少创建一些索引,一提高更新速度。

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -