使用精确文本比较

以下示例包含一个 WHERE 子句,它通过使用关键字 LIKE 或 MATCHES 或者等号(=)关系运算符来搜索精确文本比较。与较早的示例不同,这些示例说明如何查询不在当前数据库中的表。仅当包含该表的数据库与当前数据库的 ANSI 兼容状态相同时,才能访问不在当前数据库中的表。如果当前数据库是符合 ANSI 的数据库,那么要访问的表必须也驻留在符合 ANSI 的数据库中。如果当前数据库不是符合 ANSI 的数据库,那么要访问的表必须也驻留在不符合 ANSI 的数据库中。

虽然本章前面使用的数据库是演示数据库,但是下列示例中的 FROM 子句指定了由所有者 bubba 创建的 manatee 表,该表驻留在名为 syzygy 的符合 ANSI 的数据库中。有关如何访问不在不在当前数据库中的表的更多信息,请参阅 GBase 8s SQL 指南:语法

下列查询中的每个语句检索 description 列中具有单词 helmet 的所有行,如下所示。

图: 查询

SELECT stock_no, mfg_code, description, unit_price
          FROM syzygy:bubba.manatee
          WHERE description = 'helmet'
          ORDER BY mfg_code;
          
          SELECT stock_no, mfg_code, description, unit_price
          FROM syzygy:bubba.manatee
          WHERE description LIKE 'helmet'
          ORDER BY mfg_code;
          
          SELECT stock_no, mfg_code, description, unit_price
          FROM syzygy:bubba.manatee
          WHERE description MATCHES 'helmet'
          ORDER BY mfg_code; 
该结果可能如下图所示。

图: 查询结果

stock_no mfg_code  description     unit_price
        
        991 ABC       helmet             $222.00
        991 BKE       helmet             $269.00
        991 HSK       helmet             $311.00
        991 PRC       helmet             $234.00
        991 SPR       helmet             $245.00