您的位置:首頁技術文章
文章詳情頁

Oracle數據庫對象的使用詳解

瀏覽:96日期:2023-03-12 15:25:20
目錄
  • 一、序列
  • 二、同義詞的作用
  • 三、視圖的定義及使用
  • 四、索引的定義及使用
  • 五、總結

一、序列

序列可以使用在數據庫表的自動增長列中來用,假如我們的學生表的id想從1開始,然后自動增長,每次增加2,也就是學生id是1、3、5、7、9這種的,我們就可以配合序列來使用
序列有以下屬性
sequence_name:序列名稱
min_value:當前序列的最小值
max_value:當前序列的最大值
increment_by:每次序列增長的步長
cy:是否為循環序列
or:是否需要排序
cache_size:緩存個數,默認為20個
last_number:最后的數值
nextval:取得序列下一個內容,每調用一次序列的值都會增長
currval:表示取得序列的當前內容,每一次調用序列不會增長

1、創建一個序列

create sequence myseq;

2、向學生表插入一條數據,學生id使用myseq序列

insert into student(id,name) values (myseq.nextval;"張三");

3、改變myseq序列的步長,每步增加2

create sequence myseq increment by 2;

4、改變myseq序列的開始值為10000

create sequence myseq increment by 2 start with 10000;

5、創建一個循環序列,并且不使用緩存

如果我們希望某一列的數據只是1到9的數據,那么我們可以使用循環序列來操作

create sequence myseq
minvalue 1 maxvalue 9
cycle nocache;

二、同義詞的作用

同義詞可以將一個模式的表給另一個模式來訪問。

1、將scott用戶下的student表同義給sys用戶使用

create sysnoym student for scott.emp;

2、將scott用戶下的student表同義給所有用戶使用

create public sysnoym student for scott.emp;

三、視圖的定義及使用

視圖是為了簡化復雜查詢的,視圖是一張虛擬表,并不存儲數據,但是數據都來源于真實表中

1、創建一個視圖,從學生表中名字為‘張三’的學生中取

create view studentview as select * from student where name = "張三";

2、查詢學生視圖

select * from studentview;

3、更新學生視圖,將name為‘張三’的年齡更新為20

update studentview set age = 20 where name = "張三";

這個時候我們發現真實表student中張三的年齡也被修改了,所以這樣修改視圖會影響真實表的數據,那么我們接下來創建一個視圖讓他修改后不影響真實表。

4、創建一個視圖,從學生表中名字為‘張三’的學生中取,并且修改視圖不能影響原來真實表的數據

create or replace view studentview as 
select * from student where name = "張三"
with check option; 

5、創建一個視圖,從學生表中名字為‘張三’的學生中取,并且視圖設置為只讀

create or replace view studentview as 
select * from student where name = "張三"
with read only;

四、索引的定義及使用

1、創建一個學生表,并給name建立索引

create index name_index on student (name);

五、總結

這里的相關內容還沒有整理完畢,文章后面持續更新,建議收藏。

文章中涉及到的命令大家一定要像我一樣每個都敲幾遍,只有在敲的過程中才能發現自己對命令是否真正的掌握了。

到此這篇關于Oracle數據庫對象的使用的文章就介紹到這了,更多相關Oracle數據庫對象內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Oracle
相關文章:
国产综合久久一区二区三区