Oracle對象下集(序列、同義字、分區表、database link)

來源:互聯網
上載者:User

標籤:databse link   Oracle同義字   Oracle序列   Oracle分區表   張晨   

本人所有博文純手碼,給個關注或者贊吧!博主:張晨晨QQ:1445696451歡迎隨時加Q討論技術。
一、Oracle的序列
·序列是用來產生惟一的連續的整數的資料庫物件。序列通常可以用來自動產生主鍵或者唯一鍵的值;可根據數值進行升序或者降序的排列
·比如建立班級的學生資訊登記表,可以將學號使用序列自動產生。班級的學號都是10000~10060這個範圍,每登記一個學生,序列自動成長一個。
1、建立序列的命令文法
create sequence seq_name [start with interger] [increment by interger] [maxvalue interger ] [minvalue interger] [cycle|nocycle] [cache interger|nocache];
注釋:
create sequence seq_name :建立序列
start with :從...開始產生序列
increment by :每次增長的數值
maxvalue :最大的序列值,預設不限制最大值
minvalue :最小的序列值,預設不限制最小值
cycle :翻譯為中文是圓的意思,這裡其實是指迴圈,當序列到達最大值/最小值時,從初始值開始繼續產生。預設為nocycle,不進行迴圈產生。
cache :預先分配出來的序列,儲存於緩衝中,可用於快速存取序號。預設為nocache,即不分配緩衝
舉例:
create sequence seq_1
start with 10000
increment by 1
maxvalue 10060
nocycle;

:還是上面的例子,建立一個seq_1序列,從10000開始,每次增長為1,最大值為10060,不進行迴圈產生。
2、我們建立好了序列自然需要將序列應用到我們建立的表(table)中。可以通過nextval、currval偽列來訪問該序列的值。
·nextval:這個偽列會在建立序列後第一次使用時,返回該序列的初始值。在以後使用時,將使用increment by子句的值來增加序列值
·currval:會返回序列的最後一次引用nextval時返回的值。
舉例:
create table student_class25(stu_id number not null,stu_name varchar2(20),
stu_age number);

建立一個student_class25表
insert into student_class25 values (seq_1.nextval,’zhangsan’,’13’);
insert into student_class25 values (seq_1.nextval,’lisi’,’13’);
...

向student_class25表中插入資料,在對應stu_id這一列我們引用序列seq_1。
select seq_1.currval from dual;
查詢序列當前值
##如果在你指定緩衝的環境下,執行startup force重啟資料庫,接著寫的資料的序號會從初始值+緩衝值開始。例如,初始值為10,緩衝值為30個,那麼執行startup force後,序號會從40開始產生。
3、維護序列
1)查看序列(使用字典user_sequences)
select from user_sequences;
2)刪除序列
drop sequence seq_name;
3)更改序列
alter sequence seq_name [...];
二、Oracle的同義字
·顧名思義,同義字就是意思相同的詞語,你可以看做是對象的一個別名,就像liunx作業系統中的命令的別名一樣。但是linux命令別名只提供了方便容易記憶的好處。
1、而在Oracle中,同義字可用來:
1)簡化Oracle中輸入的SQL語句,通過給對象建立同義字,我們可以簡化複雜的SQL語句,方便記憶和操作
2)隱藏對象的名稱和所有者,給對象建立了同義字,如scott模式下的emp表(scott,emp),我們建立一個同義字就叫做se。那麼我們在查詢這個表的時候就不用擔心暴露表的位置,提供了一定的安全性
3)提供對資料庫的公用訪問,可以通過給遠端連線建立公有同義字給其他的使用者查看。
4)以及為分散式資料庫的遠程對象提供位置透明性,我們給資料庫連結(將其看做是一個對象)建立同義字,使使用者可以無阻礙的查看資料表,這時候對於使用者而言,位置就是透明的。
2、同義字分類(兩種)
1)私人同義字:為當前模式的使用者私人,其他使用者無法使用
2)公有同義字:與私人同義字相反
3、建立同義字
create [or replace] [public] synonym sy_name for object_name;
注釋:
create ... for :給...創鍵同義字
[or replace] :該可選項的作用是覆蓋(如果存在同名的同義字就會將其覆蓋掉)
[public] :加上該選項表示建立公有同義字
sy_name :同義字名
object_name :對象名稱,如scott.emp(即scott使用者下的emp表)
4、舉例
create synonym sy_name for scott.emp;
為scott.emp表建立私人同義字
create public synonym sy_name for scott.emp;
建立公有同義字
##建立好的公有同義字不代表使用者就可以使用,我們還需要對需要操作這個表的使用者進行授權
5、複雜應用
1)建立oracle串連的命令
舉例:
①conn system/[email protected];
②create database link link_1 connect system identified by pwd123 using orcl;
③create synonym sy_t for [email protected]_1;
通過以上命令建立一條串連到遠端資料庫的資料庫連結,並為連結中資料庫的scott.emp表建立同義字。
6、維護同義字
1)查看同義字
select
from user_synonyms;

2)刪除公有/私人同義字
drop [public] synonym sy_name;
三、資料庫連結
1、資料庫連結是定義一個資料庫到另一個資料庫路徑的對象,可以通過資料庫連結查詢遠端資料表、執行遠程程式。在分布式環境中,Oracle資料庫連結是必須的。有一點,oracle資料庫連結是單向的;一個連結,能從a資料庫連結到b資料庫,那麼無法從b資料庫連結到a資料庫。
2、資料庫連結分類
private:屬於建立該連結的使用者,也只有該使用者可以使用
public:屬於public,允許本機資料庫中所有擁有資料庫存取權限的使用者使用
global:全集類型,網路中的資料庫使用者均可使用
3、建立資料庫連結
create database link connect to username identified by user
passwd using
‘(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = ipaddress)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbtest)
)
)’;

四、分區表
·Oracle可將表的行分成多個部分(儲存於不同的資料表空間),這些部分組成的表就是分區表,這些部分被稱為Oracle分區。而分區表的應用一般來說,表的大小要足夠大才可以體現分區表的作用,太小的表不建議使用。
1、分區表有很大的作用:
1)改善標的查詢效能;同時實現分開管理
2)便於備份和恢複,如果一部分的資料丟失,只需要單獨恢複對應分區即可
3)分開儲存資料,提高安全性
4)分區對於使用者而言也是透明的
2、建立分區表
create table t_name
(stu_id number,stu_name varchar2(20),stu_age number)
partition by range (stu_id)
(
partition p1 values less than (),
partition p2 values less than (),
parti...
);

Oracle對象下集(序列、同義字、分區表、database link)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.