京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
数据库 / SQL 教程 / SQL 基础教程
SQL WHERE
SQL AND & ORSQL 查询数据(Select)

SQL WHERE 子句

在本教程中,您将学习如何使用SQL从表中选择特定记录。

根据条件选择记录

在上一章中,我们学习了如何从表或表列中获取所有记录。但是,在现实世界中,我们通常只需要选择,更新或删除满足某些条件的那些记录,例如属于某个年龄段或某个国家/地区的用户等。

WHERE子句用于与SELECT,UPDATE和DELETE。但是,您将在接下来的章节中看到将此子句与其他语句一起使用。

语法

WHERE子句与SELECT 语句一起使用,仅提取满足指定条件的那些记录。基本语法可以通过以下方式给出:

SELECT column_list FROM table_name WHERE condition;

在这里,column_list是要获取其值的数据库表的列/字段的名称,例如nameagecountry等。但是,如果要获取表中所有可用列的值,则可以使用以下语法:

SELECT * FROM table_name WHERE condition;

现在,让我们看一些示例来演示其实际工作原理。

假设我们在数据库中有一个名为employees的表,其中包含以下记录:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

使用WHERE子句过滤记录

以下SQL语句将从employees表中返回其薪水大于7000的所有employee 。该WHERE子句只是过滤掉不需要的数据。

SELECT * FROM employees
WHERE salary > 7000;

执行后,输出将如下所示:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

正如您看到的,输出仅包含薪水大于7000的那些雇员。类似地,您可以从特定列中获取记录,如下所示:

SELECT emp_id, emp_name, hire_date, salary
FROM employees
WHERE salary > 7000;

执行上面的语句后,您将获得如下输出:

+--------+--------------+------------+--------+
| emp_id | emp_name     | hire_date  | salary |
+--------+--------------+------------+--------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |
+--------+--------------+------------+--------+

以下语句将获取其雇员ID为2的雇员的记录。

SELECT * FROM employees
WHERE emp_id = 2;

该语句将产生以下输出:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
+--------+--------------+------------+--------+---------+

这次,我们在输出中仅获得一行,因为emp_id对每个员工都是唯一的。

WHERE子句中允许的运算符

SQL支持许多可在WHERE子句中使用的运算符,下表总结了最重要的运算符。

操作员描述在线示例
=等于WHERE id = 2
>比...更棒WHERE age > 30
<少于WHERE age < 18
>=大于或等于WHERE rating >= 4
<=小于或等于WHERE price <= 100
LIKE简单模式匹配WHERE name LIKE 'Dav'
IN检查指定值是否与列表或子查询中的任何值匹配WHERE country IN ('USA', 'UK')
BETWEEN检查指定值是否在值范围内WHERE rating BETWEEN 3 AND 5
SQL AND & ORSQL 查询数据(Select)
下一篇:SQL AND & OR