SQL自学:如何使用 SELECT 语句的 WHERE 子句指定搜索条件

本文主要详细讲解在 SQL 查询中如何运用 SELECT 语句的 WHERE 子句来精准地指定搜索条件,从而实现对数据的筛选和过滤。

WHERE子句操作符

在 SQL 中,WHERE 子句用于筛选满足特定条件的行。

以下是一些常见的操作符:

一、比较操作符

1.   =(等于):用于判断两个值是否相等

示例:

SELECT * FROM table_name WHERE column_name = value;

2. <>  或  !=不等于):判断两个值不相等

示例:

SELECT * FROM table_name WHERE column_name <> value;

3. <小于):判断一个值是否小于另一个值。

 示例:

SELECT * FROM table_name WHERE column_name < value;

4.  >大于):判断一个值是否大于另一个值。

示例:

SELECT * FROM table_name WHERE column_name > value;

5. <=小于等于):判断一个值是否小于或等于另一个值。

示例:

SELECT * FROM table_name WHERE column_name <= value;

6. >=大于等于):判断一个值是否大于或等于另一个值。

示例:

SELECT * FROM table_name WHERE column_name >= value;

二、逻辑操作符

 1. AND:用于连接多个条件,只有当所有条件都为真时,结果才为真。

示例:

SELECT * FROM table_name WHERE column_name1 = value1 AND column_name2 = value2;

2. OR:连接多个条件,只要其中一个条件为真,结果就为真。

示例:

SELECT * FROM table_name WHERE column_name1 = value1 OR column_name2 = value2;

3. NOT:用于否定一个条件。

示例:

SELECT * FROM table_name WHERE NOT column_name = value;

三、范围操作符

 1. BETWEEN... AND...:用于判断一个值是否在指定的范围内。

示例:

SELECT * FROM table_name WHERE column_name BETWEEN value1 AND value2;

2. IN:用于判断一个值是否在一个指定的集合中

示例:

SELECT * FROM table_name WHERE column_name IN (value1, value2, value3);

四、模糊匹配操作符

 1. LIKE:用于进行模糊匹配。  %代表零个或多个字符

例如,

WHERE column_name LIKE '%value%

表示查找 `column_name` 列中包含 `value` 的值。

 _代表一个字符

例如,

WHERE column_name LIKE '_value'

表示查找 `column_name` 列中以 `value` 结尾且前面只有一个字符的值。

一、WHERE 基本使用

在 SELECT 语句里,数据是依据 WHERE 子句中设定的搜索条件来进行过滤的。

注意:WHERE 子句需在表名(即 FROM 子句所指定的表)之后!!!

SELECT 列名1,列名2

FROM 表名

WHERE 列名1 = 5.9;

例如,我们有一个名为“products”的表,其中包含“product_id”(产品编号)、“product_name”(产品名称)和“product_price”(价格)等列。如果我们想要查询价格为 88 的产品信息,可以使用如下 SQL 语句:

SELECT product_id, product_name
FROM products
WHERE product_price = 88;

需要特别注意的是,当同时使用 ORDER BY 和 WHERE 子句时,一定要让 ORDER BY 位于 WHERE 之后,否则会引发错误!!!

(遵循先过滤排序的原则)

比如,我们想要先根据价格筛选出价格为 88的产品,然后再按照产品编号升序排列,正确的写法应该是:

SELECT product_id, product_name
FROM products
WHERE product_price = 88
ORDER BY product_id;

二、WHERE 子句操作符

(一)检查单个值

SELECT 列名1,列名2

FROM 表名

WHERE 列名1 < 10;

通过使用比较运算符,可以对列中的单个值进行筛选。

比如,我们还是以“products”表为例,如果想要查询价格小于 70 的产品信息,可以编写如下 SQL 语句:

SELECT product_id, product_name, product_price
FROM products
WHERE product_price < 70;

(二)不匹配检查

SELECT 列名1,列名2

FROM 表名

WHERE 列名1 <> 'abc123';

当我们需要查找列值不等于某个特定值的记录时,可以使用“<>”运算符。

假设“products”表中的“product_code”(产品代码)列,我们要查找产品代码不等于“abc123”的产品,需注意单引号的使用,正确的 SQL 语句如下:(有两个不等于都测试了一遍)

SELECT product_id, product_name
FROM products
WHERE product_code <> 'abc123';

SELECT product_id, product_name
FROM products
WHERE product_code != 'abc123';

原表,可以看到产品3的产品代码等于abc123

(三)范围值检查

SELECT 列名1,列名2

FROM 表名

WHERE 列名1 BETWEEN 5 AND 10;

如果要查询列值在某个范围内的记录,可以使用 BETWEEN 运算符。BETWEEN 会匹配范围中所有的值,包括指定的开始值和结束值。

例如,我们想要查找价格在 60到 80之间(包括 60 和 80)的产品,可以使用以下 SQL 语句:

SELECT product_id, product_name, product_price
FROM products
WHERE product_price BETWEEN 60 AND 80;

(四)空值检查

SELECT 列名

FROM 表名

WHERE 列名 IS NULL;

在某些情况下,我们需要查找列值为空的记录。这时可以使用 IS NULL 运算符。

比如,在“products”表中,“description”(产品描述)列可能存在为空的情况,如果我们想要查找没有填写描述的产品,可以这样写 SQL 语句:

SELECT product_id, product_name
FROM products
WHERE description IS NULL;

练习题1.编写SQL语句,从Products表中检索产品ID(prod_id)和产品名称(prod_name),只返回价格为9.49美元的产品。
2.编写SQL语句,从Products表中检索产品ID(prod_id)和产品名称(prod_name),只返回价格为9美元或更高的产品。
3.结合第3课和第4课编写SQL语句,从OrderItems表中检索出所有不同订单号(order_num),其中包含100个或更多的产品。
4.编写SQL语句,返回Products表中所有价格在3美元到6美元之间的产品的名称(prod_name)和价格(prod_price),然后按价格对结果进行排序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值