当前位置: 首页 > 编程笔记 >

SQLite教程(六):表达式详解

孟英光
2023-03-14
本文向大家介绍SQLite教程(六):表达式详解,包括了SQLite教程(六):表达式详解的使用技巧和注意事项,需要的朋友参考一下

一、常用表达式:

    和大多数关系型数据库一样,SQLite能够很好的支持SQL标准中提供的表达式,其函数也与SQL标准保持一致,如:


    ||

    *    /    %

    +    -

    <<   >>   &    |

    <    <=   >    >=

    =    ==   !=   <>   IS   IS NOT   IN   LIKE 

    AND   

    OR

    ~    NOT


    在上面的表达式中,唯一需要说明的是"||",该表达式主要用于两个字符串之间的连接,其返回值为连接后的字符串,即便该操作符两边的操作数为非字符串类型,在执行该表达式之前都需要被提前转换为字符串类型,之后再进行连接。

二、条件表达式:

    该表达式的语法规则如下:
 


    1). CASE x WHEN w1 THEN r1 WHEN w2 THEN r2 ELSE r3 END

    2). CASE WHEN x=w1 THEN r1 WHEN x=w2 THEN r2 ELSE r3 END

 

    对于第一种情况,条件表达式x只需计算一次,然后分别和WHEN关键字后的条件逐一进行比较,直到找到相等的条件,其比较规则等价于等号(=)表达式。如果找到匹配的条件,则返回其后THEN关键字所指向的值,如果没有找到任何匹配,则返回ELSE关键字之后的值,如果不存在ELSE分支,则返回NULL。对于第二种情况,和第一种情况相比,唯一的差别就是表达式x可能被多次执行,比如第一个WHEN条件不匹配,则继续计算后面的WHEN条件,其它规则均与第一种完全相同。最后需要说明的是,以上两种形式的CASE表达式均遵守短路原则,即第一个表达式的条件一旦匹配,其后所有的WHEN表达式均不会再被执行或比较。

三、转换表达式:

    该表达式的语法规则如下:
 


    CAST(expr AS target_type)

 

    该表达式会将参数expr转换为target_type类型,具体的转换规则见如下列表:


目标类型 转换规则描述
TEXT 如果转换INTEGER或REAL类型的值到TEXT类型直接转换即可,就像C/C++接口函数sqlite3_snprintf所完成的工作。
REAL 如果转换TEXT类型的值到REAL类型,在该文本的最前部,将可以转换为实数的文本转换为相应的实数,其余部分忽略。其中该文本值的前导零亦将被全部忽略。如果该文本值没有任何字符可以转换为实数,CAST表达式的转换结果为0.0。
INTEGER 如果转换TEXT类型的值到INTEGER类型,在该文本的最前部,将可以转换为整数的文本转换为相应的整数,其余部分忽略。其中该文本值的前导零亦将被全部忽略。如果该文本值没有任何字符可以转换为整数,CAST表达式的转换结果为0。
如果转换将一个实数值转换为INTEGER类型,则直接截断实数小数部分。如果实数过大,则返回最大的负整数:-9223372036854775808。
NUMERIC   如果转换文本值到NUMERIC类型,则先将该值强制转换为REAL类型,只有在将REAL转换为INTEGER不会导致数据信息丢失以及完全可逆的情况下,SQLite才会进一步将其转换为INTEGER类型。

    最后需要说明的是,如果expr为NULL,则转换的结果也为NULL。

 类似资料:
  • 主要内容:语法,SQLite - 布尔表达式,SQLite - 数值表达式,SQLite - 日期表达式表达式是一个或多个值、运算符和计算值的SQL函数的组合。 SQL 表达式与公式类似,都写在查询语言中。您还可以使用特定的数据集来查询数据库。 语法 假设 SELECT 语句的基本语法如下: 有不同类型的 SQLite 表达式,具体讲解如下: SQLite - 布尔表达式 SQLite 的布尔表达式在匹配单个值的基础上获取数据。语法如下: 假设 COMPANY 表有以下记录: 下面的实例演示了

  • 本文向大家介绍Python中正则表达式的详细教程,包括了Python中正则表达式的详细教程的使用技巧和注意事项,需要的朋友参考一下 1.了解正则表达式     正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。 正则表达式是用来匹配字符串非常强大的工具,在其他编程语言中同样有正则表

  • 本文向大家介绍Java API学习教程之正则表达式详解,包括了Java API学习教程之正则表达式详解的使用技巧和注意事项,需要的朋友参考一下 前言 正则表达式是什么应该不用过多介绍,每位程序员应该都知道,正则表达式描述的是一种规则,符合这种限定规则的字符串我们认为它某种满足条件的,是我们所需的。在正则表达式中,主要有两种字符,一种描述的是普通的字符,另一种描述的是元字符。其中元字符是整个正则表达

  • 正则表达式善于处理文本,对匹配、搜索和替换等操作都有意想不到的作用。正因如此,正则表达式现在是作为程序员七种基本技能之一。

  • 主要内容:谁适合阅读本教程?,阅读本教程前,你需要了解的知识:,编译/执行 SQLite 程序,SQLite 函数参考手册,SQLite 有用的资源SQLite 是一个软件库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。SQLite 是在世界上最广泛部署的 SQL 数据库引擎。SQLite 源代码不受版权限制。 本教程将告诉您如何使用 SQLite 编程,并让你迅速上手。 现在开始学习 SQLite! 谁适合阅读本教程? 本教程有助于初学者了解 SQLite 数据库引擎

  • 本文向大家介绍正则表达式教程之子表达式用法分析,包括了正则表达式教程之子表达式用法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了正则表达式教程之子表达式用法。分享给大家供大家参考,具体如下: 注:在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用java来实现,如果是java本身正则表达式的用法,会在相应的地方说明。所有java例子都在JDK1.6.0_13下测

  • 本文向大家介绍正则表达式学习教程之回溯引用backreference详解,包括了正则表达式学习教程之回溯引用backreference详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了正则表达式回溯引用backreference。分享给大家供大家参考,具体如下: 在所有例子中正则表达式匹配结果包含在源文本中的【和】之间,有的例子会使用Java来实现,如果是java本身正则表达式的用法,会

  • 本文向大家介绍AngularJS入门教程之AngularJS表达式,包括了AngularJS入门教程之AngularJS表达式的使用技巧和注意事项,需要的朋友参考一下 表达式用于应用程序数据绑定到HTML。表达式都写在双括号就像{{表达式}}。表达式中的行为跟ng-bind指令方式相同。 AngularJS应用表达式是纯javascript表达式,并输出它们被使用的数据在那里。 AngularJS