FastDB支持一种具有类似SQL语法的查询语言。FastDB使用的符号更受对象导向编程的欢迎,而不是关系型数据库。表行被视为对象实例,表是这些对象的类。与SQL不同,FastDB以对象为导向,而不是SQL元组。因此,每次查询执行的结果是一个类的一组对象。FastDB查询语言与标准SQL的主要区别包括:
- 没有多个表的连接和嵌套子查询。查询总是返回一个表中的对象集。
- 原子表列使用标准的C类型。
- 除了空引用外,没有NULL值。我完全同意C.J. Date对三值逻辑的批评,并支持使用默认值的提议。
- 可以使用结构和数组作为记录组件。提供了一个专门的exists量词用于定位数组中的元素。
- 可以为表记录(对象)以及记录组件定义无参数的用户方法。
- 应用程序可以定义带有一个字符串或数字参数的用户函数。
- 支持对象之间的引用,包括对逆引用的自动支持。
- 通过start from follow的构造执行使用引用的递归记录遍历。由于查询语言与C++类深度集成,因此对于语言标识符和关键字使用大小写敏感模式。
- 不会对整数和浮点类型进行隐式转换为字符串表示。如果需要这种转换,必须明确执行。