文章
姚 鑫 · 二月 10, 2022 阅读大约需 2 分钟
第五十章 SQL函数 DAYOFWEEK

第五十章 SQL函数 DAYOFWEEK

Date函数,它返回日期表达式的整型日期。

参数

  • date-expression - 日期表达式,它是列名、另一个标量函数的结果或日期或时间戳文字。

描述

DAYOFYEAR返回一个介于1到366之间的整数,该整数对应于给定日期表达式的一年中的第几天。DAYOFYAR计算闰年日期。

根据日期整数、$HOROLOG$ZTIMESTAMP值、ODBC格式日期字符串或时间戳计算一年中的日期。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

时间戳的时间部分不计算,可以省略。

0 0
0 28
文章
姚 鑫 · 三月 28, 2022 阅读大约需 3 分钟
第九十五章 SQL函数 MINUTE

第九十五章 SQL函数 MINUTE

返回日期时间表达式的分钟的时间函数。

大纲

{fn MINUTE(time-expression)}

参数

  • time-expression - 作为列名、另一个标量函数的结果或字符串或数字文字的表达式。它必须解析为日期时间字符串或时间整数,其中基础数据类型可以表示为 %Time%TimeStamp%PosixTime

描述

MINUTE 返回一个整数,指定给定时间或日期时间值的分钟数。为 $HOROLOG$ZTIMESTAMP 值、ODBC 格式日期字符串或时间戳计算分钟。

0 0
0 24
文章
姚 鑫 · 四月 13, 2022 阅读大约需 1 分钟
第111章 SQL函数 PREDICT

第111章 SQL函数 PREDICT

IntegratedML 函数,它应用指定的训练模型来预测提供的每个输入行的结果。

大纲

PREDICT(model-name )

PREDICT(model-name USE trained-model-name )

PREDICT(model-name WITH feature-columns-clause )

PREDICT(model-name USE trained-model-name WITH feature-columns-clause )

描述

PREDICT 是一个 IntegratedML 函数,可用作 SELECT 选择项以返回将经过训练的机器学习模型应用于指定查询的结果。

0 0
0 25
文章
姚 鑫 · 四月 28, 2022 阅读大约需 1 分钟
第126章 SQL函数 SIN

第126章 SQL函数 SIN

标量数值函数,返回角度的正弦值(以弧度为单位)。

大纲

{fn SIN(numeric-expression)}

参数

  • numeric-expression - 数值表达式。这是一个以弧度表示的角度。

SIN 返回 NUMERICDOUBLE 数据类型。如果 numeric-expression 是数据类型 DOUBLE,则 SIN 返回 DOUBLE;否则,它返回 NUMERIC

描述

SIN 接受任何数值并将其正弦作为浮点数返回。如果传递一个 NULL 值,SIN 返回 NULLSIN 将非数字字符串视为数值 0

0 0
0 19
文章
姚 鑫 · 五月 31, 2022 阅读大约需 1 分钟
第158章 SQL函数 XMLCONCAT

第158章 SQL函数 XMLCONCAT

注:IRIS函数。

连接 XML 元素的函数。

大纲

XMLCONCAT(XmlElement1,XmlElement2[,...])

参数

  • XmlElement - XMLELEMENT 函数。指定两个或多个要连接的 XmlElement

描述

XMLCONCAT 函数将来自多个 XMLELEMENT 函数的值作为单个字符串返回。 XMLCONCAT 可用于引用表或视图的 SELECT 查询或子查询。 XMLCONCAT 可以与普通字段值一起出现在 SELECT 列表中。

示例

以下查询连接来自两个 XMLELEMENT 函数的值:

0 0
0 27
文章
姚 鑫 · 六月 19, 2022 阅读大约需 3 分钟
第四章 锁定和并发控制(四)

第四章 锁定和并发控制(四)

避免死锁

增量锁定具有潜在危险,因为它可能导致称为死锁的情况。当两个进程各自对已被另一个进程锁定的变量断言增量锁定时,就会出现这种情况。因为尝试的锁是增量的,所以现有的锁不会被释放。结果,每个进程在等待另一个进程释放现有锁的同时挂起。

举个例子:

  1. 进程 A 发出此命令:lock + ^MyGlobal(15)
  2. 进程 B 发出此命令:lock + ^MyOtherGlobal(15)
  3. 进程 A 发出此命令:lock + ^MyOtherGlobal(15)

LOCK 命令不返回;进程被阻塞,直到进程 B 释放这个锁。

0 0
0 25
文章
姚 鑫 · 七月 5, 2022 阅读大约需 5 分钟
第十九章 使用工作队列管理器(二)

第十九章 使用工作队列管理器(二)

基本工作流程

可以通过执行以下步骤来使用工作队列管理器:

  1. ObjectScript 代码划分为工作单元,这些工作单元是满足特定要求的类方法或子例程。
  2. 创建一个工作队列,它是 %SYSTEM.WorkMgr 类的一个实例。为此,请调用 %SYSTEM.WorkMgr 类的 %New() 方法。该方法返回一个工作队列。

可以指定要使用的并行worker jobs的数量,也可以使用默认值,这取决于机器和操作系统。此外,如果已创建类别,则可以指定应从中获取job的类别。

创建工作队列时,工作队列管理器会创建以下工件:
- 包含有关工作队列的信息的全局变量,例如工作队列在哪个命名空间中运行
- 工作队列必须处理的序列化工作单元的位置和事件队列
- 在工作队列完成处理工作单元时创建的完成事件的位置和事件队列

0 0
0 22
文章
姚 鑫 · 三月 9, 2021 阅读大约需 11 分钟
第六章 SQL定义和使用视图

第六章 SQL定义和使用视图

视图是一种虚拟表,由执行时通过SELECT语句或几个SELECT语句的UNION从一个或多个物理表中检索到的数据组成。 SELECT可以通过指定表或其他视图的任意组合来访问数据。因此,存储了视图的视图提供了物理表的所有灵活性和安全性特权。

InterSystemsIRIS®数据平台上的InterSystems SQL支持在视图上定义和执行查询的功能。

注意:不能对以只读方式安装的数据库中存储的数据创建视图。
无法在通过ODBC或JDBC网关连接链接的Informix表中存储的数据上创建视图。这是因为InterSystems IRIS查询转换对这种类型的查询使用FROM子句中的子查询。 Informix不支持FROM子句子查询。

# 创建一个视图

可以通过几种方式定义视图:

0 0
0 59
文章
姚 鑫 · 三月 26, 2021 阅读大约需 6 分钟
第十三章 使用动态SQL(四)

第十三章 使用动态SQL(四)

返回完整结果集

使用%Execute()%ExecDirect()执行语句将返回一个实现%SQL.StatementResult接口的对象。该对象可以是单一值,结果集或从CALL语句返回的上下文对象。

%Display()方法

可以通过调用%SQL.StatementResult类的%Display()实例方法来显示整个结果集(结果对象的内容),如以下示例所示:

  DO rset.%Display()

请注意,%Display()方法不会返回%Status值。

显示查询结果集时,%Display()通过显示行数来结束:“受影响的5行”。 (这是%Display()遍历结果集之后的%ROWCOUNT值。)请注意,%Display()不会在此行计数语句之后发出行返回。

0 0
0 106
文章
姚 鑫 · 四月 13, 2021 阅读大约需 14 分钟
第二章 定义和构建索引(一)

第二章 定义和构建索引(一)

概述

索引是由持久类维护的结构,InterSystems IRIS®数据平台可以使用它来优化查询和其他操作。

可以在表中的字段值或类中的相应属性上定义索引。(还可以在多个字段/属性的组合值上定义索引。)。无论是使用SQL字段和表语法还是类属性语法定义相同的索引,都会创建相同的索引。当定义了某些类型的字段(属性)时,InterSystems IRIS会自动定义索引。可以在存储数据或可以可靠派生数据的任何字段上定义附加索引。InterSystems IRIS提供了几种类型的索引。可以为同一字段(属性)定义多个索引,为不同的目的提供不同类型的索引。

无论是使用SQL字段和表语法,还是使用类属性语法,只要对数据库执行数据插入、更新或删除操作,InterSystems IRIS就会填充和维护索引(默认情况下)。可以覆盖此默认值(通过使用%NOINDEX关键字)来快速更改数据,然后作为单独的操作生成或重新生成相应的索引。可以在用数据填充表之前定义索引。还可以为已经填充了数据的表定义索引,然后作为单独的操作填充(构建)索引。

0 0
0 95
文章
姚 鑫 · 四月 29, 2021 阅读大约需 10 分钟
第九章 冻结计划

第九章 冻结计划

大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。

对系统软件的更改也可能导致不同的查询计划。通常,这些升级会带来更好的查询性能,但软件升级可能会降低特定查询的性能。冻结计划使可以保留(冻结)查询计划,以便查询性能不会因系统软件升级而改变(降级或提高)。

0 0
0 45
文章
姚 鑫 · 九月 15, 2021 阅读大约需 10 分钟
第十七章 SQL命令 CREATE TABLE(四)

第十七章 SQL命令 CREATE TABLE(四)

唯一字段约束

唯一字段约束对多个字段的组合值施加唯一值约束。它具有以下语法:

CONSTRAINT uname UNIQUE (f1,f2)

此约束指定字段f1f2的值组合必须始终是唯一的,即使这两个字段本身的值可能不是唯一的。可以为此约束指定一个、两个或多个字段。

此约束中指定的所有字段都必须在字段定义中定义。如果在此约束中指定的字段没有出现在字段定义中,则会生成SQLCODE-86错误。指定的字段应定义为非空。任何指定的字段都不应定义为唯一的,因为这会使指定此约束变得毫无意义。

字段可以按任何顺序指定。字段顺序指定相应索引定义的字段顺序。允许重复的字段名称。虽然可以在唯一字段约束中指定单个字段名称,但这与为该字段指定唯一数据约束在功能上是相同的。单字段约束确实提供了约束名称以供将来使用。

可以在表定义中指定多个唯一字段约束语句。约束语句可以在字段定义中的任何位置指定;按照惯例,它们通常放在已定义字段列表的末尾。

0 0
0 157
文章
姚 鑫 · 十月 17, 2021 阅读大约需 7 分钟
第四十八章 SQL命令 GRANT(二)

第四十八章 SQL命令 GRANT(二)

GRANT COLUMN-权限

列权限授予用户或角色对指定表或视图上的指定列列表的指定权限。这允许访问某些表列,而不允许访问同一表的其他列。这提供了比GRANT OBJECT-PRIVICATION选项更具体的访问控制,后者定义了整个表或视图的权限。向被授权者授予权限时,应为表授予表级权限或列级权限,但不能同时授予两者。SELECTINSERTUPDATEREFERENCES权限可用于授予对单个列中数据的访问权限。

对具有GRANT OPTION的表具有SELECTINSERTUPDATEREFERENCES对象权限的用户可以向其他用户授予该表的列的相同类型的列权限。

可以指定单个列,也可以指定逗号分隔的列列表。列列表必须用括号括起来。列名可以按任意顺序指定,允许重复。将COLUMN特权授予已具有该特权的列不起作用。

0 0
0 38
文章
姚 鑫 · 十一月 2, 2021 阅读大约需 5 分钟
第六十四章 SQL命令 ORDER BY(二)

第六十四章 SQL命令 ORDER BY(二)

示例

下面的示例按照RowID的反向顺序对记录进行排序:

SELECT %ID,Name
FROM Sample.Person
ORDER BY %ID DESC

下面两个示例展示了在ORDER BY子句中指定排序列的不同方法。
下面两个查询是等价的;
第一种方法使用列名作为排序项,第二种方法使用列号(选择项列表中项目的序号):

0 0
0 21
文章
姚 鑫 · 一月 8, 2022 阅读大约需 1 分钟
第十八章 SQL函数 ASCII

第十八章 SQL函数 ASCII

一个字符串函数,返回字符串表达式的第一个(最左边)字符的整型ASCII码值。

大纲

ASCII(string-expression)

{fn ASCII(string-expression)}

参数

  • string-expression - 字符串表达式,它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHARVARCHAR)。
    CHARVARCHAR类型的字符串表达式。

描述

如果传入一个NULL或空字符串值,ASCII将返回NULL
空字符串返回NULLSQL Server一致。

0 0
0 36
文章
姚 鑫 · 一月 26, 2022 阅读大约需 2 分钟
第三十五章 SQL函数 CURRENT_DATE

第三十五章 SQL函数 CURRENT_DATE

日期/时间函数,返回当前本地日期。

大纲

CURRENT_DATE

描述

CURRENT_DATE不带任何参数。它将当前本地日期作为数据类型DATE返回。不允许使用参数括号。CURRENT_DATE返回此时区的当前本地日期;它根据本地时间变量(如夏令时)进行调整。

在逻辑模式下CURRENT_DATE$HOROLOG格式返回当前本地日期;
例如,64701
显示模式下的CURRENT_DATE以区域设置的默认格式返回当前本地日期。
例如,在美国的区域设置为02/22/2018,在欧洲的区域设置为22/02/2018,在俄罗斯的区域设置为22.02.2018

1 0
0 89
文章
姚 鑫 · 三月 13, 2022 阅读大约需 5 分钟
第八十章 SQL函数 $LIST(二)

第八十章 SQL函数 $LIST(二)

示例

在以下嵌入式 SQL 示例中,两个 WRITE 语句都返回“Red”,即列表中的第一个元素。第一个默认写入第一个元素,第二个写入第一个元素,因为位置参数设置为 1

0 0
0 33
文章
姚 鑫 · 三月 29, 2022 阅读大约需 2 分钟
第九十六章 SQL函数 MOD

第九十六章 SQL函数 MOD

注:IRIS可用,非IRIS版本不可用。

标量数值函数,返回一个数除以另一个数的模数(余数)。

大纲

MOD(dividend,divisor)

{fn MOD(dividend,divisor)}

参数

  • dividend - 数字,它是除法的分子(除数)。
  • divisor - 数字,它是除法的分母(除数)。

MOD 返回 NUMERIC 数据类型,除非被除数是数据类型 DOUBLE。如果dividendDOUBLE,则 MOD 返回 DOUBLE

描述

MOD 返回除数除数的数学余数(模数)。

0 0
0 22
文章
姚 鑫 · 四月 15, 2022 阅读大约需 2 分钟
第113章 SQL函数 QUARTER

第113章 SQL函数 QUARTER

日期函数,它将一年中的季度作为日期表达式的整数返回。

大纲

{fn QUARTER(date-expression)}

参数

  • date-expression - 表达式,它是列的名称、另一个标量函数的结果,或者是日期或时间戳文字。

描述

QUARTER 返回一个从 14 的整数。季度是针对 日期整数、$HOROLOG 或 $ZTIMESTAMP 值、ODBC 格式日期字符串或时间戳计算的。

日期表达式时间戳可以是数据类型 %Library.PosixTime(编码的 64 位有符号整数),也可以是数据类型 %Library.TimeStamp (yyyy-mm-dd hh:mm:ss.fff)。

四个季度的时间段如下:

0 0
0 23