• 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运算符的结果:

     -TRUEFALSENULL
    TRUE TRUE FALSE NULL
    FALSE FALSE FALSE FALSE
    NULL NULL FALSE NULL

    1. SQL AND运算符示例

    我们将使用示例数据库中的employees表来演示SQL AND运算符。更多教程请访问http://www.manongzj.com

    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运算符和短路计算

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

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

    请参阅以下条件:

    1 = 0 AND 1 = 1;
    

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

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

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

    1 = 0 AND 1/0;
    

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

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

  • 相关阅读:
    我的 vs code 中setting 设置
    创建Vue cli 脚手架中遇到的空格,函数问题的解决
    C#与.Net的关系
    c#可以开发哪些类型的应用程序
    json注解使用(jackson与fastjson)
    MySQL优化:如何避免回表查询
    二叉树基础知识总结
    Redis,Memcache,MongoDb的特点
    MySQL的InnoDB存储引擎为什么要用自增的主键?
    分布式事务atomikos使用
  • 原文地址:https://www.cnblogs.com/myhomepages/p/15826232.html
Copyright © 2020-2023  润新知