| 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 網路和主機地址 | 開頭 | 通用運算符號 |