FOR UPDATE 子句

FOR UPDATE 子句通过 SQL 光标锁定记录来进行定位更新或定位删除。格式为:

复制
FOR UPDATE [OF column_expressions]

column_expressions 是您要更新的数据库表中的字段名列表,由逗号分隔。column_expressions 是可选的,可以忽略。

示例

返回员工数据库中 SALARY 字段值大于 $20,000 的所有记录。

复制
SELECT * FROM emp WHERE salary > 20000 FOR UPDATE OF last_name, first_name, salary

在获取每个记录时,会对其进行锁定。如果记录已更新或删除,在您提交更改之前会保持锁定。否则,在您获取下一个记录时释放锁定。

示例

使用

示例 SQL

文本常量

复制
SELECT 'CatDog' FROM Salespeople

数字常量

复制
SELECT 999 FROM Salespeople

日期常量

复制
SELECT DATE '2021-06-05' FROM Salespeople

时间常量

复制
SELECT TIME '02:49:03' FROM Salespeople

时间戳常量

复制
SELECT TIMESTAMP '2021-06-05 02:49:03' FROM Salespeople

文本列

复制
SELECT Company_Name FROM Sales_Data
SELECT DISTINCT Company_Name FROM Sales_Data

数字列

复制
SELECT Amount FROM Sales_Data
SELECT DISTINCT Amount FROM Sales_Data

日期列

复制
SELECT Date_Sold FROM Sales_Data
SELECT DISTINCT Date_Sold FROM Sales_Data

时间列

复制
SELECT Time_Sold FROM Sales_Data
SELECT DISTINCT Time_Sold FROM Sales_Data

时间戳列

复制
SELECT Timestamp_Sold FROM Sales_Data
SELECT DISTINCT Timestamp_Sold FROM Sales_Data

BLOB 列

复制
SELECT Company_Brochures FROM Sales_Data
SELECT GETAS(Company_Logo, 'JPEG') FROM Sales_Data

注释  BLOB 是 FileMaker Pro 数据库文件容器字段。

通配符 *

复制
SELECT * FROM Salespeople
SELECT DISTINCT * FROM Salespeople

示例的注释

column 是对 FileMaker Pro 数据库文件中字段的引用。(字段可以包含许多非重复值。)

星号 (*) 通配符是“所有内容”的简略表示。对于示例 SELECT * FROM Salespeople,结果是 Salespeople 表中的所有列。对于示例 SELECT DISTINCT * FROM Salespeople,结果是 Salespeople 表中的所有唯一行(无重复项)。

  • FileMaker 软件没有存储空字符串的数据,因此以下查询始终不返回记录:

    复制
    SELECT * FROM test WHERE c =''
    SELECT * FROM test WHERE c <>''
  • 如果将 SELECT 与二进制数据一起使用,则必须使用 GetAs() 函数来指定要返回的流。有关更多信息,请参阅检索容器字段的内容:CAST() 函数和 GetAs() 函数一节。

检索容器字段的内容:CAST() 函数和 GetAs() 函数

您可以从容器字段中检索文件引用信息、二进制数据或特定文件类型的数据。

  • 要从容器字段检索文件引用信息,例如某个文件的文件路径、图片或视频,可以将 CAST() 函数与 SELECT 语句一起使用。

  • 如果文件数据或 JPEG 二进制数据存在,则具有 GetAs(field name, 'JPEG')SELECT 语句会检索二进制形式的数据;否则具有字段名称的 SELECT 语句会返回 NULL

示例

使用 CAST() 函数及 SELECT 语句来检索文件引用信息。

复制
SELECT CAST(Company_Brochures AS VARCHAR) FROM Sales_Data

在本示例中,如果您:

  • 使用 FileMaker Pro 将文件插入容器字段,但仅存储文件的引用,SELECT 语句会以类型 SQL_VARCHAR 检索文件引用信息。

  • 使用 FileMaker Pro 将文件的内容插入容器字段,SELECT 语句会检索文件的名称。

  • 将文件从其他应用程序导入容器字段,SELECT 语句会显示“?”(文件在 FileMaker Pro 中显示为 Untitled.dat)。

您可以使用 SELECT 语句和 GetAs() 函数通过以下方法检索二进制形式的数据:

  • 使用 GetAs() 函数及 DEFAULT 选项时,检索的是容器的默认数据流,不需要明确定义流类型。

    示例

    复制
    SELECT GetAs(Company_Brochures, DEFAULT) FROM Sales_Data
  • 要从容器检索单个流类型,根据在 FileMaker Pro 中将数据插入容器字段的方式,将 GetAs() 函数与文件的类型一起使用。

    示例

    如果使用“插入”>“文件”命令插入数据,则在 GetAs() 函数中指定 'FILE'

    复制
    SELECT GetAs(Company_Brochures, 'FILE') FROM Sales_Data

    如果使用“插入”>“图片”命令插入数据,从剪贴板拖放或粘贴,指定在下表中列出的文件类型之一,例如 'JPEG'

    复制
    SELECT GetAs(Company_Logo, 'JPEG') FROM Company_Icons

    文件类型

    说明

    'GIFf'

    图形交换格式

    'JPEG'

    摄影图像

    'TIFF'

    数字图像的光栅文件格式

    'PDF '

    可移植文档格式

    'PNGf'

    位图图像格式