• SQL 中的 NULL 小结


    ★★★★★SQL中的NULL★★★★★

    工作中,常用到NULL,Empty,Space等值,对它们了解的不熟的话,会有一些小的问题。

    1.什么是NULL

    我们看一下Mysql文档中的定义:

    NULL means a missing unknown value” and it is treated somewhat differently from other values.

    那么,如何验证某个值是否是NULL,使用 IS NULL 或是 IS NOT NULL:

    mysql> SELECT 1 IS NULL, 1 IS NOT NULL;
    +-----------+---------------+
    | 1 IS NULL | 1 IS NOT NULL |
    +-----------+---------------+
    |         0 |             1 |
    +-----------+---------------+

    注意:我们不能使用数学中的比较符号来判断,值是否为NULL:

    mysql> SELECT 1 = NULL, 1 <> NULL, 1 < NULL, 1 > NULL;
    +----------+-----------+----------+----------+
    | 1 = NULL | 1 <> NULL | 1 < NULL | 1 > NULL |
    +----------+-----------+----------+----------+
    |     NULL |      NULL |     NULL |     NULL |
    +----------+-----------+----------+----------+

    大家看到这里是否理解了呢?

    ★★★★★SQL中外链接中,加入外联表的限制条件★★★★★

    大家看到题目,可能不理解。没事,听我细细说。

    下面两个SQL:

    SELECT test01.*, test02.*
       FROM test01
        LEFT JOIN test02
            ON test01.id = test02.id
          AND test02.name <> 'bao'             注意这里的name<>‘bao’的限制条件在外链接中
     ORDER BY test01.id;

    SELECT test01.*, test02.*
       FROM test01
        LEFT JOIN test02
            ON test01.id = test02.id
       WHER test02.name <> 'bao'             注意这里的name<>‘bao’的限制条件不在外链接中
     ORDER BY test01.id;

    第一个SQL的结果集中,因为是外链接,所以件数一test01为主,与之关联的test02的结果中,name为‘bao’的字段值,抽出来为NULL

    第二个SQL的结果集中,限制条件,不在外连接中,结果集将test02.name 为 NULL的,以及将不等于 bao的 都会清除掉,相当于是进行了内连接。

    努力到无能为力,奋斗到感动上天!
  • 相关阅读:
    Ubuntu开发环境配置
    win7和Ubuntu16.04之间相互远程控制
    QT学习之usb摄像头采集(Opencv+QT)[cvCapture,IplImage,QImage]
    Opencv 图像畸变矫正(after 相机标定, 获得内参和畸变参数)
    opencv角点检测、棋盘格检测、亚像素cvFindCornerSubPix()
    开始学习机加工钣金加工
    今夜的硬件之旅
    关于做实验
    机器学习部分题目
    ubuntu18.10配置git和github
  • 原文地址:https://www.cnblogs.com/lihao007/p/14562659.html
Copyright © 2020-2023  润新知