使用索引:

使用原因

索引的含義

image.png

索引分類

唯一索引

非唯一索引

位圖索引

image.png

索引的不足

建立索引的原則
CREATE INDEX INDSN ON STUDENT(SNAME);
CREATE INDEX SESAIND ON STUDENT(SAGE,SSEX);
SELECT index_name FROM USER_INDEXES WHERE table_name =‘表名’;
--查看索引
查看索引的步驟:
analyze table 表名 compute statistics;
--查看索引分析
SET autotrace on explain;
--打開計(jì)劃分析
執(zhí)行SELECT查詢進(jìn)行驗(yàn)證
DROP INDEX INDSN;
--刪除索引
declare
vtoday date;
vcnt number(8,0):=1000000;
begin
select sysdate into vtoday from dual;
for i in 1..vcnt loop
insert into emp1(id,name,sex,birth,phone) values(i,'name'||i,mod(i,2),vtoday-i,'phone'||i);
if mod(i,100)=0 then commit;
end if;
end loop;
end;
/
--向表中插入1000000行數(shù)據(jù)

image.png
視圖:

基本表,在磁盤上對(duì)應(yīng)存儲(chǔ)文件的表

視圖

視圖

視圖的優(yōu)點(diǎn)
GRANT CREATE VIEW to scott;
--先sysdba權(quán)限登錄管理員帳號(hào),授權(quán)給scott
CREATE VIEW SV1 AS SELECT SNO,SNAME FROM STUDENT;
CREATE VIEW SV1(學(xué)號(hào),姓名) AS SELECT SNO,SNAME FROM STUDENT;
CREATE VIEW S_G (Sno,Gavg)
AS SELECT Sno,AVG(Grade) FROM SC
GROUP BY Sno;
--創(chuàng)建復(fù)雜視圖

復(fù)雜視圖
CREATE VIEW SAGE_Stu
AS SELECT Sno,Sname,Sage FROM Student
WHERE Sage>19
WITH CHECK OPTION;
CREATE VIEW SV2
AS SELECT SNO,SNAME,SAGE FROM
WHERE SDEPT=‘信息科學(xué)與工程學(xué)院’
WITH READ ONLY;
--只讀視圖
SELECT VIEW_NAME ,TEXT FROM USER_VIEWS;
--查詢當(dāng)前用戶的視圖及定義
DESCRIBE 視圖名;
--查詢視圖的列
SELECT 視圖列名[,……] FROM 視圖名;
--查詢視圖數(shù)據(jù)
視圖的更新,指對(duì)視圖進(jìn)行insert,update,DELETE操作,實(shí)際上是對(duì)基本表的更新。
UPDATE S_G SET Gavg=90 WHERE Sno= ‘001’;
DROP VIEW 視圖名;
--刪除視圖