日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

Oracle數據庫對象的使用詳解_oracle

作者:曠世奇才李先生 ? 更新時間: 2022-09-21 編程語言

一、序列

序列可以使用在數據庫表的自動增長列中來用,假如我們的學生表的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);

五、總結

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

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

原文鏈接:https://blog.csdn.net/weixin_44096133/article/details/125547169

欄目分類
最近更新