数据库教程-SQL Or运算符

跨零代码为大家提供高品质的解决方案,请大家多多来访,跨零不胜感激,在此谢过。

在本教程中,您将学习如何使用SQL OR运算符组合两个布尔表达式。

1. SQL OR运算符简介

SQL OR是一个逻辑运算符,它组合两个布尔表达式。 SQL OR运算符计算结果返回truefalse,具体取决于表达式的结果。

OR运算符通常用于在SELECTUPDATEDELETE语句的WHERE子句中,以形成灵活的条件。

以下说明了SQL OR运算符的语法:

SELECT     column1,     column2,         ... FROM     table1 WHERE     expression1 OR expression2; 

下表显示了比较truefalseNULL值时OR运算符的结果。

TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

请注意,如果任一表达式为true,则OR运算符始终返回true

如果数据库系统支持短路功能,则只要一个表达式为真,OR运算符就会停止评估条件的其余部分。

OR运算符与AND运算符一起使用时,数据库系统会在AND运算符之后计算OR运算符。 它叫作优先规则。 但是,可以使用括号更改评估顺序。

2. SQL OR运算符示例

我们将使用示例数据库中的employees表来演示OR运算符。

mysql> DESC employees; +---------------+--------------+------+-----+---------+----------------+ | Field         | Type         | Null | Key | Default | Extra          | +---------------+--------------+------+-----+---------+----------------+ | employee_id   | int(11)      | NO   | PRI | NULL    | auto_increment | | first_name    | varchar(20)  | YES  |     | NULL    |                | | last_name     | varchar(25)  | NO   |     | NULL    |                | | email         | varchar(100) | NO   |     | NULL    |                | | phone_number  | varchar(20)  | YES  |     | NULL    |                | | hire_date     | date         | NO   |     | NULL    |                | | job_id        | int(11)      | NO   | MUL | NULL    |                | | salary        | decimal(8,2) | NO   |     | NULL    |                | | manager_id    | int(11)      | YES  | MUL | NULL    |                | | department_id | int(11)      | YES  | MUL | NULL    |                | +---------------+--------------+------+-----+---------+----------------+ 10 rows in set 

以下声明查找了1997年或1998年加入公司的所有员工。

SELECT     first_name, last_name, hire_date FROM     employees WHERE     YEAR (hire_date) = 1997 OR YEAR (hire_date) = 1998 ORDER BY     first_name, last_name; 

执行上面示例代码,得到以下结果 –

SQL Or运算符

要查找1997年或1998年加入公司并在部门ID为3中工作的所有员工,可以使用ANDOR运算符,如下所示:

SELECT     first_name, last_name, hire_date, department_id FROM     employees WHERE     department_id = 3 AND (     YEAR (hire_date) = 1997     OR YEAR (hire_date) = 1998 ) ORDER BY     first_name, last_name; 

执行上面查询语句,得到以下结果 –
SQL Or运算符

如果不使用括号,查询将检索1997年加入公司并在部门ID为3工作的员工或1998年加入公司的员工(不限部门是哪个)。

这是因为数据库系统在AND运算符之后计算OR运算符。

SELECT     first_name, last_name, hire_date, department_id FROM     employees WHERE     department_id = 3 AND YEAR (hire_date) = 1997 OR YEAR (hire_date) = 1998 ORDER BY     first_name, last_name; 

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

SQL Or运算符

如果查询使用许多OR运算符,则将难以阅读。 要使查询更具可读性,可以使用IN运算符

例如,以下查询查找在1990年或1999年或2000年加入公司的所有员工。

SELECT     first_name,     last_name,     hire_date FROM     employees WHERE     YEAR (hire_date) = 2000 OR YEAR (hire_date) = 1999 OR YEAR (hire_date) = 1990; 

可以通过IN运算符替换OR运算符,如下所示:

SELECT     first_name,     last_name,     hire_date FROM     employees WHERE     YEAR (hire_date) IN (1990, 1999, 2000) ORDER BY     hire_date; 

执行上面示例代码,得到以下结果 –

+------------+-----------+------------+ | first_name | last_name | hire_date  | +------------+-----------+------------+ | Alexander  | Lee       | 1990-01-03 | | Diana      | Chen      | 1999-02-07 | | Kimberely  | Yang      | 1999-05-24 | | Karen      | Zhang     | 1999-08-10 | | Min        | Su        | 1999-12-07 | | Charles    | Yang      | 2000-01-04 | +------------+-----------+------------+ 6 rows in set 

在本教程中,您已经学习了如何使用SQL OR运算符组合两个布尔表达式以形成灵活的条件。

  

从零到一,创造未来!跨零综合IT问题解决服务站,欢迎你的到来。Oracle数据库教程 sql教程 只为你绽放。

本文固定链接: http://kua0.com/2019/01/24/数据库教程-sql-or运算符/

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注