PostgreSQL AND/OR運算符
PostgreSQL的AND和OR運算符用於組合多個條件來縮小選定一個PostgreSQL表中的數據。這兩個運算符被稱為連接詞運算符。
這些運算符提供了一種的方法使到多個不同的操作符比較在相同的PostgreSQL表。
AND運算符:
AND運算符允許存在多個條件中的一個PostgreSQL表中的WHERE子句。雖然使用AND運算符,完整的條件下將被假設當所有的條件都成立。例如[條件1]和[條件2]將為true,隻有當這兩個條件1和條件2都為TRUE。
語法:
WHERE子句的基本語法與操作如下:
SELECT column1, column2, columnN FROM table_name WHERE [condition1] AND [condition2]...AND [conditionN];
可以結合使用AND運算符條件N多個。應采取PostgreSQL語句,無論它是一個事務或查詢,所有分離的條件必須是TRUE。
實例:
考慮表公司有如下記錄:
testdb# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
年齡大於或等於25並且工資是大於或等於65000.00所有的記錄,下麵SELECT語句列表:
testdb=# SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
以上PostgreSQL的表會產生以下結果:
id | name | age | address | salary ----+-------+-----+------------+-------- 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (2 rows)
OR運算符:
OR運算符也可用於多個條件結合起來,在一個PostgreSQL表的WHERE子句。雖然使用OR運算符,完整的條件下將被假設任何條件至少是真實的。例如[條件1]或[條件2]將是true,如果條件1或條件2是true。
語法:
OR運算符與WHERE子句的基本語法如下:
SELECT column1, column2, columnN FROM table_name WHERE [condition1] OR [condition2]...OR [conditionN]
可以結合N多的條件下使用OR運算符。對於一個PostgreSQL語句,無論它是一個事務或查詢,任何一個分離的條件或是TRUE。
實例:
考慮公司表中有以下記錄:
# select * from COMPANY; id | name | age | address | salary ----+-------+-----+-----------+-------- 1 | Paul | 32 | California| 20000 2 | Allen | 25 | Texas | 15000 3 | Teddy | 23 | Norway | 20000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 6 | Kim | 22 | South-Hall| 45000 7 | James | 24 | Houston | 10000 (7 rows)
下麵SELECT語句是年齡大於等於25或薪水大於等於65000.00所有的記錄列表:
testdb=# SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
以上PostgreSQL的表會產生以下結果:
id | name | age | address | salary ----+-------+-----+------------+-------- 1 | Paul | 32 | California | 20000 2 | Allen | 25 | Texas | 15000 4 | Mark | 25 | Rich-Mond | 65000 5 | David | 27 | Texas | 85000 (4 rows)