SQL WHERE 條件查詢教程
在SQL中,WHERE
條件用于在 SELECT
語句后過濾結果集,只返回符合條件的記錄。它幫助我們從大量數據中提取所需的信息。以下是使用 WHERE
條件的逐步指南。
1. 基本語法
SELECT [字段] FROM [表] WHERE [條件];
- SELECT:指定要返回的字段。
- FROM:指定數據來自的表。
- WHERE:過濾符合條件的記錄。
2. 示例數據
假設有一個 employees
表,包含以下列:
id
(員工ID)name
(員工名字)department
(部門)age
(年齡)
數據如下:
CREATE TABLE employees (id INT PRIMARY KEY,name VARCHAR(50) NOT NULL,department VARCHAR(30) NOT NULL,age INT NOT NULL
);INSERT INTO employees (id, name, department, age)
VALUES (1, 'Alice', 'Marketing', 28),(2, 'Bob', 'Sales', 36),(3, 'Charlie', 'HR', 25),(4, 'Diana', 'IT', 30);
3. 常用 WHERE 條件類型
(1)等于(=)
篩選特定值的記錄。
SELECT id, name FROM employees WHERE age = 28;
結果:返回年齡為28歲的員工。
(2)不等于(!= 或 <>)
篩選不等于特定值的記錄。
SELECT id, name FROM employees WHERE age != 30;
結果:返回所有年齡不為30歲的員工.
(3)大于(>)、小于(<)
篩選大于或小于特定數值的記錄。
-- 大于
SELECT id, name FROM employees WHERE age > 25;-- 小于
SELECT id, name FROM employees WHERE age < 35;
結果:分別返回年齡大于25歲和小于35歲的員工.
(4)大于等于(>=)、小于等于(<=)
篩選大于或等于、小于或等于特定數值的記錄。
-- 大于等于
SELECT id, name FROM employees WHERE age >= 28;-- 小于等于
SELECT id, name FROM employees WHERE age <= 30;
結果:分別返回年齡大于等于28歲和小于等于30歲的員工.
(5)IN 條件
篩選記錄包含在給定列表中的值。
SELECT id, name FROM employees WHERE department IN ('Sales', 'Marketing');
結果:返回部門為’Sales’或’Marketing’的員工.
(6)LIKE 條件
模式匹配,用于文本字段的篩選。
SELECT id, name FROM employees WHERE name LIKE '%Alice';
結果:返回名字包含’Alice’前綴的員工.
(7)BETWEEN 條件
在兩個值之間過濾記錄。
SELECT id, name FROM employees WHERE age BETWEEN 25 AND 30;
結果:返回年齡在25歲到30歲之間的員工.
4. WHERE 子句的位置
WHERE子句必須放置在 SELECT
和 FROM
之間。以下是正確的語法結構:
SELECT [字段] FROM [表] WHERE [條件];
如果 WHERE
條件不正確,SQL會返回空結果集。
5. 示例:完整的 SQL 查詢
查詢所有年齡大于25歲的員工
SELECT id, name FROM employees WHERE age > 25;
結果:返回所有年齡大于25歲的員工.
查詢部門為 ‘Sales’ 或 ‘Marketing’ 的員工
SELECT id, name FROM employees WHERE department IN ('Sales', 'Marketing');
結果:返回部門是’Sales’或’Marketing’的員工.
查詢名字包含 ‘John’ 的員工
SELECT id, name FROM employees WHERE name LIKE '%John%';
注意:LIKE
條件需要在數據庫支持的編程語言中使用。
通過這些步驟和示例,你可以有效地使用 WHERE 條件在SQL中過濾數據。記住,WHERE 條件可以幫助你快速找到所需的數據!