0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

玩转SQLite8:运算符与表达式

码农爱学习 来源:码农爱学习 作者:码农爱学习 2022-09-27 08:56 次阅读

SQLite是一个跨平台的轻量级数据库,支持C/C++开发,可用于嵌入式中,关于C/C++使用SQLite的简单实例,可参考这篇:“玩转SQLite6:使用C语言来读写数据库”

本篇来继续介绍SQLite的基础运算符与表达式。

1 SQLite 运算符

1.1 算术运算符

和C语言类似,SQLite也支持四则运算,具体的使用方法如下:

加:+ ,把运算符两边的值相加

减:-,左操作数减去右操作数

乘:*,把运算符两边的值相乘

除:/, 左操作数除以右操作数

取余:%,左操作数除以右操作数后得到的余数

示例:

sqlite> .mode line
sqlite> select 5+8;
  5+8 = 13
sqlite> select 5-8;
  5-8 = -3
sqlite> select 5*8;
  5*8 = 40
sqlite> select 8/5;
  8/5 = 1
sqlite> select 8%5;
  8%5 = 3
sqlite>
pYYBAGMxuOyADS7UAAA8Od54Vag571.png

1.2 比较运算符

和C语言类似,SQLite也支持数值的比较,但要主要SQLite中对不同符合的定义,尤其是“等于”和“不等于”,另外,SQLite还具有“不大于”和“不小于”的判断,具体的使用方法如下:

以变量 a=10,变量 b=20,为例:

相等:===, 例:(a == b) 不为真、(a = b) 不为真

不相等:!=<>, 例:(a != b) 为真、(a <> b) 为真

大于:>, 例:(a > b) 不为真

小于:<, 例:(a < b) 为真

大于等于:>=, 例:(a >= b) 不为真

小于等于:<=, 例:(a <= b) 为真

不小于:!<, 例:(a !< b) 为假

不大于:!>, 例: (a !> b) 为真

示例:

之前测试时用到的SCORE表有以下记录:

id  chinese  math  english
--  -------  ----  -------
1   90       95    88
2   80       90    92
3   85       89    82
4   80       81    82
5   90       91    92
6   90       88    89
7   70       81    88
8   81       85    83
9   85       88    86
10  88       83    90

选择math大于等于90的所有记录:

sqlite> select * from SCORE where math >= 90;
pYYBAGMxuQSAbGAuAAAwSzzQ7SE144.png

1.3 逻辑运算符

和C语言类似,SQLite也支持逻辑运算符,比如与、或、非操作,但要注意的是,SQLite使用的不是符号,而是英文单词:

与或非

与:AND

或:OR

非:NOT

范围

SQLite还有判断是否在某个范围之间,是否存在的判断:

范围之间:BETWEEN

存在:EXISTS

存在:IN

不存在:NOT IN

比较

另外,SQLite还有相似判断:

相似比较:LIKE

相似比较:GLOB,大小写敏感

相同:IS

不相同:IS NOT

非空:IS NULL

其它

字符串连接:||

无重复:UNIQUE

下面通过实例来测试这些功能,还是以的SCORE表为例:

id  chinese  math  english
--  -------  ----  -------
1   90       95    88
2   80       90    92
3   85       89    82
4   80       81    82
5   90       91    92
6   90       88    89
7   70       81    88
8   81       85    83
9   85       88    86
10  88       83    90

选出math大于等于90 chinese大于等于90的所有记录:

sqlite> select * from SCORE where math >= 90 and chinese>=90;
poYBAGMxuR2ANrGMAAAxTxpDeZI541.png

选出math的值为80或90的所有记录:

sqlite> select * from SCORE where chinese in (80,90);
pYYBAGMxuUKADStGAAAUTCo9-vY608.png

选出math的值在80与90之间的所有记录:

sqlite> select * from SCORE where chinese between 80 and 90;
poYBAGMxuUqAQjIXAAAjvuOwHxA443.png

1.4 位运算符

和C语言类似,SQLite也支持按位运算,比如按位与、按位或,取反,左移右移等:

与:&

或:|

取反:~

左移:<<

右移:>>

示例:

sqlite> .mode line
sqlite> select 2|4;
  2|4 = 6
sqlite> select 2&4;
  2&4 = 0
sqlite> select (~2);
 (~2) = -3
sqlite> select (2<<2);
(2<<2) = 8
sqlite> select (2>>1);
(2>>1) = 1
poYBAGMxuViAHZL-AAAYqTDbOCQ698.png

2 SQLite表达式

表达式是一个或多个运算符计算值的SQL函数的组合

2.1 布尔表达式

布尔表达式在匹配单个值的基础上获取数据

示例:

sqlite> select * from SCORE where english=88;
poYBAGMxuWiAbO9EAAAnhUnu04o381.png

2.2 数值表达式

数值表达式用来执行查询中的任何数学运算

示例:

sqlite> .mode line
sqlite> select (5+8) as addres;
addres = 13

2.3 日期表达式n

日期表达式返回当前系统日期和时间值

sqlite> select current_timestamp;
current_timestamp = 2021-12-18 15:29:26
poYBAGMxuXyAC4LqAAASc6K3CPg926.png

3 总结

本篇介绍了SQLite的基础运算符与表达式,并通过命令行的方式执行sql语句进行测试验证,在实际开发中,可使用C/C++ API函数来使用。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • C语言
    +关注

    关注

    180

    文章

    7591

    浏览量

    135813
  • SQlite
    +关注

    关注

    0

    文章

    78

    浏览量

    15887
  • 运算符
    +关注

    关注

    0

    文章

    170

    浏览量

    11046
收藏 人收藏

    评论

    相关推荐

    JAVA语言的运算符表达式

    JAVA语言的运算符表达式3.5 运算符表达式数据的类型除了限定数据的存储方式、取值范围之外,还定义了对该数据类型可进行的操作即运算。表
    发表于 12-06 00:28

    数据类型、运算符表达式

    数据类型、运算符表达式2.1   程序设计概述2.2  C语言的数据类型 2.3  常量和变量 2.4 
    发表于 03-10 15:05

    关于C语言的运算符表达式--笔记1

    关于C语言的运算符表达式学好C语言的基础运算,还是很有必要,无论在C语言,还是后面单片机,都会用到基础运算。如果不能很好运用,会给我们编程带来很多麻烦,废话不多说,现在开始写一些个人
    发表于 07-19 00:48

    C语言程序设计--运算符表达式

    c语言对数据有很强的表达能力,具有十分丰富的运算符,利用这些运算符可以组成各种表达式及语句。运算符就是完成某种特定
    发表于 07-14 21:30 46次下载

    单片机C语言教程-运算符表达式

    单片机C语言教程-运算符表达式   单片机C语言教程-运算符表达式  运算符的种类、优先级和结合性  c语言中运
    发表于 03-27 17:13 2203次阅读

    基于运算符信息的数学表达式检索技术

    传统的文本检索技术主要面向一维文本,难以用于对二维结构数学表达式的检索。针对该问题,通过引入公式描述结构,实现基于运算符信息的数学表达式检索。利用公式描述结构提取算法获取 Latex数学表达式
    发表于 04-29 15:58 2次下载
    基于<b class='flag-5'>运算符</b>信息的数学<b class='flag-5'>表达式</b>检索技术

    RTL表达式运算符

    经过几周的更新,SV核心部分用户自定义类型和包内容已更新完毕,接下来就是RTL表达式运算符
    的头像 发表于 07-27 09:11 1657次阅读

    SystemVerilog-运算符/表达式规则

    RTL建模中广泛使用的运算符是条件运算符,也称为三元运算符,该运算符用于在两个表达式之间进行选择——表5-2列出了用于表示条件
    的头像 发表于 08-03 09:03 2995次阅读

    关于RTL表达式运算符

    经过几周的更新,SV核心部分用户自定义类型和包内容已更新完毕,接下来就是RTL表达式运算符
    的头像 发表于 09-01 09:13 1807次阅读

    RTL表达式运算符

    经过几周的更新,SV核心部分用户自定义类型和包内容已更新完毕,接下来就是RTL表达式运算符
    的头像 发表于 10-11 10:15 1618次阅读

    RTL表达式运算符

    经过几周的更新,SV核心部分用户自定义类型和包内容已更新完毕,接下来就是RTL表达式运算符
    的头像 发表于 11-03 09:14 1292次阅读

    运算符/表达式规则

    运算符对操作数执行操作。大多数运算符都有两个操作数。例如,在运算a+b中,+(加法)运算的操作数是a和b。每个操作数都被称为表达式
    的头像 发表于 02-09 15:37 931次阅读
    <b class='flag-5'>运算符</b>/<b class='flag-5'>表达式</b>规则

    逻辑运算符表达式

    在C语言中,我们通常会进行真值与假值的判断,这时我们就需要用到逻辑运算符与逻辑表达式。如果表达式的值不为0,则通通返回为真值。只有当表达式的值为0时,才会返回假值。
    的头像 发表于 02-21 15:16 2032次阅读
    逻辑<b class='flag-5'>运算符</b>与<b class='flag-5'>表达式</b>

    位逻辑运算符表达式

    位逻辑运算符与位逻辑表达式可以实现位的编辑,比如位的清零、设置、取反和取补等操作。使用位逻辑运算符与位逻辑表达式可以在不使用汇编的情况下实现部分汇编的功能
    的头像 发表于 02-21 15:22 1197次阅读
    位逻辑<b class='flag-5'>运算符</b>与<b class='flag-5'>表达式</b>

    C语言基本的算术运算符表达式

    注意:自增和自减运算符只能用于变量,而不能用于常量或表达式 **C语言算术表达式运算符的优先级与结合性 ** 在表达式求值时,
    的头像 发表于 03-09 10:44 1516次阅读