SQL學習:三
阿新 • • 發佈:2022-03-18
高階資料過濾 AND OR
SQL 允許給出多個WHERE子句。這些子句有兩種使用方式,即以AND子句或OR子句的方式使用。
1、AND操作符
用來指示檢索滿足所有給定條件的行。
SELECT prod_id,prod_price,prod_name FROM Products WHERE vend_id='DLL01' AND prod_price<=4;
2、OR操作符
用來指示檢索匹配任意條件的行。
SELECT prod_id,prod_price,prod_name,vend_id FROM Products WHERE vend_id='DLL01' OR vend_id='BRS01';
求值順序
由於AND在求值過程中優先順序高,操作符被錯誤地組合了。此問題的解決辦法是 使用圓括號對操作符進行明確的分組。圓括號具有比AND或OR操作符更高的優先順序。請看下面示例區別:
SELECT prod_name,prod_price,vend_id FROM Products WHERE vend_id='DLL01' OR vend_id='BRS01' AND prod_price>=10; SELECT prod_name,prod_price,vend_id FROM Products WHERE (vend_id='DLL01' OR vend_id='BRS01') AND prod_price>=10;
3、IN操作符
IN 操作符用來指定條件範圍,範圍中的每個條件都可以進行匹配。IN取一組由逗號分隔、括在圓括號中的合法值。可以理解為OR。
SELECT prod_name,prod_price,vend_id FROM Products WHERE vend_id IN('DLL01','BRS01') ORDER BY prod_name;
IN操作符的優點:
比一組OR操作符執行得更快。
可以包含其他SELECT 語句,能夠更動態地建立WHERE子句。
4、NOT操作符
NOT操作符有且只有一個功能,那就是否定其後所跟的任何條件。因為NOT從不單獨使用(它總是與其他操作符一起使用),所以它的語法與其他操作符有所不同。NOT關鍵字可以用在過濾的列前而不僅是在其後。
SELECT prod_name FROM Products WHERE NOT vend_id='DLL01' ORDER BY prod_name;