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

📄 朱志明6-14.txt

📁 关于oracle和sql的书籍和ppt教程,非常好,本人珍藏品
💻 TXT
字号:
1,给一个表创建视图,该试图不包含约束为not null的列,怎么给该视图插入数据?对于not null约束的列,可以给个常量作为该列的默认值。
     
create view testview
as
select empno,ename,job,sal,age from testemp;

*************************************************

create or replace trigger testtri
instead of insert
on testview
for each row
declare
   num int;
   num2 int;
begin
   select count(age) into num from testemp where empno = :new.empno;
   select max(age) into num2 from testemp;
   if num =0 then
      insert into testview values(:new.empno,:new.ename,:new.job,:new.sal,num2 +18);
   end if;
end;


2,创建一个序列
  
create sequence  testseq
increment by 1
start with 1
maxvalue 999999999
minvalue 1
cache 20
nocycle
order;
  
3,用scott用户登陆,建一张表,至少包含id,name,sex,date列,插入1000000条数据,为了防止表名重复,建议大家用自己的名字做表名。用练习2创建的序列给该表的id加值,列id为该表的主键
   给name列创建B树索引,按该列查询
   给sex列创建位图索引,按该列查询
   给date列创建函数索引,按该列查询
   把查询的结果也写到你的答案里

创建小朱表    
    create table xiaozhu(id int,
                       name varchar2(10),
                       sex char,
                       born date);

插入1000000行记录

declare 
  v_test int;
begin
  for v_test in 1..1000000 loop
     insert into xiaozhu values(testseq.nextval,'aa','男',to_date('1984-2-13','YYYY-MM-DD'));
  end loop;
end;

给表创建主键

alter table xiaozhu add constraint pk_xiaozhu_id primary key (id);

给name列创建B树索引 

create index index_name on xiaozhu(name) ; 
1	aa
2	aa
3	aa
4	aa
5	aa
6	aa
7	aa
8	aa
9	aa
10	aa
11	aa
12	aa
13	aa
14	aa
15	aa
16	aa
17	aa
18	aa
19	aa
20	aa

给sex列创建位图索引
 
create bitmap index index_sex on xiaozhu(sex) ; 
1	男
2	男
3	男
4	男
5	男
6	男
7	男
8	男
9	男
10	男
11	男

给date列创建函数索引
     
create index function_born on xiaozhu(to_char(born,'YYYY-MM-DD'));
1	1984-2-13
2	1984-2-13
3	1984-2-13
4	1984-2-13
5	1984-2-13
6	1984-2-13
7	1984-2-13
8	1984-2-13
9	1984-2-13
10	1984-2-13
11	1984-2-13
12	1984-2-13
13	1984-2-13
14	1984-2-13
15	1984-2-13
16	1984-2-13
17	1984-2-13
18	1984-2-13
19	1984-2-13
20	1984-2-13
21	1984-2-13
22	1984-2-13
23	1984-2-13
24	1984-2-13
25	1984-2-13



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

试图一:
create view nameview
as
select name from xiaozhu;

*****************************

select * from nameview;

1	aa
2	aa
3	aa
4	aa
5	aa
6	aa
7	aa
8	aa
9	aa
10	aa
11	aa
12	aa
13	aa
14	aa
15	aa
16	aa
17	aa
18	aa
19	aa
20	aa

试图二:
create view sexview
as
select sex from xiaozhu;

*****************************

select sex from sexview;

1	男
2	男
3	男
4	男
5	男
6	男
7	男
8	男
9	男
10	男
11	男
12	男
13	男
14	男
15	男
16	男
17	男
18	男
19	男
20	男
21	男
22	男
23	男
24	男
25	男

试图三:
create view bornview
as
select born from xiaozhu;

********************************

select born from bornview;
1	1984-2-13
2	1984-2-13
3	1984-2-13
4	1984-2-13
5	1984-2-13
6	1984-2-13
7	1984-2-13
8	1984-2-13
9	1984-2-13
10	1984-2-13
11	1984-2-13
12	1984-2-13
13	1984-2-13
14	1984-2-13
15	1984-2-13
16	1984-2-13
17	1984-2-13
18	1984-2-13
19	1984-2-13
20	1984-2-13
21	1984-2-13
22	1984-2-13
23	1984-2-13
24	1984-2-13
25	1984-2-13


5,看书的索引那章,把创建索引的要求写下来(如:不同索引的差别,那些列应该创建索引,创建什么索引等等)
        
      如果在WHERE 条件字句中要经常引用的列(或许是一列或许是几列),那么就要为该表的该列建立

   B树索引列。如果表的数据很少(很小的表)一般不需要创建索引。

      对于取值范围很小的列(比如性别列),只有有限的几个固定值,应当创建位图索引 。

      对于包含很多个NULL值,但是经常需要查询所有的非NULL值记录的列,应当建立索引。

      对于包含很多NULL值,但是不会经常查询所有的非 NULL 记录的列没有必要建立索引 。

       不能在LONG或BLOB等大对象数据类型的列上创建索引。对于经常要进行连接查询的多个表
   
      来说在用于连接的列上应该创建索引 能够 提高查询速度。     

⌨️ 快捷键说明

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