何謂CREATE INDEX
- 建立索引在表格欄位上,它可以大幅提升查詢效能,可是對於新增,修改,刪除的操作會降低資料庫的效能,所以建立索引一般是配合查詢操作使用
索引型態介紹
- 複合式索引 : 所建立的索引可參考多個欄位
- 函數索引 : 與函數搭配建立索引
- 一般索引 : 不屬於複合式索引與函數索引
格式
CREATE [UNIQUE | BITMAP] INDEX [schema.]index_name
ON [schema.]table_name(column [,column...]);
UNIQUE : 建立唯一索引,唯一索引所參考到的欄位不能有重複值
BITMAP : 建立位元映射索引,通常使用位元映射索引是針對重複性高的欄位值
schema : 結構名稱
index_name : 索引名稱
table_name : 表格名稱
column : 欄位名稱
使用方式
說明 : 建立唯一索引(又可稱為一般索引)在hr使用者的emp表格的xid欄位上,索引名稱為id
create unique index id on hr.emp(xid);
說明 : 建立位元映射索引(又可稱為複合式索引)在hr使用者的emp表格的xid欄位與name欄位上,索引名稱為x_id
create bitmap index x_id on hr.emp(xid,name);
說明 : 建立索引(又可稱為函數索引)在hr使用者的emp表格的name欄位上,該欄位被索引參考到的值是為大寫,因為使用大寫函數,索引名稱為app
create index app on hr.emp(upper(name));
何謂GRANT-物件權限
格式
GRANT {privilege_name | ALL [PRIVILEGES]}
[(column [,column...])]
ON { [schema.]object_name |
DIRECTORY directory_name |
JAVA {SOURCE | RESOURCE} [schema.]object_name }
TO {grantee | PUBLIC}
[WITH GRANT OPTION];
privilege_name : 物件權限,例如SELECT,INSERT,UPDATE,DELETE
ALL [PRIVILEGES] : 所有物件權限
column : 欄位名稱
schema : 結構名稱
object_name : 物件名稱
directory_name :目錄名稱
grantee : 被授予的使用者或角色
PUBLIC : 所有使用者
WITH GRANT OPTION : 被授予物件權限的使用者可在授予別人,稱為轉授權
使用方式
說明 : 授予aa使用者物件權限,可針對hr使用者emp表格的salary與employee_id欄位進行修改
grant update (salary,employee_id) on hr.emp to aa;
說明 : 授予aa使用者所有物件權限,可針對hr使用者emp表格進行新增,修改,刪除,查詢等,並轉授權
grant all on hr.emp to aa with grant option;
說明 : 授予所有使用者物件權限,可針對hr使用者emp表格進行查詢
grant select on hr.emp to public;