SQL AND & OR 運(yùn)算符

在本教程中,您將學(xué)習(xí)如何在子句中使用AND&OR運(yùn)算符,WHERE以根據(jù)多個(gè)條件過濾記錄。

根據(jù)條件選擇記錄

在上一章中,我們學(xué)習(xí)了如何使用帶有該WHERE子句的單個(gè)條件從表中獲取記錄。但是有時(shí)您需要根據(jù)多種條件來過濾記錄,例如選擇年齡大于30歲且國家/地區(qū)為美國的用戶,選擇價(jià)格低于100美元且評分大于4的產(chǎn)品,等等。

AND運(yùn)算符

AND運(yùn)算符是一個(gè)邏輯運(yùn)算符,它將兩個(gè)條件組合在一起,并且僅當(dāng)兩個(gè)條件的結(jié)果都為TRUE時(shí)才返回TRUE。 通常在SELECTUPDATE,DELETE語句的WHERE子句中使用AND運(yùn)算符來形成條件以過濾結(jié)果集。

SELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;

讓我們看一些示例,演示其實(shí)際工作方式。

假設(shè)我們在數(shù)據(jù)庫中有一個(gè)名為employees的表,其中包含以下記錄:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

WHERE與AND運(yùn)算符一起使用子句

以下SQL語句將僅從employees表中返回薪水(salary)大于7000且dept_id等于5的那些雇員。

SELECT * FROM employees
WHERE salary > 7000 AND dept_id = 5;

執(zhí)行后,您將獲得如下輸出:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+

OR運(yùn)算符

同樣,OR運(yùn)算符也是將兩個(gè)條件組合在一起的邏輯運(yùn)算符,但是TRUE當(dāng)兩個(gè)條件中的任何一個(gè)為時(shí),它將返回TRUE。

以下SQL語句將從employees表中返回薪水(salary)大于7000或dept_id等于5的所有雇員。

SELECT * FROM employees
WHERE salary > 7000 OR dept_id = 5;

這次您將獲得如下輸出:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

同時(shí)使用AND與OR運(yùn)算符

您還可以組合 AND 和 OR 創(chuàng)建復(fù)雜的條件表達(dá)式。

以下SQL語句將返回薪水大于5000,并且dept_id等于1或5的所有雇員。

SELECT * FROM employees
WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);

執(zhí)行完上面的查詢后,您將獲得如下輸出:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+
丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清