数据库教程-SQL And运算符

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

本教程将介绍SQL AND运算符,并演示如何将其应用于在SQL语句的WHERE子句中形成条件。

2. SQL AND运算符简介

AND运算符是一个逻辑运算符,它在SELECTUPDATEDELETE语句的WHERE子句中组合了两个布尔表达式。 以下说明了AND运算符的语法:

expression1 AND expression2; 

如果两个表达式的计算结果为true,则AND运算符返回true。 如果两个表达式中的一个为false,即使其中一个表达式为NULL,则AND运算符返回false

下表说明了比较truefalseNULL值时AND运算符的结果:

 – TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL

1. SQL AND运算符示例

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

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 

以下语句查找同时具有工作ID是9和薪水大于5000的所有员工:

SELECT     first_name, last_name, job_id, salary FROM     employees WHERE     job_id = 9 AND salary > 5000; 

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

+------------+-----------+--------+--------+ | first_name | last_name | job_id | salary | +------------+-----------+--------+--------+ | Alexander  | Lee       |      9 | 9000   | | Bruce      | Wong      |      9 | 6000   | +------------+-----------+--------+--------+ 2 rows in set 

要查找1997年到1998年之间加入公司的所有员工,使用AND运算符,如下所示:

SELECT     first_name, last_name, hire_date FROM     employees WHERE     YEAR (hire_date) >=1997 AND YEAR (hire_date) <= 1998; 

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

SQL And运算符

SQL AND运算符和短路计算

短路功能允许数据库系统在确定结果后立即停止评估逻辑表达式的其余部分。

让我们看一个例子来更好地理解短路计算功能的工作原理。

请参阅以下条件:

1 = 0 AND 1 = 1; 

数据库系统首先处理两个比较,并使用AND运算符来评估两个结果。

但是,使用短路评估功能,数据库系统只需要评估表达式的左侧部分,因为左侧部分(1 = 0)返回false,导致整个条件返回false,而不管右侧部分条件的结果如何。

因此,短路功能可以减少CPU计算时间,并且在某些情况下有助于防止运行时错误。 考虑以下情况:

1 = 0 AND 1/0; 

如果数据库系统支持短路功能,则不会评估导致除零错误的表达式(1/0)的右侧部分。

现在,您应该了解SQL AND运算符的工作原理以及如何应用它以在查询中形成复杂查询条件。

  

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

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

为您推荐

发表评论

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