大家好,才是真的好。昨天已经开学了,听说很多学生哭声一片,普遍的心情是这样的:
言归正传,既然开学,我们还得好好学习呐。前面很多章节,我们提到过Domino查询语言Domino Query Language,以下简称DQL,今天我们就来具体讲述DQL的语法和使用。
一、语法结构
其实也很简单,语法结构主要是:
Term Boolean Term [Boolean Term …]
Term即术语,Boolean即逻辑符。初看起来就是“术语加逻辑符”,用空格间隔。可是Term有哪些,逻辑符又有哪些呢?
二、Tearm术语
Term由三个部分构成:标识符、操作符、值。其语法为:
[Identifier] Operator [Value]
继续深入下去,标识符又分为三种类型:汇总字段(字段名)、视图或文件夹.列名、@函数。其中视图或文件夹.列名中的列名必须是主要的可排序的列名称;函数则主要有@all、@ModifiedInThisFile 、@DocumentUniqueID和@Created等。
操作符有= 、> 、>= 、 < 、 <= 和in [all]等。
值也有三种,对应三种字段数值类型:文本、时间日期和数字。
三、逻辑符
逻辑符由”and”、”or”、”and not”、”or not”等四个组成。熟悉一点其他脚本或编程语言的朋友,应该对这四个单词非常熟悉,所以不过多地进行解释了。
四、几个简单的例子
虽然DQL并不复杂,但听起来很有点枯燥,幸亏我们可以举些例子,以加深大家的理解。
A、如要查询订单号在146751和150111(包括150111)之间的所有文档,则查询语句应该这么写:
order_no > 146751 and order_no <= 150111
是不是很简单,像以前的公式?现在我们稍微看一个复杂一点的,还记得操作符号in [all]吗?
B、下列代码的意思是找出username字段中包含’Chad Keighley’, ‘Jeff Chantel’, ‘Louis Cawlfield’, ‘Mariel Nathanson’任意一个名字的所有文档。
username in (‘Chad Keighley’, ‘Jeff Chantel’, ‘Louis Cawlfield’, ‘Mariel Nathanson’)
C、下面用一个值为日期的查找文档方法,比如找到字段date_origin日期值在2018年10月10号以后的所有文档
date_origin > @dt(‘20181010T100000+0500’)
时间日期值是GMT或ZULU时间格式中指定的ISO8601兼容值,一般会用公式@dt(‘datetime value’)进行获取或处理。
D、如果查找Orders视图中的order_type为Phone的所有文档,其语句为
‘Orders’.order_type = ‘Phone’
E、在‘Orders’, ’Special orders folder 1’, ‘Old_orders 2’视图或文件夹中找所有的文档
in (‘Orders’, ’Special orders folder 1’, ‘Old_orders 2’)
五、结语
学习到具体的实例是不是觉得DQL特别简单,现在你已经基本上入门了DQL,当然肯定需要多加运用才能掌握熟练。后面我们也会进一步讲解DQL语言的语法和应用。