Informix SQL 语句详解 (2)
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
lovqing 回复于:2002-12-23 11:20:27
up
just 回复于:2002-12-23 18:33:13
谢谢,很实用
大梦 回复于:2002-12-23 18:47:27
呵呵!
wylmoon 回复于:2002-12-23 18:57:39
大梦,你有INFOMIX全套安装系统吗?
大梦 回复于:2002-12-23 19:07:06
哈哈! 没得呀!
wylmoon 回复于:2002-12-23 19:14:19
你知道ACE平台是什么?,它能调用INFORMIX生成表单文件?
大梦 回复于:2002-12-23 19:20:55
好象是informix生成的报表吧!
zoukunhong 回复于:2003-03-12 17:38:33
补充一下:
回收用户的DBA权限时,为防止用户在数据库上存取,还需要回收该用户的resource和connect权限。
sgool 回复于:2003-03-12 18:00:59
不错,UP
muzx 回复于:2003-03-12 22:25:25
顶!
大梦 回复于:2003-03-12 22:39:04
都发了好长时间了现在才顶!
dajing 回复于:2003-09-30 15:24:01
^.^顶^.^顶
star_212 回复于:2006-04-07 14:48:22
同一個table有几人在操作,若有人在使用其他程式時,要update這個table時,出現如下
錯誤:
(-244)upd cqg_file 無法以實際排列順序讀取下一列
請教,該如何處理?
star_212 回复于:2006-04-07 14:51:15
table被鎖時,不知用共享鎖可否update,還有一种方式不知可否,執行 alter table table_name lock mode (row)
liqxy 回复于:2007-01-17 19:58:47
好帖,收了!
|