| PostgreSQL | ||
|---|---|---|
| 上一页 | 下一页 | |
描述 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) 可以显示这些操作符.
操作符的优先级现在是语法分析器的硬代码.多数操作符有相同的优先级而且是左关联的。这有可能导致不可预见的后果;比如说,布尔操作符 "<" 和 ">" 与 "<=" 和 ">=" 有不一样的优先级.
表 4-1. 操作符顺序 (优先级降序)
| 元素 | 优先级 | 描述 |
|---|---|---|
| UNION | 左 | SQL 选择构造(select construct) |
| :: | Postgres 类型转换 | |
| [ ] | 左 | 数组分隔符 |
| . | 左 | 表/列分隔符 |
| - | 右 | 负(unary minus ) |
| ; | 左 | 声明结束,logarithm |
| : | 右 | 幂 |
| | | 左 | 间隔开始(start of interval ) |
| * / % | 左 | 乘除 |
| + - | 左 | 加减 |
| IS | 测试 TRUE, FALSE, NULL | |
| ISNULL | 测试 NULL | |
| NOTNULL | 测试 NOT NULL | |
| (all other operators) | 本地和用户定义 | |
| IN | 设置成员(set membership) | |
| BETWEEN | 包含 | |
| LIKE | 字符串模式匹配 | |
| < > | 布尔不相等 | |
| = | 右 | 相等 |
| NOT | 右 | 非 |
| AND | 左 | 逻辑与 |
| OR | 左 | 逻辑或 |
| 上一页 | 首页 | 下一页 |
| IP 版本 4 网络和主机地址 | 开头 | 通用操作符 |