Oracle數(shù)據(jù)庫對(duì)象的使用詳解
目錄
- 一、序列
- 二、同義詞的作用
- 三、視圖的定義及使用
- 四、索引的定義及使用
- 五、總結(jié)
一、序列
序列可以使用在數(shù)據(jù)庫表的自動(dòng)增長(zhǎng)列中來用,假如我們的學(xué)生表的id想從1開始,然后自動(dòng)增長(zhǎng),每次增加2,也就是學(xué)生id是1、3、5、7、9這種的,我們就可以配合序列來使用
序列有以下屬性
sequence_name:序列名稱
min_value:當(dāng)前序列的最小值
max_value:當(dāng)前序列的最大值
increment_by:每次序列增長(zhǎng)的步長(zhǎng)
cy:是否為循環(huán)序列
or:是否需要排序
cache_size:緩存?zhèn)€數(shù),默認(rèn)為20個(gè)
last_number:最后的數(shù)值
nextval:取得序列下一個(gè)內(nèi)容,每調(diào)用一次序列的值都會(huì)增長(zhǎng)
currval:表示取得序列的當(dāng)前內(nèi)容,每一次調(diào)用序列不會(huì)增長(zhǎng)
1、創(chuàng)建一個(gè)序列
create sequence myseq;
2、向?qū)W生表插入一條數(shù)據(jù),學(xué)生id使用myseq序列
insert into student(id,name) values (myseq.nextval;"張三");
3、改變myseq序列的步長(zhǎng),每步增加2
create sequence myseq increment by 2;
4、改變myseq序列的開始值為10000
create sequence myseq increment by 2 start with 10000;
5、創(chuàng)建一個(gè)循環(huán)序列,并且不使用緩存
如果我們希望某一列的數(shù)據(jù)只是1到9的數(shù)據(jù),那么我們可以使用循環(huán)序列來操作
create sequence myseq minvalue 1 maxvalue 9 cycle nocache;
二、同義詞的作用
同義詞可以將一個(gè)模式的表給另一個(gè)模式來訪問。
1、將scott用戶下的student表同義給sys用戶使用
create sysnoym student for scott.emp;
2、將scott用戶下的student表同義給所有用戶使用
create public sysnoym student for scott.emp;
三、視圖的定義及使用
視圖是為了簡(jiǎn)化復(fù)雜查詢的,視圖是一張?zhí)摂M表,并不存儲(chǔ)數(shù)據(jù),但是數(shù)據(jù)都來源于真實(shí)表中
1、創(chuàng)建一個(gè)視圖,從學(xué)生表中名字為‘張三’的學(xué)生中取
create view studentview as select * from student where name = "張三";
2、查詢學(xué)生視圖
select * from studentview;
3、更新學(xué)生視圖,將name為‘張三’的年齡更新為20
update studentview set age = 20 where name = "張三";
這個(gè)時(shí)候我們發(fā)現(xiàn)真實(shí)表student中張三的年齡也被修改了,所以這樣修改視圖會(huì)影響真實(shí)表的數(shù)據(jù),那么我們接下來創(chuàng)建一個(gè)視圖讓他修改后不影響真實(shí)表。
4、創(chuàng)建一個(gè)視圖,從學(xué)生表中名字為‘張三’的學(xué)生中取,并且修改視圖不能影響原來真實(shí)表的數(shù)據(jù)
create or replace view studentview as select * from student where name = "張三" with check option;
5、創(chuàng)建一個(gè)視圖,從學(xué)生表中名字為‘張三’的學(xué)生中取,并且視圖設(shè)置為只讀
create or replace view studentview as select * from student where name = "張三" with read only;
四、索引的定義及使用
1、創(chuàng)建一個(gè)學(xué)生表,并給name建立索引
create index name_index on student (name);
五、總結(jié)
這里的相關(guān)內(nèi)容還沒有整理完畢,文章后面持續(xù)更新,建議收藏。
文章中涉及到的命令大家一定要像我一樣每個(gè)都敲幾遍,只有在敲的過程中才能發(fā)現(xiàn)自己對(duì)命令是否真正的掌握了。
到此這篇關(guān)于Oracle數(shù)據(jù)庫對(duì)象的使用的文章就介紹到這了,更多相關(guān)Oracle數(shù)據(jù)庫對(duì)象內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!
相關(guān)文章:
