where子句
数据库中常用的是where关键字,用于在初始表中筛选查询。它是一个约束声明,用于约束数据,在返回结果集之前起作用。
使用主键来作为 WHERE 子句的条件查询是非常快速的。
如果给定的条件在表中没有任何匹配的记录,那么查询不会返回任何数据。
通用格式:SELECT column1, column2, … FROM table_name WHERE condition;
子句常用条件 | 描述 | 实例 |
---|---|---|
= 大于条件 | 等号,检测两个值是否相等,如果相等返回true | SELECT * FROM users WHERE username = ‘test’; |
<>, != 不等于条件 | 不等于,检测两个值是否相等,如果不相等返回true | SELECT * FROM users WHERE username != ‘runoob’; |
> 大于条件 | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | SELECT * FROM products WHERE price > 50.00; |
< 小于条件 | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | SELECT * FROM orders WHERE order_date < ‘2023-01-01’; |
>= 大于等于娇娇 | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | SELECT * FROM employees WHERE salary >= 50000; |
<= 小于等于条件 | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | SELECT * FROM students WHERE age <= 21; |
and or 组合条件 | and表示两个条件同时满足,or表示两个条件至少满足一个即可 | SELECT * FROM products WHERE category = ‘Electronics’ AND price > 100.00; SELECT * FROM orders WHERE order_date >= ‘2023-01-01’ OR total_amount > 1000.00; |
like 模糊匹配条件 | 常表示字符串中含有某一个字符,后面与 ‘ ’ 和%搭配 | SELECT * FROM customers WHERE first_name LIKE ‘J%’; |
in 包含条件 | 包含这一条件 | SELECT * FROM countries WHERE country_code IN (‘US’, ‘CA’, ‘MX’); |
not 否定条件 | 除了这一条件 | SELECT * FROM products WHERE NOT category = ‘Clothing’; |
between | 常用于时间或者数量介于两者之间 | SELECT * FROM orders WHERE order_date BETWEEN ‘2023-01-01’ AND ‘2023-12-31’; |
is null | 空条件 | SELECT * FROM employees WHERE department IS NULL; |
is not null | 非空条件 | SELECT * FROM customers WHERE email IS NOT NULL; |
关于LIKE:
-
LIKE 子句是在 MySQL 中用于在 WHERE 子句中进行模糊匹配的关键字。它通常与通配符一起使用,用于搜索符合某种模式的字符串。
-
如果没有使用百分号 %, LIKE 子句与等号 = 的效果是一样的。
-
LIKE的使用实例:
(1) 百分号通配符 %:% 通配符表示零个或多个字符。例如,'a%' 匹配以字母 'a' 开头的任何字符串。
(2) 下划线通配符 _:
_ 通配符表示一个字符。例如,'_r%' 匹配第二个字母为 'r' 的任何字符串。
(3)不区分大小写的的匹配:
SELECT * FROM employees WHERE last_name LIKE 'smi%' COLLATE utf8mb4_general_ci;