Oracle資料庫學習筆記之索引,序列及同義詞

2021-08-04 16:45:16 字數 2331 閱讀 6429

索引(index):--加快資料的查詢而建立的資料庫物件也叫資料庫模式物件

可以為某些頻繁出現在select中的條件建立索引

建立索引(索引的建立與刪除不需要許可權)

語法:create index 索引名 on 表名(欄位名);

create index i_name on emp(ename);

select * from emp where ename like '%s%';用到上面的索引(不用顯示的呼叫,資料庫自動引用)

create index i_name_and_job on emp(ename,job);

select * from emp where ename='scott' or job='manager'; --能用到上面建立的索引

select * from emp where ename='scott';  --不會用到上面建立的索引

資料庫會為主鍵約束和唯一約束自動建立索引稱之為唯一索引

create unique index 索引名 on 表名(欄位名);

create unique index i_bname on book(bname);

設定索引原則:

1.大表

2.頻繁被使用的字段

刪除索引:

drop index 索引名;

序列(sequence):

是序列號生成器,可以為表中的行自動生成序列號,產生一組等間隔的數值(型別)。主要用途是為表生成主鍵值

建立序列需要create sequence許可權

語法create sequence 序列名 

[start with n]

--以n開始生成,預設值是1

[increment by n]

--每次增長n,預設值是1

--有無有最大值n,系統能生成的最大值(10^27)

--有無有最小值n,系統能生成的最小值(-10^27,預設值是1

--有無緩衝n,預設是20

--是否迴圈,預設不迴圈

建立乙個序列

create sequence seq_test

strat with 2

increment by 2

maxvalue 99999

nochache 

nocycle

序列的使用:

current value

1.currval 獲取當前序列的值

用法:序列名.currval

2.nexval 獲取下乙個序列的值

用法:序列名.nextval

select seq_test.nextval from dual;--2

select seq_test.nextval from dual;--4

select seq_test.currval from dual;--4

insert into book(bid,bname) values(seq_1.nextval,'第一本');

insert into book(bid,bname) values(seq_1.nextval,'第二本');

刪除序列:

drop sequence 序列名;

刪除序列需要是當前序列的建立者,或具有drop any sequence許可權

序列的修改:

alter sequence 序列名 

[increment by n]

--每次增長n,預設值是1

--有無有最大值n,系統能生成的最大值(10^27)

--有無有最小值n,系統能生成的最小值(-10^27,預設值是1

--有無緩衝n,預設是20

--是否迴圈,預設不迴圈

注意:不能修改初始值

alter sequence seq_test increment by 5;

檢視序列的資料字典user_sequences

同義詞(synonym):--為資料庫模式物件起的別名

建立同義詞需要create synonym 系統許可權

同義詞的種類:

公有同義詞:public synonym 

私有同義詞:synonym 當前同義詞的擁有者或當前同義詞的擁有者授權個某個使用者

語法:create [public] synonym 同義詞名 

for [賬戶名.]物件名;

create synonym syn_emp for emp;

select * from syn_emp;

刪除同義詞:

drop synonym 同義詞名;

刪除同義詞需要是當前同義詞的擁有者或具有drop any sysnonym系統許可權

user_synonyms--同義詞資料字典

Oracle筆記之Oracle資料庫資料型別

1 char 定長,create table tablename filed1 char 32 最大2000個字元,存放時超過報錯,不足補空格。補 dump函式,檢視字段資訊。select filed1,dump filed1 from tablename 2 varchar2 變長,最大4000個...

資料庫學習之oracle

1 oracle資料庫是乙個以高階結構化查詢語言 sql 為基礎的大型關係型資料庫。2 oracle的特點 極其優越的效能 大型資料庫和超大型資料庫首選 基於角色的許可權管理 良好的支援大資料儲存格式 圖音視動 良好的分部式管理 獨創性的表空間理念。3 oracle 8i i internet or...

Oracle資料庫學習筆記 一

微軟 sql server 和 access 瑞典mysql ab公司 mysql ibm公司 db2 美國sybase公司 sybase ibm公司 informix 美國oracle公司 oracle 小型資料庫 access 中型資料庫 sql server mysql informix 大型...