zoukankan      html  css  js  c++  java
  • 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的 都会清除掉,相当于是进行了内连接。

    努力到无能为力,奋斗到感动上天!
  • 相关阅读:
    记一次诡异的调优
    java动态代理学习笔记
    c#反射机制学习和利用反射获取类型信息
    php开启ssl的方法
    关于java中split的使用
    c#使用反射调用类型成员示例
    C#关于反射加载的问题
    Twitter:使用Netty 4来减少GC开销
    Java中如何修改Jar中的内容
    Android中自定义视图View之---前奏篇
  • 原文地址:https://www.cnblogs.com/lihao007/p/14562659.html
Copyright © 2011-2022 走看看