zoukankan      html  css  js  c++  java
  • 《SQLite3 — 运算符》

    1.运算符

    1.1算术运算符

      算术运算符也就是"+"、"-"、"*"、"/"、"%"。

    实例:

    sqlite> .mode line
    sqlite> select 10 + 20;
    10 + 20 = 30
    
    sqlite> select 10 - 20;
    10 - 20 = -10
    
    sqlite> select 10 * 20;
    10 * 20 = 200
    
    sqlite> select 10 / 5;
    10 / 5 = 2
    
    sqlite> select 12 %  5;
    12 %  5 = 2
    

      

    1.2比较运算符

    实例:

    假设 COMPANY 表有以下记录:

    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    3           Teddy       23          Norway      20000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    6           Kim         22          South-Hall  45000.0
    7           James       24          Houston     10000.0
    

      下面的 SELECT 语句列出了 SALARY 大于 50,000.00 的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE SALARY > 50000;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      

    1.3逻辑运算符

    实例:

      下面的 SELECT 语句列出了 AGE 大于等于 25 工资大于等于 65000.00 的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      下面的 SELECT 语句列出了 AGE 大于等于 25 工资大于等于 65000.00 的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      下面的 SELECT 语句列出了 AGE 不为 NULL 的所有记录,结果显示所有的记录,意味着没有一个记录的 AGE 等于 NULL:

    sqlite>  SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    3           Teddy       23          Norway      20000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    6           Kim         22          South-Hall  45000.0
    7           James       24          Houston     10000.0
    

      下面的 SELECT 语句列出了 NAME 以 'Ki' 开始的所有记录,'Ki' 之后的字符不做限制:

    sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    6           Kim         22          South-Hall  45000.0
    

      下面的 SELECT 语句列出了 NAME 以 'Ki' 开始的所有记录,'Ki' 之后的字符不做限制:

    sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    6           Kim         22          South-Hall  45000.0
    

      下面的 SELECT 语句列出了 AGE 的值为 25 或 27 的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE AGE IN ( 25, 27 );
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    2           Allen       25          Texas       15000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      下面的 SELECT 语句列出了 AGE 的值既不是 25 也不是 27 的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN ( 25, 27 );
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    3           Teddy       23          Norway      20000.0
    6           Kim         22          South-Hall  45000.0
    7           James       24          Houston     10000.0
    

      下面的 SELECT 语句列出了 AGE 的值在 25 与 27 之间的所有记录:

    sqlite> SELECT * FROM COMPANY WHERE AGE BETWEEN 25 AND 27;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    2           Allen       25          Texas       15000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      下面的 SELECT 语句使用 SQL 子查询,子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 EXISTS 运算符一起使用,列出了外查询中的 AGE 存在于子查询返回的结果中的所有记录:

    sqlite> SELECT AGE FROM COMPANY 
            WHERE EXISTS (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
    AGE
    ----------
    32
    25
    23
    25
    27
    22
    24
    

      下面的 SELECT 语句使用 SQL 子查询,子查询查找 SALARY > 65000 的带有 AGE 字段的所有记录,后边的 WHERE 子句与 > 运算符一起使用,列出了外查询中的 AGE 大于子查询返回的结果中的年龄的所有记录:

    sqlite> SELECT * FROM COMPANY 
            WHERE AGE > (SELECT AGE FROM COMPANY WHERE SALARY > 65000);
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    

      

    1.4位运算符

      位运算符作用于位,并逐位执行操作。真值表 & 和 | 如下:

    假设如果 A = 60,且 B = 13,现在以二进制格式,它们如下所示:

    A = 0011 1100

    B = 0000 1101

    -----------------

    A&B = 0000 1100

    A|B = 0011 1101

    ~A  = 1100 0011

    下表中列出了 SQLite 语言支持的位运算符。假设变量 A=60,变量 B=13,则:

    实例:

    sqlite> .mode line
    sqlite> select 60 | 13;
    60 | 13 = 61
    
    sqlite> select 60 & 13;
    60 & 13 = 12
    
    sqlite>  select  (~60);
    (~60) = -61
    
    sqlite>  select  (60 << 2);
    (60 << 2) = 240
    
    sqlite>  select  (60 >> 2);
    (60 >> 2) = 15
    

      

    1.5 AND/OR运算符(连接运算符)

    1.5.1 AND运算符

      AND运算符允许在一个 SQL 语句的 WHERE 子句中的多个条件的存在。使用 AND 运算符时,只有当所有条件都为真(true)时,整个条件为真(true)。例如,只有当 condition1 和 condition2 都为真(true)时,[condition1] AND [condition2] 为真(true)。

    语法:

    SELECT column1, column2, columnN 
    FROM table_name
    WHERE [condition1] AND [condition2]...AND [conditionN];

    实例:

    sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

    1.5.2 OR运算符

      OR运算符也用于结合一个 SQL 语句的 WHERE 子句中的多个条件。使用 OR 运算符时,只要当条件中任何一个为真(true)时,整个条件为真(true)。例如,只要当 condition1 或 condition2 有一个为真(true)时,[condition1] OR [condition2] 为真(true)。

    语法:

    SELECT column1, column2, columnN 
    FROM table_name
    WHERE [condition1] OR [condition2]...OR [conditionN]

    实例:

    sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
    ID          NAME        AGE         ADDRESS     SALARY
    ----------  ----------  ----------  ----------  ----------
    1           Paul        32          California  20000.0
    2           Allen       25          Texas       15000.0
    4           Mark        25          Rich-Mond   65000.0
    5           David       27          Texas       85000.0
    

      

  • 相关阅读:
    实现selenium+Chrome爬取时不加载图片——配置
    对SHH的公钥和私钥的简单理解
    python正则匹配——中文字符的匹配
    学习笔记——TCP“三次握手”和“四次挥手”,简单介绍
    python在Linux中安装虚拟环境,区别python2和python3,分别安装模块
    Linux中安装MongoDB出现的问题记录
    PHP第三方登录——QQ登录
    OAuth2.0协议
    Shiro自动登录
    Shiro缓存管理
  • 原文地址:https://www.cnblogs.com/zhuangquan/p/13229348.html
Copyright © 2011-2022 走看看