[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 數據庫 > Informix > 正文
Informix SQL 語句詳解 (2)
本文出自: http://go3.163.com/~axiom999/ (2001-06-18 18:08:00)
GRANT {DBA|RESOURCE|CONNECT} TO {PUBLIC|user-list} 
授權命令。 

PUBLIC|user-list:全部或指定的用戶。 

三種權限居且僅居其一,事務處理過程中不要執行GRANT語句。 

例:grant resource to pulbic; 

GRANT tab-privilege ON table-name TO {PUBLIC|user-list} [WITH GRANT OPTION] 

授表級權限。 

tab-privilege:表級權限。 

table-name:表名稱。 

PUBLIC|user-list:全部或指定的用戶。 

[WITH GRANT OPTION]:表示被授權用戶有否權限進行二次授權。 

用戶可以在自己建立表達式或被[WITH GRANT OPTION]準許的表中進行賦權;限定越多的權限優先級越高。 

例:grant update(c1,c6) on user to dick with grant option; 

  

附(INFORMIX的權限) 

(1) 數據庫的權限(控制對數據庫的訪問以及數據庫中表的創建和刪除) 

DBA權限:全部權利,修改系統表,建立和刪除表與索引、增加和恢復表數據,以及授予其他用戶數據庫權限等; 

RESOURCE權限:允許對數據庫表中的數據進行存取,建立永久性表以及索引。 

CONNECT權限:只允許對數據庫表中的數據進行存取,建立和刪除視圖與臨時表。 

(2)表級權限(對表的建立、修改、檢索和更新等權限) 

ALTER:更改權限 

DELETE:刪除權限 

INDEX:索引權限 

INSERT:插入權限 

SELECT [(cols)]:指定字段或所有字段上的查詢權限,不指明字段缺省為所有字段。 

UPDATE [(cols)] :指定字段或所有字段上的更新權限,不指明字段缺省為所有字段。 

ALL [PRIVILEGES]:以上所有表級權限 

  

19. REVOKE {DBA|RESOURCE|CONNECT} FROM {PUBLIC|user-list} 

收權命令。 

PUBLIC|user-list:全部或指定的用戶。 

三種權限居且僅居其一,事務處理過程中不要執行GRANT語句。 

例:revoke resource from john; 

REVOKE tab-privilege ON table-name FROM {PUBLIC|user-list} 

收表級權限。 

tab-privilege:表級權限。 

table-name:表名稱。 

PUBLIC|user-list:全部或指定的用戶。 

[WITH GRANT OPTION]:表示被授權用戶有否權限進行二次授權。 

用戶只能取消由其本人賦予其他用戶的表級存取權限;不能取消自己的權限,對SELECT和UPDATE作取消時,將取消
所有表中字段的SELECT 和UPDATE權限。 

例;revoke update on user from dick; 

  

LOCK TABLE table-name IN {SHARE|EXCLUSIVE} MODE 
記錄級加鎖和表級加鎖或文件加鎖。 

table-name:表名稱。 

SHARE:允許讀表中數據,但不允許作任何修改 

EXCLUSIVE:禁止其他任何形式訪問表 

每次只能對表瑣定一次;事務處理過程中,BEGIN WORK立即執行LOCK TABLE以取代記錄級加鎖,COMMIT WORK和
ROLLBACK WORK語句取消所有對表的加鎖;若沒有事務處理,鎖將保持到用戶退出或執行UNLOCK為止。 

例:lock table user in exclusive mode; 

  

UNLOCK TABLE table-name 
取消記錄級加鎖和表級加鎖或文件加鎖。 

table-name:表名稱。 

例:unlock user; 

  

SET LOCK MODE TO [NOT] WAIT 
改變鎖定狀態。 

TO [NOT]:等待解鎖,有可能被死鎖或不等待並提示錯誤信息,表示此記錄被鎖,缺省值。 

訪問一個EXCLUSIVE狀態下的記錄,將返回一個錯誤。 

  

START DATABSE db_name [WITH LOG IN “pathname”] 
啟動事務處理。 

“pathname”:事務處理日志文件。 

執行該語句前,需要先關閉當前數據庫。 

例;clost database; 

start databse customer with log in “/usr/john/log/customer.log”; 

  

BEGIN WORK 
開始事務。例:begin work; 

  

COMMIT WORK 
提交(正常結束)事務。例:commit work; 

  

ROLLBACK WORK 
回滾(非正常結束)事務。例:rollback work; 

  

SELECT 
SELECT select_list FROM tab_name|view_name 

WHERE condition 

GROUP BY column_name 

HAVING condition 

ORDER BY column_list 

INTO TEMP table_name 

查詢語句。 

select_list:選擇表或* 

tab_name:表名稱 

view_name:視圖名稱。 

condition:查詢條件,可使用BETWEEN、IN、LIKE、IS NULL、LIKE、MATCHES、NOT、 

AND、OR、=、!=或<>、>、 >= 、<=、<、ALL、ANY、SOME 

column_name:分組字段名稱 

condition:群聚條件 

column_list:排序字段列表,缺省ASC,可指定DSC;排序時,NULL值小非零值。 

table_name:臨時表名稱 

例:略 

附(常用函數) 

(1)集合函數: 

count(*)、 

sum(數據項/表達式)、avg(數據項/表達式)、max(數據項/表達式)、min(數據項/表達式) 

count(distinct 數據項/表達式)、sum(distinct數據項/表達式)、avg(distinct數據項/表達式) 

(2)代數函數和三角函數 

HEX(數據項/表達式)、ROUND(數據項/表達式)、TRUNC(數據項/表達式)、 

TAN(數據項/表達式)、ABS(數據項/表達式)、MOD(被除數,除數) 

(3)統計函數 

標準差,stdev()、方差,variance()、范圍,rang() 

(4)時間函數 

DAY(日期/時間表達式):返回數字型 

MONTH(日期/時間表達式):返回整數 

WEEKDAY(日期/時間表達式):0��6,0星期天,1星期一;返回整數 

YEAR(日期/時間表達式)、返回整數 

DATE(非日期表達式):返回日期型 

EXTEND(日期/時間表達式,[第一個至最一個]):返回指定的整數 

MDY(月,日,年):返回日期型 

CURRENT:返回日期型 

(5)時間函數 

ROUND(),四舍五入。如:ROUND(10.95,position)position進行四舍五入的前一位置 

TRUNC(),截取。如:TRUNC(10.95,0)position截取的位置 

INFORMIX臨時表在下列情況下自動取消: 

A.退出數據庫訪問工具(如DBACCESS) 

B.SQL通話結束(DISCONNECT) 

C.發出取消表語句 

D.退出程序時 

  

INSERT 
INSERT INTO view_name|table_name [(column_list)] VALUES (value_list) 

或 INSERT INTO view_name|table_name [(column_list)] select_statement 

插入數據 

view_name|table_name:視圖名或表名稱 

column_list:數據項列表。 

value_list:值列表 

select_statement:查詢語句。 

例:略 

  

DELETE FROM view_name|table_name WHERE search-conditions 
刪除語句。 

view_name|table_name:視圖名或表名稱 

search-conditions;刪除條件 

例:略 

UPDATE 
UPDATE view_name|table_name SET column_1 = value_1ist WHERE search_conditions 

或UPDATE view_name|table_name SET column_1|* = value_1ist WHERE search_conditions 

更新數據語句。 

view_name|table_name:表名稱或視圖表名稱 

value_1ist:字段值 

search_conditions:更新數據的條件 

例:略 

CHECK TABLE table-name 
檢查索引語句。 

語句使用者是表的擁有者或擁有DBA權限;不能對systable使用此語句。 

例:略 

REPAIR TABLE table-name 
修復索引。 

語句使用者是表的擁有者或擁有DBA權限;不能對systable使用此語句。 

例:略 

LOAD FROM “file-name” INSERT INTO table_name [(column_name[,…])] 
將文本數據栽入表中。 

例:load form “aa.txt” insert into user; 

UNLOAD TO “pathname” 
將表中數據卸為文本。 

例:unload to “aa.txt” select * from user; 

INFO 
系統信息查詢。 

INFO TABLES:得到當前數據庫上表的名字。 

INFO columns FOR table_name:指定表上的字段信息。 

INFO INDEXES FOR table_name:指定表上的索引信息。 

INFO [ACCESS|PRIVILEGES] FOR table_name:指定表上的存取權限。 

INFO STATUS FOR table_name:指定表的狀態信息。 

例: info tables; 

  
 
(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
Informix SQL 語句詳解 (2) (2001-06-18 18:08:00)
Informix SQL 語句詳解 (1) (2001-06-18 17:04:00)
 

★  樊強制作 歡迎分享  ★