資料庫伺服器進階功能

使用者與權限管理

同步與交易

View

Trigger

Stored Procedure

使用者與權限管理

不同的使用者可以有不同的角色與權限

create user xxxx identified by 密碼;

create user xxxx with password '密碼';

drop user xxxx;

權限的授與：Grant

grant select on table_name to user;

grant all on table_name to user;

權限的收回：Revoke

revoke select on table_name from user;

同步與交易

手動做table lock： lock table xxx;

鎖定的方式：

SHARE：其他人還能讀

EXCLUSIVE：其他人不能讀

交易：一整批的資料庫處理，必須同時執行成功或不執行（例如：賣出貨物、在收入資料表記帳並在庫存資料表扣除存貨）

START TRANSACTION：交易開始

ROLLBACK：取消交易

COMMIT：確認交易

View

View是一個以查詢來建構的虛擬table

Create view view_name (a,b) as Query

create view man (name,tel,address) as select name,tel,address from main where gender='男';

View是用來簡化查詢

通常不能對View下update、insert與 delete指令

Trigger

用來處理當某個table 進行insert、delete和update處理時，進行一些相關的動作

CREATE TRIGGER tbefore BEFORE INSERT OR UPDATE OR DELETE ON main FOR EACH ROW EXECUTE PROCEDURE trigf();

CREATE TRIGGER tafter AFTER INSERT OR UPDATE OR DELETE ON main FOR EACH ROW EXECUTE PROCEDURE trigf();

Stored Procedure（一）

Stored Procedure 用來預先定義一些資料庫程序，可以減少每次查詢資料庫系統分析SQL語意的時間，加速系統效率。

各家資料庫提供不同的附加語言，可能會造成系統相容性降低

PL/pgSQL

create function isgpar(char(8),int,int) returns bigint

as 'select count(*) from gparsing where engs= $1 and sec = $3 and chap = $2 and wid = 0;'

Language 'sql';

Stored Procedure（二）

Oracle PL/SQL

CREATE OR REPLACE FUNCTION cs_fmt_browser (v_name IN VARCHAR, v_version IN VARCHAR)

RETURN VARCHAR IS

BEGIN

IF v_version IS NULL THEN

RETURN v_name;

END IF;

RETURN v_name || '/' || v_version;

END;

/

SHOW ERRORS;

資料庫伺服器進階功能

tjm

1998-09-08T14:53:16