在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ 數(shù)據(jù)庫/ MySQL WHERE語句
MySQL+Node.js連接和操作
MySQL刪除表數(shù)據(jù)
http://www.yiibai.com/mysql/triggers.html
MySQL是什么?
MySQL插入數(shù)據(jù)
MySQL是什么?
MySQL全文搜索
MySQL數(shù)據(jù)庫服務器安裝
MySQL創(chuàng)建表
MySQL導入示例數(shù)據(jù)庫
MySQL教程
MySQL函數(shù)
MySQL管理
MySQL WHERE語句
MySQL存儲過程
MySQL技巧
MySQL觸發(fā)器
MySQL示例數(shù)據(jù)庫
MySQL重命名表
MySQL數(shù)據(jù)類型
MySQL創(chuàng)建與刪除數(shù)據(jù)庫
MySQL更新表數(shù)據(jù)
MySQL快速學習入門
MySQL安裝
MySQL快速入門
MySQL視圖
http://www.yiibai.com/mysql/mysqltips.html
MySQL修改表結(jié)構(gòu)
MySQL基礎教程
MySQL+Python連接和操作
http://www.yiibai.com/mysql/basic-mysql.html
MySQL查詢數(shù)據(jù)
http://www.yiibai.com/mysql/views.html
http://www.yiibai.com/mysql/full-text-search.html
下載本MySQL教程的示例數(shù)據(jù)庫(其中包函表和示例數(shù)據(jù))
http://www.yiibai.com/mysql/stored-procedure.html

MySQL WHERE語句

在本教程中,我們將學習如何在SELECT語句中使用MySQL WHERE子句來過濾結(jié)果集中的行記錄。

1. MySQL WHERE子句簡介

如果使用SELECT語句但不使用WHERE子句在表中查詢數(shù)據(jù),則會獲取表中的所有行記錄,這些行記錄中大部分是不想要的行記錄。例如,在一些表中存放商業(yè)交易中的數(shù)據(jù)。 從這些表中獲取所有行,尤其是對于諸如員工,銷售訂單,采購訂單,生產(chǎn)訂單等的大型表格來說,這是沒有意義的,因為我們經(jīng)常想要的是一些特定的數(shù)據(jù),例如本季度的銷售額 ,今年銷量比去年同期的銷量等等。

WHERE子句允許根據(jù)指定的過濾表達式或條件來指定要選擇的行。

您還將學習如何使用LIMIT子句來限制SELECT語句返回的行數(shù)。

2. MySQL WHERE子句示例

我們將繼續(xù)使用示例數(shù)據(jù)庫(yiibaidb)employees表中的數(shù)據(jù),如下圖所示。

假設只想從employees表中獲取銷售代表員工,可使用以下查詢:

SELECT 
    lastname, firstname, jobtitle
FROM
    employees
WHERE
    jobtitle = 'Sales Rep';

執(zhí)行上面查詢,得到以下結(jié)果 -

mysql> SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep';
+-----------+-----------+-----------+
| lastname  | firstname | jobtitle  |
+-----------+-----------+-----------+
| Jennings  | Leslie    | Sales Rep |
| Thompson  | Leslie    | Sales Rep |
| Firrelli  | Julie     | Sales Rep |
| Patterson | Steve     | Sales Rep |
| Tseng     | Foon Yue  | Sales Rep |
| Vanauf    | George    | Sales Rep |
| Bondur    | Loui      | Sales Rep |
| Hernandez | Gerard    | Sales Rep |
| Castillo  | Pamela    | Sales Rep |
| Bott      | Larry     | Sales Rep |
| Jones     | Barry     | Sales Rep |
| Fixter    | Andy      | Sales Rep |
| Marsh     | Peter     | Sales Rep |
| King      | Tom       | Sales Rep |
| Nishi     | Mami      | Sales Rep |
| Kato      | Yoshimi   | Sales Rep |
| Gerard    | Martin    | Sales Rep |
+-----------+-----------+-----------+
17 rows in set

即使WHERE子句出現(xiàn)在語句的末尾,但MySQL會首先使用WHERE子句中的表達式來選擇匹配的行。它選擇具有職位名稱為銷售代表的行記錄。

jobtitle = 'Sales Rep';

MySQL從SELECT子句中的選擇列表中選擇列。

可以像上面的查詢一樣形成一個簡單的條件,或者是將多個表達式與邏輯運算符(如AND,OR等)組合在一起的一個非常復雜的例子。例如,要在辦公室代碼(officeCode)等于1中查找所有銷售代表,請使用以下查詢:

SELECT 
    lastname, firstname, jobtitle
FROM
    employees
WHERE
    jobtitle = 'Sales Rep' AND officeCode = 1;

執(zhí)行上面查詢后,得到以下結(jié)果 -

mysql> SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle = 'Sales Rep' AND officeCode = 1;
+----------+-----------+-----------+
| lastname | firstname | jobtitle  |
+----------+-----------+-----------+
| Jennings | Leslie    | Sales Rep |
| Thompson | Leslie    | Sales Rep |
+----------+-----------+-----------+
2 rows in set

下表列出了可用于在WHERE子句中形成過濾表達式的比較運算符。

操作符 描述
= 等于,幾乎任何數(shù)據(jù)類型都可以使用它。
<>!= 不等于
< 小于,通常使用數(shù)字和日期/時間數(shù)據(jù)類型。
> 大于,
<= 小于或等于
>= 大于或等于

以下查詢使用不等于(!=)運算符來獲取不是銷售代表的其它所有員工:

SELECT 
    lastname, firstname, jobtitle
FROM
    employees
WHERE
    jobtitle <> 'Sales Rep';

執(zhí)行上面查詢語句, 得到以下結(jié)果 -

mysql> SELECT lastname, firstname, jobtitle FROM employees WHERE jobtitle <> 'Sales Rep';
+-----------+-----------+----------------------+
| lastname  | firstname | jobtitle             |
+-----------+-----------+----------------------+
| Murphy    | Diane     | President            |
| Patterson | Mary      | VP Sales             |
| Firrelli  | Jeff      | VP Marketing         |
| Patterson | William   | Sales Manager (APAC) |
| Bondur    | Gerard    | Sale Manager (EMEA)  |
| Bow       | Anthony   | Sales Manager (NA)   |
+-----------+-----------+----------------------+
6 rows in set

以下查詢將獲得辦公室代碼大于5的每位員工:

mysql> SELECT lastname, firstname, officeCode FROM employees WHERE officecode > 5;
+-----------+-----------+------------+
| lastname  | firstname | officeCode |
+-----------+-----------+------------+
| Patterson | William   | 6          |
| Bott      | Larry     | 7          |
| Jones     | Barry     | 7          |
| Fixter    | Andy      | 6          |
| Marsh     | Peter     | 6          |
| King      | Tom       | 6          |
+-----------+-----------+------------+
6 rows in set

辦公室代碼小于或等于4(<= 4)的員工呢?

SELECT 
    lastname, firstname, officeCode
FROM
    employees
WHERE officecode <= 4;

執(zhí)行上面查詢語句, 得到以下結(jié)果 -

mysql> SELECT lastname, firstname, officeCode FROM employees WHERE officecode <= 4;
+-----------+-----------+------------+
| lastname  | firstname | officeCode |
+-----------+-----------+------------+
| Murphy    | Diane     | 1          |
| Patterson | Mary      | 1          |
| Firrelli  | Jeff      | 1          |
| Bondur    | Gerard    | 4          |
| Bow       | Anthony   | 1          |
| Jennings  | Leslie    | 1          |
| Thompson  | Leslie    | 1          |
| Firrelli  | Julie     | 2          |
| Patterson | Steve     | 2          |
| Tseng     | Foon Yue  | 3          |
| Vanauf    | George    | 3          |
| Bondur    | Loui      | 4          |
| Hernandez | Gerard    | 4          |
| Castillo  | Pamela    | 4          |
| Gerard    | Martin    | 4          |
+-----------+-----------+------------+
15 rows in set

更多關(guān)于MySQL WHERE子句…

還有一些有用的運算符可以在WHERE子句中使用來形成復雜的條件,例如:

  • BETWEEN選擇在給定范圍值內(nèi)的值。
  • LIKE匹配基于模式匹配的值。
  • IN指定值是否匹配列表中的任何值。
  • IS NULL檢查該值是否為NULL

在本教程中,我們學習了如何使用MySQL WHERE子句來根據(jù)條件過濾行記錄。