Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103573375
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-07 22:51:14

 




第四章 操作符
 

▓ 语法优先级 

▓ 通用操作符 

▓ 数字操作符 

▓ 几何操作符 

▓ 时间间隔操作符 

▓ IPV4 CIDR 操作符 

▓ IPV4 INET 操作符 



● 描述Postgres内建的可用操作符

Postgres提供大量的内建的用于系统类型的操作符,这些操作符在系统表pg_operator中定义,在pg_operator里的每一个入口/记录都包括操作符实现过程名和输入输出类型的表OID。 
要想了解所有“||”-字符串连接操作符的所有变种,使用下面命令: 


SELECT oprleft, oprright, oprresult, oprcode
FROM pg_operator WHERE oprname = ‘‖’;


oprleft|oprright|oprresult|oprcode
-------+--------+---------+-------
25 | 25 | 25 |textcat
1042| 1042| 1042 |textcat
1043| 1043| 1043 |textcat
(3 rows)



用户可以通过使用操作符名来使用操作符,例如: 
select * from emp where salary < 40000;

当然,用户可以直接使用操作符的实现函数。这时,上面查询应该这样表示: 

select * from emp where int4lt(salary, 40000);

psql有一个命令(dd)可以显示这些操作符。 



▲ 语法优先级

操作符的优先级现在是语法分析器的硬代码,多数操作符有相同的优先级而且是左关联的。这有可能导致不可预见的后果;比如说,布尔(Boolean)操作符“<“和”>”与“<=“和”>=”有不一样的优先级。 





● 通用操作符

这里列出的操作符是为一些常用数据类型定义的,其范围从数字类型到日期/时间类型。






● 数字操作符


※注意:两个操作符:“: ”和 “; ”,现在被减少使用,并将在下一个版本删除。使用对应的函数 exp( ) 和 ln( )。


● 几何操作符




● 时间间隔操作符

时间间隔数据类型tinterval 是初期的日期/时间类型的一个遗留,支持得并不象现代的类型那么好,有一些操作符用于这些类型。





● IP V4 CIDR 操作符





● IP V4 INET 操作符






To be continued.........



出处:南方Linux
阅读(1105) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~