oracle數據庫SQL開發之序列,索引,同義詞

一、序列

– 序列是按照一定規則能自動增加/減少數字的一種數據庫對象。
– 通常可以使用序列自動地生成主鍵值。

(一)創建序列

例:創建序列test_seq,起始值爲10,每次增長2,最大值100,最小值9,循環序列,每次緩存10

create sequwnce te77st_seq
start with 10 -- 序列從10 開始
increment by 2 -- 序列每次增加2
maxvalue 100 -- 序列最大值100
minvalue 9 -- 序列最小值9
cycle -- 序列循環, 每次增加2, 一直到100 後回到9 從新開始
cache 10-- 緩存中序列值個數爲10

(二)序列屬性

nextvalcurrval僞列 必須先執行有nextval語句的sql語句,使序列動起來
currval:表示序列返回的當前值;
nextval:表示序列返回的下一個值;
currval在被引用之前,必須先使用nextval來產生一個序列值;
– 可用語句 序列名.currval或 序列名.nextval來訪問序列;

(三)序列的使用

– 創建序列student_seq:

create sequence student_seq
start with 1
increment by 1;

– 使用序列student_seq生成student表中sid列插入值:(作用體現在這裏)

insert into student
values (student_seq.nextval, 'Scott', 'Computer Science', 11);

(四)序列的修改

– 正確修改

alter sequence test_seq
increment by 4 --序列每次增加4
maxvalue 1000 -- 序列最大值1000 (注意原始序列的最大值);
nocache ; -- 不設定緩存

rowid
– 是一個僞列,系統自動產生。
– rowid能唯一標示每一條數據庫行記錄的物理地址,通過
– rowid 能快速定位到一條行記錄。– 快速定位記錄,使用rowid檢索及操作數據,效率最快

二、索引

索引( index) • 建議索引命名格式:idx_tablename_columnname
– 是對數據庫表中一個或多個列的值進行排序的一種數據庫對象。
– 在數據庫中,通過索引可以加速對錶的查詢速度;

(一)索引的分類

1…單列索引:
– 索引建立在表中的某一列上。

2.複合索引:
– 索引建立在表中某幾列的組合上

(二)索引的創建

1.自動創建:當有primary key 或者 unique 約束時,會自動創建;
2.手動創建
-在emp表的ename字段上創建索引.

SQL>create index idx_emp_ename on emp (ename);

-在emp表的deptno和job的組合上創建索引

SQL>create index idx_emp_deptnojob on  emp (deptno,job);

(三)索引的缺點-----佔用空間,降低DML的操作速度

(四)刪除索引 drop index idx_tablename_columnname

三、同義詞

同義詞( synonym ) 是指向數據庫對象(如:表、視圖、序列、存儲過程等)的數據庫指針。
-創建employees表的別名。
create (public/private) s_emp
for hr.employees;
-刪除同義詞 – 只有數據庫管理員才擁有公有同義詞的創建和刪除權限
drop synonym s_emp;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章