美文网首页
比较运算符和NULL

比较运算符和NULL

作者: susupp | 来源:发表于2018-07-20 20:39 被阅读0次
    SELECT
    product_name,
    sale_price,
    sale_price * 2 AS "sale_price_x2"
    FROM
    product;
    

    不一定需要FROM其实

    SELECT
    5 + NULL,
    10 - NULL,
    1 * NULL,
    4 / NULL,
    NULL / 9,
    NULL / 0;
    

    当计算器

    SELECT
    (100 + 200) * 3 AS calculation;
    

    比较

    SELECT
    product_name,
    product_type
    FROM
    product
    WHERE
    sale_price <> 500;
    
    
    SELECT
    product_name,
    product_type,
    sale_price
    FROM
    product
    WHERE
    sale_price >= 1000;
    
    SELECT
    product_name,
    product_type,
    regist_date
    FROM
    product 
    /* 这里的regist_date是DATE类型的
    右边的是字符串
    其实在真正的比较的时候
    数据库会根据左边的列的类型对右边的string进行类型转换
    */
    WHERE
    regist_date < '2019-09-27';
    

    这里插入的时候有START TRANSACTIONCOMMIT.其实是确保在插入之后数据立马进入表格,在SELECT的时候就可以看到数据了。(是这样吗?)

    CREATE TABLE CHARs (
        chr CHAR (3) NOT NULL,
        PRIMARY KEY (chr));
    
    START TRANSACTION;
    
    INSERT INTO Chars
    VALUES
        ('1');
    
    INSERT INTO Chars
    VALUES
        ('2');
    
    INSERT INTO Chars
    VALUES
        ('3');
    
    INSERT INTO Chars
    VALUES
        ('10');
    
    INSERT INTO Chars
    VALUES
        ('11');
    
    INSERT INTO Chars
    VALUES
        ('222');
    
    COMMIT;
    
    SELECT
        chr
    FROM
        chars
    WHERE
        chr > '2';
    

    关于比较运算符和NULL

    SELECT
        product_name,
        purchase_price
    FROM
        product
    WHERE
    /* purchase_price为NULL的叉子和圆珠笔
    不会进入选择的行列
    我们可以理解进行等式或者不等式的判断的时候
    会有一条先决条件
    先去看一下左边的值是不是NULL
    如果是的话,那么判断不会执行
    如果不是,才执行
    */
        purchase_price <> 2800;
    
    SELECT
        product_name,
        purchase_price
    FROM
        product
    WHERE
    -- 一条记录也取不出来
        purchase_price = NULL;
    
    SELECT
        product_name,
        purchase_price
    FROM
        Product
    WHERE
    /* 可以得到叉子和圆珠笔
    不论是使用<>还是=,都无法选取出NULL的记录
    因此,SQL提供了专门用来判断是否为NULL的IS NULL操作符
    对应的,反向操作是IS NOT NULL
    */
        purchase_price IS NULL;
    

    相关文章

      网友评论

          本文标题:比较运算符和NULL

          本文链接:https://www.haomeiwen.com/subject/nkzqmftx.html