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 )
: 冪 
| 間隔開始(start of interval )
* / % 乘,除,模除
+ - 加減
IS   測試 TRUE, FALSE, NULL
ISNULL   測試 NULL 
NOTNULL   測試 NOT NULL 
(所有其他符號)   本地和用戶定義 
IN   設置成員(set membership)
BETWEEN   包含 
OVERLAPS   時間間隔重疊
LIKE   字符串模式匹配 
< >   布爾不相等
= 相等 
NOT
AND 邏輯與
OR 邏輯或


上一頁 首頁 下一頁
IP 版本 4 網路和主機地址 開頭 通用符號