PostgreSQL
上一頁   下一頁

第四章. 運算符號

內容
語法優先順序
通用運算符號
數字運算符號
幾何運算符號
時間間隔運算符號
IP V4 CIDR 運算符號
IP V4 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) 可以顯示這些運算符號。

語法優先順序

運算符號的優先順序現在是語法分析器的硬程式碼。多數運算符號有相同的優先順序而且是左關聯的。這有可能導致不可預見的後果﹔比如說,布爾運算符號 "<" 和 ">" 與 "<=" 和 ">=" 有不一樣的優先順序。

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