MySQL - WHERE 子句:像專業人士一樣過濾您的數據

你好啊,有志於數據庫的愛好者們!今天,我們將深入探討您 MySQL 工具包中最重要的工具之一:WHERE 子句。在這堂課結束時,您將能夠像有經驗的專業人士一樣過濾數據。所以,拿起您最喜歡的飲料,放鬆一下,讓我們一起踏上這個令人興奮的旅程!

MySQL - Where Clause

MySQL WHERE 子句是什麼?

想像您在一個有數百萬冊書的巨大圖書館裡。您正在尋找一本特定的書,比如說,關於「紅色熊貓」的書。您不會想要一一翻閱每一冊書,對吧?這就是 WHERE 子句在數據庫世界中派上用場的地方。它就像是一位超級聰明的圖書管理員,能夠立即找到您正在尋找的 exactly 這本書。

WHERE 子句讓我們能夠根據特定的條件過濾數據庫查詢的結果。這就像是在告訴 MySQL,「嘿,我只想要看到符合這些條件的特定信息。」

基本語法

以下是一個帶有 WHERE 子句的 SELECT 語句的基本結構:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

別擔心,如果這對您來說起初看起來有點令人生畏。我們會一點一滴地拆解它,並提供大量的範例。

使用 WHERE 子句抓取數據

讓我們來看看一些實際的範例。對於這些範例,想像我們有一個名為 books 的表,其結構如下:

列名 數據類型
id INT
title VARCHAR
author VARCHAR
genre VARCHAR
price DECIMAL
publish_date DATE

範例 1:等於比較

假設我們想要找到所有由「J.K. Rowling」撰寫的書:

SELECT title, publish_date
FROM books
WHERE author = 'J.K. Rowling';

這個查詢將返回我們數據庫中所有由 J.K. Rowling 撰寫的書的標題和出版日期。= 運算符用於檢查確切的相等性。

範例 2:大於比較

現在,如果我們想要找到所有價格超過 $20 的書呢?

SELECT title, price
FROM books
WHERE price > 20;

這個查詢使用 > 運算符來找到價格超過 20 的書。

範例 3:LIKE 運算符進行模式匹配

讓我們找到所有標題中包含「Harry」的書:

SELECT title, author
FROM books
WHERE title LIKE '%Harry%';

LIKE 運算符允許進行模式匹配。% 是一個萬用字元,匹配任何數量的字符。

範例 4:IN 運算符對多個值進行操作

如果我們想要找到特定類型的書:

SELECT title, genre
FROM books
WHERE genre IN ('Fantasy', 'Science Fiction', 'Mystery');

IN 運算符讓我們能在 WHERE 子句中指定多個值。

範例 5:BETWEEN 運算符對範圍進行操作

要找到在 2010 年至 2020 年間出版的書:

SELECT title, publish_date
FROM books
WHERE publish_date BETWEEN '2010-01-01' AND '2020-12-31';

BETWEEN 運算符選擇給定範圍內的值。

在客戶端程序中使用 WHERE 子句

當您使用像 MySQL 命令行客戶端或 MySQL Workbench 這樣的 MySQL 客戶端程序時,您可以直接輸入這些查詢以與您的數據庫進行交互。以下是一個步驟指南:

  1. 打開您的 MySQL 客戶端程序。
  2. 連接到您的數據庫:
    mysql -u username -p
  3. 選擇您的數據庫:
    USE your_database_name;
  4. 現在您可以運行我們討論過的任何 WHERE 子句範例。

例如:

SELECT title, author
FROM books
WHERE price < 15 AND genre = 'Romance';

這個查詢將返回所有價格低於 $15 的浪漫類型書的標題和作者。

專業提示:組合條件

您可以使用 AND、OR 和 NOT 來組合多個條件:

SELECT title, author, price
FROM books
WHERE (genre = 'Mystery' OR genre = 'Thriller') AND price < 25;

這個查詢找到所有價格低於 $25 的神秘或驚悚類型書。

常用的 WHERE 子句運算符

以下是一個常用運算符的便捷表格,您可以在 WHERE 子句中使用:

運算符 描述
= 等於
> 大於
< 小於
>= 大於或等於
<= 小於或等於
<> 不等於
BETWEEN 在某個範圍內
LIKE 搜索一個模式
IN 在 WHERE 子句中指定多個值
IS NULL 搜索空值
NOT 對條件進行否定

記住,熟練來自練習!不要害怕在您的 WHERE 子句中嘗試不同的運算符組合。

結論

好了,各位!您剛剛跨出了使用 MySQL WHERE 子句進行數據過濾的世界中的第一步。記住,WHERE 子句就像是您的個人數據偵探,幫助您在數據的山丘中篩選出您需要的 exactly 信息。

隨著您在 MySQL 的旅程中繼續前行,您會發現 WHERE 子句成為您數據庫工具包中不可或缺的工具。它是解鎖精確、目標化的數據檢索的關鍵,讓您的數據庫更聰明地工作,而不是更努力。

繼續練習,保持好奇心,在您知道之前,您將能夠輕鬆地撰寫複雜的查詢,就像一個有經驗的數據庫管理員一樣。快樂查詢!

Credits: Image by storyset