1. 程式人生 > >SQL語法(十) 序列、索引、檢視

SQL語法(十) 序列、索引、檢視

前言

           本章將學習序列、索引、檢視的相關知識

範例

1.建立序列

--使用 create sequence 序列名       --特點1:預設開始是沒有值的,也就是指標指在了沒有值的位置。       --特點2:序列名.nextval每次執行都會自增一次,預設步長為1       --特點3:序列名.currval檢視當前序列的值。開始是沒有的。       --作用:作為主鍵使用,動態的獲取之間的值,這樣新增資料的時候極大的避免了主鍵衝突            --使用的是 序列名.nextval作為主鍵       --注意:主鍵是非空唯一就可以,不需要主鍵的值是連續的值。

(1)建立預設序列

create sequence cc;--建立序列cc
select cc.currval from dual--檢視序列當前值
select cc.nextval from dual--檢視序列的自增後的值。

(2)建立自定義序列

create sequence aa--建立序列
start with 5      --設定開始位置
increment by 2    --設定步長
select aa.currval from dual 
select aa.nextval from dual

序列可以作為表的主鍵使用

create table teacher(
   tid number(10) primary key,
   tname varchar(100) not null
)
insert into teacher values(cc.nextval,'張三');
insert into teacher values(cc.nextval,'張三');
select * from teacher

2.刪除序列

--drop sequence 序列名

drop sequence aa

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

3.建立索引&刪除索引

--作用:提升查詢效率      --使用索引:          --建立            create index 索引名 on 表名(欄位名)          --刪除索引            drop index 索引名      --特點:          --顯示的建立,隱式的執行      --注意:          --oracle會自動給表的主鍵建立索引。

create index index_teacher_tname on teacher(tname)--建立索引
drop index index_teacher_tname--刪除索引
select * from teacher where tname='張三'
select * from teacher where tid=8

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

4.建立檢視&刪除檢視

--使用檢視:           --建立檢視           create view 檢視名 as select 對外提供的內容 from 真實表名           --刪除檢視           drop view 檢視名       --檢視特點:          --特點1:保護真實表,隱藏重要欄位的資料。保護資料。          --特點2:在檢視中的操作會對映執行到真實表中          --特點3:可以手動開啟只讀模式 使用關鍵字 with read only       --注意:檢視的建立必須擁有dba許可權

create view stu as select sno,sname,sage from  student
create view stu2 as select sno,sname,sage from  student with read only 
drop view stu
select * from student
select * from stu
update stu2 set sname='wollo' where sno=1