MySQL where
✅ 概念:
我们知道 SQL SELECT 命令用于从 MySQL 表中获取记录。除此之外,我们还可以使用称为 WHERE 子句的条件子句与 SELECT 语句结合使用来过滤结果。使用此 WHERE 子句,我们可以指定一个选择标准以从表中选择所需的记录。
WHERE 子句的工作方式类似于任何编程语言中的 if 条件 。此子句用于将给定值与 MySQL 表中可用的字段值进行比较。如果外部给定的值等于 MySQL 表中的可用字段值,则返回该行。
✅ WHERE 子句中使用的运算符:
下面是比较运算符的列表,可以与 WHERE 子句一起使用
=:检查两个作数的值是否相等,如果是,则条件变为 true!=:检查两个作数的值是否相等,如果值不相等,则条件变为 true。>:检查左作数的值是否大于右作数的值,如果是,则条件变为 true。<:检查左作数的值是否小于右作数的值,如果是,则条件变为 true。>=:检查左作数的值是否大于或等于右作数的值,如果是,则条件变为 true。<=:检查左作数的值是否小于或等于右作数的值,如果是,则条件变为 true。
除此之外,WHERE 子句还可以包含逻辑运算符,例如 AND、OR 和 NOT。
AND:如果在具有两个条件的 WHERE 子句中使用 AND 运算符,则仅当满足这两个条件时,查询才会返回 true。OR:如果在具有两个条件的 WHERE 子句中使用 OR 运算符,则仅当满足任一条件时,查询才会返回 true。NOT:如果在带有条件的 WHERE 子句中使用了 NOT 运算符,则仅当表记录不满足条件时,查询才会返回 true.
🧪 使用 Where 子句获取数据
当您想要从表中获取选定的行时,WHERE 子句非常有用,尤其是当您使用 MySQL Join 时。联接将在另一章中讨论。
如果给定条件与表中的任何记录都不匹配,则查询将不会返回任何行。
Syntax:
💡Syntax 语法:
SELECT field1, field2,...fieldN table_name1, table_name2...
[WHERE condition1 [AND [OR]] condition2.....
- 可以使用一个或者多个逗号分隔的表来包含使用WHERE 字句的各种条件,但WHERE 字句是SELECT 命令的可选部分。
- 您可以使用WHERE 字句指定任何条件。
- 您可以使用AND或OR运算符指定多个条件。
- WHERE 字句可以与DELETE 或者UPDATE SQL 命令一起使用,也可以指定条件。
Example:
首先,我们使用以下创建一个名为customers客户表:
CREATE TABLE db.CUSTOMERS (
ID INT NOT NULL,
NAME VARCHAR (20) NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR (25),
SALARY DECIMAL (18, 2),
PRIMARY KEY (ID)
)向表中插入数据
INSERT INTO db.CUSTOMERS (ID,NAME,AGE,ADDRESS,SALARY) VALUES
(1, 'Ramesh', 32, 'Ahmedabad', 2000.00 ),
(2, 'Khilan', 25, 'Delhi', 1500.00 ),
(3, 'Kaushik', 23, 'Kota', 2000.00 ),
(4, 'Chaitali', 25, 'Mumbai', 6500.00 ),
(5, 'Hardik', 27, 'Bhopal', 8500.00 ),
(6, 'Komal', 22, 'Hyderabad', 4500.00 ),
(7, 'Muffy', 24, 'Indore', 10000.00 );执行以下查询以获取 CUSTOMERS 表的所有记录
mysql> Select * From db.CUSTOMERS;
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | Kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | Hyderabad | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
7 rows in set (0.006 sec)现在,让我们使用 MySQL WHERE 子句和 SELECT 语句来获取 AGE 大于 23 的用户:
mysql> Select * From db.CUSTOMERS Where AGE > 23;
+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 32 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
5 rows in set (0.007 sec)
评论 (0)