sql 比较html,SQL比较运算符

在本教程中,您将了解SQL比较运算符以及如何使用它们来组成过滤数据的条件。SQL比较运算符用于测试两个表达式是否相同,下表说明了SQL中的比较运算符:

编号

运算符

描述/含意

1

=

等于

2

<>

不等于

3

>

大于

4

>=

大于或等于

5

<

小于

6

<=

小于或等于

7

!=

不等于

比较运算符的结果只能是三个值:true,false和unknown的其中一个。

1. 等于(=)运算符

等于(=)运算符用于比较两个表达式的相等性:

expression1 = expression2

如果左表达式的值等于右表达式的值,则返回true; 否则返回false。

例如,以下语句查找姓氏(last_name)为Lee的员工信息:

SELECT

employee_id, first_name, last_name

FROM

employees

WHERE

last_name = 'Lee';

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+

| employee_id | first_name | last_name |

+-------------+------------+-----------+

| 100 | Steven | Lee |

| 103 | Alexander | Lee |

+-------------+------------+-----------+

2 rows in set

在此示例中,查询在employees表的last_name列中搜索字符串:Lee。

请注意,等于(=)运算符不能用于比较NULL值。 例如,以下查询是查找没有电话号码的所有员工信息:

SELECT

employee_id, first_name, last_name, phone_number

FROM

employees

WHERE

phone_number = NULL;

但是,上面查询语句返回一个空结果集,因为以下表达式始终返回false。

phone_number = NULL

要比较空(null)值,请改用IS NULL运算符,重写上面查询语句 -

SELECT

employee_id, first_name, last_name, phone_number

FROM

employees

WHERE

phone_number IS NULL;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+--------------+

| employee_id | first_name | last_name | phone_number |

+-------------+------------+-----------+--------------+

| 145 | John | Liu | NULL |

| 146 | Karen | Liu | NULL |

| 176 | Jonathon | Yang | NULL |

| 177 | Jack | Yang | NULL |

| 178 | Kimberely | Yang | NULL |

| 179 | Charles | Yang | NULL |

+-------------+------------+-----------+--------------+

6 rows in set

2. 不等于(<>)运算符

不等于(<>)运算符用于比较两个非空表达式,如果左表达式的值不等于右表达式,则返回true; 否则返回false。

expression1 <> expression2

例如,以下语句将返回部门ID不是8的所有员工信息。

SELECT

employee_id, first_name, last_name, department_id

FROM

employees

WHERE

department_id <> 8

ORDER BY first_name , last_name;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+---------------+

| employee_id | first_name | last_name | department_id |

+-------------+------------+-----------+---------------+

| 103 | Alexander | Lee | 6 |

| 115 | Alexander | Su | 3 |

| 114 | Avg | Su | 3 |

| 193 | Britney | Zhao | 5 |

| 104 | Bruce | Wong | 6 |

| 109 | Daniel | Chen | 10 |

... ...

| 100 | Steven | Lee | 9 |

| 203 | Susan | Zhou | 4 |

| 106 | Valli | Chen | 6 |

| 206 | William | Wu | 11 |

+-------------+------------+-----------+---------------+

34 rows in set

可以使用AND运算符组合使用不等于(<>)运算符的多个表达式。 例如,以下语句查找部门ID不是8和10的所有员工信息。

SELECT

employee_id, first_name, last_name, department_id

FROM

employees

WHERE

department_id <> 8

AND department_id <> 10

ORDER BY first_name , last_name;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+---------------+

| employee_id | first_name | last_name | department_id |

+-------------+------------+-----------+---------------+

| 103 | Alexander | Lee | 6 |

| 115 | Alexander | Su | 3 |

| 114 | Avg | Su | 3 |

| 193 | Britney | Zhao | 5 |

| 104 | Bruce | Wong | 6 |

| 105 | David | Liang | 6 |

| 107 | Diana | Chen | 6 |

| 118 | Guy | Zhang | 3 |

... ...

| 117 | Sigal | Zhang | 3 |

| 100 | Steven | Lee | 9 |

| 203 | Susan | Zhou | 4 |

| 106 | Valli | Chen | 6 |

| 206 | William | Wu | 11 |

+-------------+------------+-----------+---------------+

28 rows in set

3. 大于(>)运算符

大于运算符(>)比较两个非空表达式,如果左操作数大于右操作数,则返回true; 否则返回false。

expression1 > expression2

例如,要查找薪水大于12000的员工信息,那么可在WHERE子句中使用大于运算符,如下所示:

SELECT

employee_id, first_name, last_name, salary

FROM

employees

WHERE

salary > 12000

ORDER BY salary DESC;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+--------+

| employee_id | first_name | last_name | salary |

+-------------+------------+-----------+--------+

| 100 | Steven | Lee | 24000 |

| 101 | Neena | Wong | 17000 |

| 102 | Lex | Liang | 17000 |

| 145 | John | Liu | 14000 |

| 146 | Karen | Liu | 13500 |

| 201 | Michael | Zhou | 13000 |

+-------------+------------+-----------+--------+

可以使用AND或OR运算符组合成比较运算符的表达式。 例如,以下语句查找部门ID是8并且薪水大于12000的员工信息:

SELECT

employee_id, first_name, last_name, salary

FROM

employees

WHERE

salary > 12000 AND department_id = 8

ORDER BY salary DESC;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+--------+

| employee_id | first_name | last_name | salary |

+-------------+------------+-----------+--------+

| 145 | John | Liu | 14000 |

| 146 | Karen | Liu | 13500 |

+-------------+------------+-----------+--------+

2 rows in set

4. 大于等于(>=)运算符

大于或等于(>=)运算符用于比较两个非空表达式。 如果左表达式的计算结果大于右表达式的值,则结果为true。

以下是大于或等于运算符的语法:

expression1 >= expression2

例如,以下查询语句用于查找薪水大于或等于9999的员工信息:

SELECT

employee_id, first_name, last_name, salary

FROM

employees

WHERE

salary >= 9999

ORDER BY salary;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+--------+

| employee_id | first_name | last_name | salary |

+-------------+------------+-----------+--------+

| 204 | Hermann | Wu | 10000 |

| 114 | Avg | Su | 11000 |

| 108 | Nancy | Chen | 12000 |

| 205 | Shelley | Wu | 12000 |

| 201 | Michael | Zhou | 13000 |

| 146 | Karen | Liu | 13500 |

| 145 | John | Liu | 14000 |

| 101 | Neena | Wong | 17000 |

| 102 | Lex | Liang | 17000 |

| 100 | Steven | Lee | 24000 |

+-------------+------------+-----------+--------+

10 rows in set

5. 小于或等于(<=)运算符

小于或等于运算符用于比较两个非空表达式,如果左表达式的值小于或等于右表达式的值,则返回true; 否则返回true。

以下是小于或等于运算符的语法:

expression1 <= expression2

例如,以下语句用于查找薪水小于或等于3500的员工信息:

SELECT

employee_id, first_name, last_name, salary

FROM

employees

WHERE

salary <= 3500

ORDER BY salary;

执行上面查询语句,得到以下结果 -

+-------------+------------+-----------+--------+

| employee_id | first_name | last_name | salary |

+-------------+------------+-----------+--------+

| 119 | Karen | Zhang | 2500 |

| 118 | Guy | Zhang | 2600 |

| 126 | Irene | Liu | 2700 |

| 117 | Sigal | Zhang | 2800 |

| 116 | Shelli | Zhang | 2900 |

| 115 | Alexander | Su | 3100 |

+-------------+------------+-----------+--------+

6 rows in set

在本教程中,您学习了如何使用比较运算符来组成比较表达式,以便根据指定的条件过滤数据。

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值