• SQL EXISTS 运算符:判断查询子句是否有记录


    SQL EXISTS 运算符


    EXISTS 运算符

    EXISTS 运算符用于判断查询子句是否有记录,如果有一条或多条记录存在返回 True,否则返回 False。

    SQL EXISTS 语法

    SELECT column_name(s)
    FROM table_name
    WHERE EXISTS
    (SELECT column_name FROM table_name WHERE condition);
    

    演示数据库

    在本教程中,我们将使用 样本数据库。

    下面是选自 "Websites" 表的数据:

    +----+--------------+---------------------------+-------+---------+
    | id | name         | url                       | alexa | country |
    +----+--------------+---------------------------+-------+---------+
    | 1  | Google       | https://www.google.cm/    | 1     | USA     |
    | 2  | 淘宝       | https://www.taobao.com/   | 13    | CN      |
    | 3  | 菜鸟教程 | http://www.runoob.com/    | 4689  | CN      |
    | 4  | 微博       | http://weibo.com/         | 20    | CN      |
    | 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
    +----+--------------+---------------------------+-------+---------+
    
    

    下面是 "access_log" 网站访问记录表的数据:

    mysql> SELECT * FROM access_log;
    +-----+---------+-------+------------+
    | aid | site_id | count | date       |
    +-----+---------+-------+------------+
    |   1 |       1 |    45 | 2016-05-10 |
    |   2 |       3 |   100 | 2016-05-13 |
    |   3 |       1 |   230 | 2016-05-14 |
    |   4 |       2 |    10 | 2016-05-14 |
    |   5 |       5 |   205 | 2016-05-14 |
    |   6 |       4 |    13 | 2016-05-15 |
    |   7 |       3 |   220 | 2016-05-15 |
    |   8 |       5 |   545 | 2016-05-16 |
    |   9 |       3 |   201 | 2016-05-17 |
    +-----+---------+-------+------------+
    9 rows in set (0.00 sec)
    

    SQL EXISTS 实例

    现在我们想要查找总访问量大于 200 的网站是否存在。

    我们使用下面的 SQL 语句:

    实例

    SELECTWebsites.name, Websites.urlFROMWebsitesWHEREEXISTS(SELECTcountFROMaccess_logWHEREWebsites.id = access_log.site_idANDcount > 200);

    执行以上 SQL 输出结果如下:

    EXISTS 可以与 NOT 一同使用,查找出不符合查询语句的记录:

    实例

    SELECTWebsites.name, Websites.urlFROMWebsitesWHERENOTEXISTS(SELECTcountFROMaccess_logWHEREWebsites.id = access_log.site_idANDcount > 200);

    执行以上 SQL 输出结果如下:

  • 相关阅读:
    NOIp2018集训test-9-23
    NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
    NOIp2018集训test-9-21(am/pm)
    NOIp2018集训test-9-19(am&pm)
    day41.txt
    day40表关系
    day39
    day38数据库
    day37
    day36
  • 原文地址:https://www.cnblogs.com/peijz/p/12515372.html
Copyright © 2020-2023  润新知