文章 姚 鑫 · 十一月 24, 2021 阅读大约需 2 分钟 第八十六章 SQL命令 USE DATABASE 第八十六章 SQL命令 USE DATABASE 设置当前名称空间和数据库。 大纲 USE [DATABASE] dbname 参数 dbname - 当前进程将使用的名称空间和相应的数据库作为当前名称空间。 描述 USE DATABASE命令将当前进程切换到指定的名称空间及其关联的数据库。 这允许在SQL中更改名称空间。 DATABASE关键字是可选的。 指定的dbname是所需的命名空间和包含数据库文件的对应目录的名称。 指定dbname作为标识符。 命名空间名称不区分大小写。 由于USER是SQL保留字,因此必须使用分隔标识符来指定用户命名空间,如下面的SQL Shell示例所示: #SQL #Caché 0 0 0 75
文章 姚 鑫 · 十一月 23, 2021 阅读大约需 3 分钟 第八十五章 SQL命令 UPDATE(四) 第八十五章 SQL命令 UPDATE(四) 示例 本节中的示例更新SQLUser.MyStudents表。 下面的示例创建SQLUser.MyStudents表,并用数据填充它。 因为这个示例的重复执行会积累具有重复数据的记录,所以它使用TRUNCATE TABLE在调用INSERT之前删除旧数据。 在调用UPDATE示例之前执行这个示例: #SQL #Caché 0 0 0 47
文章 姚 鑫 · 十一月 22, 2021 阅读大约需 6 分钟 第八十四章 SQL命令 UPDATE(三) 第八十四章 SQL命令 UPDATE(三) 参照完整性 如果没有指定%NOCHECK, IRIS将使用系统范围的配置设置来确定是否执行外键引用完整性检查; 默认值是执行外键引用完整性检查。 可以在系统范围内设置此默认值,如外键引用完整性检查中所述。 要确定当前系统范围的设置,调用$SYSTEM.SQL.CurrentSettings()。 此设置不适用于用NOCHECK关键字定义的外键。 在UPDATE操作期间,对于每个具有更新字段值的外键引用,都会在被引用表中的旧(更新前)引用行和新(更新后)引用行上获得共享锁。 这些行在执行引用完整性检查和更新行时被锁定。 然后释放锁(直到事务结束才持有锁)。 这确保了引用的行不会在引用完整性检查和更新操作完成之间发生更改。 锁定旧行可以确保在可能的UPDATE回滚之前不会更改所引用的行。 锁定新行可以确保引用的行不会在引用完整性检查和更新操作完成之间发生更改。 #SQL #Caché 0 0 0 82
文章 姚 鑫 · 十一月 21, 2021 阅读大约需 9 分钟 第八十三章 SQL命令 UPDATE(二) 第八十三章 SQL命令 UPDATE(二) 显示到逻辑数据转换 数据以逻辑模式格式存储。 例如,日期存储为整数天数,时间存储为从午夜开始的秒数,%List存储为编码字符串。 大多数其他数据,如字符串和数字,不需要转换; 无论当前模式如何,它们都以相同的格式输入、更新和存储。 对于已转换的数据,可以在LOGICAL模式(默认)中更新数据值,或者通过指定选择模式,使用更易于阅读的格式(DISPLAY模式或ODBC模式)更新数据值。 例如,通过指定选择模式,可以以DISPLAY格式(例如2/22/2018)、ODBC格式(例如2018-02-22)或逻辑格式(例如64701)更新日期。 对于某些数据类型,还可以在ODBC或DISPLAY选择模式下以LOGICAL格式指定数据。 #SQL #Caché 0 0 0 35
文章 姚 鑫 · 十一月 20, 2021 阅读大约需 8 分钟 第八十二章 SQL命令 UPDATE(一) 第八十二章 SQL命令 UPDATE(一) 为指定表中的指定列设置新值。 #SQL #Caché 0 0 0 69
文章 姚 鑫 · 十一月 18, 2021 阅读大约需 9 分钟 第八十章 SQL命令 UNION 第八十章 SQL命令 UNION 组合两个或多个SELECT语句。 #SQL #Caché 0 0 0 109
文章 姚 鑫 · 十一月 16, 2021 阅读大约需 4 分钟 第七十八章 SQL命令 TUNE TABLE 第七十八章 SQL命令 TUNE TABLE 基于代表性数据调优表。 大纲 TUNE TABLE tablename [ tune_options ] 参数 tablename - 要调优的现有表的名称。 表名可以是限定的(schema.table),也可以是非限定的(table)。 非限定表名接受默认模式名。 tune_options - 可选—如果指定,一个或多个TUNE TABLE选项,以任意顺序指定,由空格分隔。 这些tune_options不区分大小写。 描述 TUNE TABLE命令根据表中当前的数据对现有表进行调优。 该数据应该代表表完全填充时所期望的数据。 #SQL #Caché 0 0 0 48
文章 姚 鑫 · 十一月 15, 2021 阅读大约需 6 分钟 第七十七章 SQL命令 TRUNCATE TABLE 第七十七章 SQL命令 TRUNCATE TABLE 从表中删除所有数据并重置计数器。 #SQL #Caché 0 0 0 40
文章 姚 鑫 · 十一月 14, 2021 阅读大约需 8 分钟 第七十六章 SQL命令 TOP 第七十六章 SQL命令 TOP 指定返回多少行的SELECT子句。 #SQL #Caché 0 0 0 117
文章 姚 鑫 · 十一月 13, 2021 阅读大约需 11 分钟 第七十五章 SQL命令 START TRANSACTION 第七十五章 SQL命令 START TRANSACTION 开始一个事务。 #SQL #Caché 0 0 0 71
文章 姚 鑫 · 十一月 12, 2021 阅读大约需 9 分钟 第七十四章 SQL命令 SET TRANSACTION 第七十四章 SQL命令 SET TRANSACTION 设置事务的参数。 #SQL #Caché 0 0 0 45
文章 姚 鑫 · 十一月 11, 2021 阅读大约需 8 分钟 第七十三章 SQL命令 SET OPTION 第七十三章 SQL命令 SET OPTION 设置执行选项。 大纲 SET OPTION option_keyword = value 描述 SET OPTION语句用于设置执行选项,如编译模式、SQL配置设置和控制日期、时间和数字约定的区域设置。 每个set option语句只能设置一个关键字选项。 SET OPTION支持以下选项: #SQL #Caché 0 0 0 66
文章 姚 鑫 · 十一月 10, 2021 阅读大约需 6 分钟 第七十二章 SQL命令 SELECT(四) 第七十二章 SQL命令 SELECT(四) WHERE子句 WHERE子句限定或取消查询选择中的特定行。 符合条件的行是那些条件表达式为真的行。 条件表达式是逻辑测试(谓词)的列表,可以通过AND和OR逻辑操作符链接这些测试(谓词)。 这些谓词可以使用NOT一元逻辑操作符进行反转。 SQL谓词可分为以下几类: - Comparison 谓词 - BETWEEN 谓词 - LIKE 谓词 - NULL 谓词 - IN and %INLIST 谓词 - EXISTS 谓词 - FOR SOME 谓词 - FOR SOME %ELEMENT 谓词 #SQL #Caché 0 0 0 50
文章 姚 鑫 · 十一月 9, 2021 阅读大约需 8 分钟 第七十一章 SQL命令 SELECT(三) 第七十一章 SQL命令 SELECT(三) 列别名 指定SELECT-ITEM时,可以使用AS关键字指定列名的别名: SELECT Name AS PersonName, DOB AS BirthDate, ... 列别名在结果集中显示为列标题。指定列别名是可选的;始终提供默认值。列别名以指定的字母大小写显示;但是,当在ORDER BY子句中引用时,它不区分大小写。C别名必须是有效的标识符。C别名可以是分隔的标识符。使用带分隔符的标识符允许列别名包含空格、其他标点符号或作为SQL保留名称。例如,SELECT Name AS "Customer Name" or SELECT Home_State AS "From"。 As关键字不是必需的,但使查询文本更易于阅读。因此,以下也是有效的语法: #SQL #Caché 0 0 0 103
文章 姚 鑫 · 十一月 8, 2021 阅读大约需 9 分钟 第七十章 SQL命令 SELECT(二) 第七十章 SQL命令 SELECT(二) select-item 这是所有SELECT语句的必选元素。 通常,选择项指的是FROM子句中指定的表中的一个字段。 选择项由下列一个或多个项组成,多个项之间用逗号分隔: 列名(字段名),带或不带表名别名: SELECT Name,Age FROM Sample.Person 字段名不区分大小写。 但是,结果集中与字段关联的标签使用表定义中指定的SqlFieldName的字母大小写,而不是选择项中指定的字母大小写。 #SQL #Caché 0 0 0 81
文章 姚 鑫 · 十一月 7, 2021 阅读大约需 10 分钟 第六十九章 SQL命令 SELECT(一) 第六十九章 SQL命令 SELECT(一) 从数据库中的一个或多个表中检索行。 #SQL #Caché 0 0 0 208
文章 姚 鑫 · 十一月 6, 2021 阅读大约需 4 分钟 第六十八章 SQL命令 SAVEPOINT 第六十八章 SQL命令 SAVEPOINT 在事务中标记一个点。 大纲 SAVEPOINT pointname 参数 pointname - 保存点的名称,指定为标识符。 描述 SAVEPOINT语句标记事务中的一个点。建立保存点使能够执行事务回滚到保存点,撤消在此期间完成的所有工作并释放在此期间获得的所有锁。在长期运行的事务或具有内部控制结构的事务中,通常希望能够回滚事务的一部分,而不撤消在事务期间提交的所有工作。 #SQL #Caché 0 0 0 52
文章 姚 鑫 · 十一月 5, 2021 阅读大约需 4 分钟 第六十七章 SQL命令 ROLLBACK 第六十七章 SQL命令 ROLLBACK 回滚事务。 大纲 ROLLBACK [WORK] ROLLBACK TO SAVEPOINT pointname 参数 pointname - 作为标识符指定的现有保存点的名称。 描述 ROLLBACK语句将回滚事务,撤消已执行但未提交的工作,减少$TLEVEL事务级别计数器,并释放锁。 ROLLBACK用于将数据库恢复到以前的一致状态。 #SQL #Caché 0 0 0 202
文章 姚 鑫 · 十一月 4, 2021 阅读大约需 9 分钟 第六十六章 SQL命令 REVOKE 第六十六章 SQL命令 REVOKE 从用户或角色中删除特权。 #SQL #Caché 0 0 0 44
文章 姚 鑫 · 十一月 3, 2021 阅读大约需 2 分钟 第六十五章 SQL命令 PURGE CACHED QUERIES 第六十五章 SQL命令 PURGE CACHED QUERIES 删除一个或多个缓存查询。 #SQL #Caché 0 0 0 103
文章 姚 鑫 · 十一月 2, 2021 阅读大约需 5 分钟 第六十四章 SQL命令 ORDER BY(二) 第六十四章 SQL命令 ORDER BY(二) 示例 下面的示例按照RowID的反向顺序对记录进行排序: SELECT %ID,Name FROM Sample.Person ORDER BY %ID DESC 下面两个示例展示了在ORDER BY子句中指定排序列的不同方法。 下面两个查询是等价的; 第一种方法使用列名作为排序项,第二种方法使用列号(选择项列表中项目的序号): #SQL #Caché 0 0 0 57
文章 姚 鑫 · 十一月 1, 2021 阅读大约需 8 分钟 第六十三章 SQL命令 ORDER BY(一) 第六十三章 SQL命令 ORDER BY(一) 指定结果集中行排序的SELECT子句。 #SQL #Caché 0 0 0 98
文章 姚 鑫 · 十月 31, 2021 阅读大约需 2 分钟 第六十二章 SQL命令 OPEN 第六十二章 SQL命令 OPEN 打开游标。 大纲 OPEN cursor-name 参数 cursor-name - 游标的名称,已经声明过了。 游标名称是在DECLARE语句中指定的。 游标名称区分大小写。 描述 OPEN语句根据游标的DECLARE语句中指定的参数打开游标。 一旦打开,就可以获取游标。 打开的游标必须关闭。 试图打开未声明的游标会出现SQLCODE -52错误。 试图打开已经打开的游标会导致SQLCODE -101错误。 试图获取或关闭未打开的游标将导致SQLCODE -102错误。 成功的OPEN设置SQLCODE = 0,即使结果集是空的。 #SQL #Caché 0 0 0 87
文章 姚 鑫 · 十月 29, 2021 阅读大约需 5 分钟 第六十章 SQL命令 JOIN(二) 第六十章 SQL命令 JOIN(二) 单向外部联接 IRIS支持单向外部联接:左外部联接和右外部联接。 使用标准的“inner”联接时,当一个表的行链接到第二个表的行时,第一个表中找不到第二个表中对应行的行将从输出表中排除。 使用单向外联接时,即使第二个表中没有匹配项,第一个表中的所有行也会包括在输出表中。使用单向外连接,第一个表会从第二个表中取出相关信息,但不会因为第二个表中缺少匹配项而牺牲自己的行。 例如,如果查询首先列出Table1并创建一个左外部联接,那么它应该能够看到Table1中的所有行,即使它们在Table2中没有对应的记录。 #SQL #Caché 0 0 0 41
文章 姚 鑫 · 十月 28, 2021 阅读大约需 7 分钟 第五十九章 SQL命令 JOIN(一) 第五十九章 SQL命令 JOIN(一) 基于两个表中的数据创建表的SELECT子句。 #SQL #Caché 0 0 0 48
文章 姚 鑫 · 十月 27, 2021 阅读大约需 2 分钟 第五十八章 SQL命令 %INTRANSACTION 第五十八章 SQL命令 %INTRANSACTION 显示事务状态。 大纲 %INTRANSACTION %INTRANS 参数 无 描述 %INTRANSACTION语句设置SQLCODE以指示事务状态: - 如果当前在事务中,则SQLCODE=0。 - 如果不在事务中,则SQLCODE=100。 事务正在进行时,%INTRANSACTION返回SQLCODE=0。此事务可以是由START TRANSACTION或SAVEPOINT发起的SQL事务。它也可以是由TSTART发起的ObjectScript事务。 #SQL #Caché 0 0 0 81
文章 姚 鑫 · 十月 26, 2021 阅读大约需 8 分钟 第五十七章 SQL命令 INTO 第五十七章 SQL命令 INTO 一个SELECT子句,指定在宿主变量中存储选定的值。 #SQL #Caché 0 0 0 63
文章 姚 鑫 · 十月 25, 2021 阅读大约需 7 分钟 第五十六章 SQL命令 INSERT OR UPDATE 第五十六章 SQL命令 INSERT OR UPDATE 在表中添加新行或更新表中的现有行。 #SQL #Caché 0 0 0 148