脚本示例
正如 samples/xsql/scripts/README.txt 文件中所解释的那样,此目录中的 SQL 示例文件 *.sql 旨在展示 SmartESQL 引擎的功能。可以通过从 SmartEDB/samples/xsql/scripts 目录中使用以下命令启动 xSQL 来运行它们:
..\..\..\target\bin\xsql -i
或者,为了便于运行示例脚本,提供了命令文件 sqltest.bat。例如,在 Windows 控制台窗口中,从目录 SmartEDB/samples/xsql/scripts 使用此命令文件,以下是最小的命令,用于将 xSQL 作为服务器运行并执行脚本 array.sql:
xsqltest array
(请注意,SmartEDB for HPC 软件包提供了一个额外的子目录 financial,其中包含命令文件 xsql.bat,该文件更适合用于启动演示分析功能的示例。)
示例
以下列出了目录 SmartEDB/samples/xsql/scripts 中可用的示例脚本。示例可以从 samples\xsql\scripts
目录通过相应命令运行。
alter
演示 ALTER TABLE 语句。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f alter.sql
array
演示使用两种不同的方法将值插入数组字段(列):使用“{}”和“[]”语法。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f array.sql
as
演示使用 as 限定符将查询列的结果转换为指定类型。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f as.sql
asof_join
演示使用 asof 限定符执行具有指定条件的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f asof_join.sql
between
演示 BETWEEN 运算符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f between.sql
bulk
演示使用数组语法“[]”在单个插入操作中向标量字段(列)插入多个值。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f bulk.sql
compound
演示复合索引的使用。还请注意使用别名 a1 和 a2 形成自连接以及使用 explain 操作符显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f compound.sql
compound_nullable
演示复合索引和空值(可为空)字段(列)的使用。还请注意使用别名 a1 和 a2 形成自连接以及使用 explain 操作符显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f compound_nullable.sql
create_index
演示 CREATE INDEX 语句。请注意使用 trace 命令显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f create_index.sql
decimal
演示 decimal 字段(列)类型的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f decimal.sql
delete
演示 DELETE 语句的使用disgroup:演示了 distinct 限定符的使用。请注意,使用了 echo 命令来显示执行的每个 SQL 语句,并使用 explain 显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f delete.sql
disgroup
演示了在带有 order by 子句的情况下使用 distinct 限定符。请注意,使用了 echo 命令来显示执行的每个 SQL 语句,并使用 explain 来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f disgroup.sql
distinct
演示了 distinct 限定符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f distinct.sql
distinctsum
演示了 distinct 限定符与 sum() 函数的使用。请注意,使用了 explain 命令来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f distinctsum.sql
drop
演示了 drop index 语句的使用。请注意,使用了 explain 命令来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f drop.sql
exists
演示了 exists 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f exists.sql
full_join
演示了如何使用关键字 full outer join 来执行各种“全外连接”。
..\..\..\target\bin\xsql.exe -b -f full_join.sql
fulltext
演示了使用 contains 操作符执行文本搜索。请注意,使用了 trace 命令来显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f fulltext.sql
functions
演示了几个内置函数的使用,包括:sum()、substr()、length()、upper()、lower()、format() 和 count()。请注意,使用了 trace 命令来显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f functions.sql
group_by
演示了 group by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by.sql
group_by_having
演示了 group by 操作符与 having 子句的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by_having.sql
group_by_substr
演示了 group by 操作符和 substr() 函数的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by_substr.sql
group_order
演示了 group by 操作符和 order by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_order.sql
hashjoin
演示了如何执行哈希连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f hashjoin.sql
in
演示了 in 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f in.sql
indexjoin
演示了如何使用索引来优化查找操作。注意 explain 命令会根据 where 子句中连接项的顺序显示不同的执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f indexjoin.sql
insert
演示了不同形式的插入操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f insert.sql
join
演示了通过日期字段(列)值连接两个表的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f join.sql
join_compound
演示了使用复合索引通过日期字段(列)值连接两个表的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f join_compound.sql
like
演示了 like 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f like.sql
nullable
演示了使用 null 声明将字段(列)定义为可为空。注意使用 explain 显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f null.sql
numeric
演示了 numeric 字段(列)类型的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f numeric.sql
order_by
演示了 order by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f order_by.sql
round
演示了 round() 函数的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f round.sql
s_p
演示了各种 union 和 join 操作的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f s_p.sql
s_p_j_sp
展示在相对复杂的查询中使用各种 exists、any 和 in 操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f s_p_j_sp.sql
search
展示使用不同比较运算符顺序和 order by 子句的各种查找操作。注意 explain 命令显示的执行计划与使用 trace 命令显示的性能统计之间的差异。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f search.sql
select_s
展示在表 S 上进行的各种复杂查询的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f select_s.sql
select_sp
展示在表 SP 上使用“>= AND <”运算符的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f select_sp.sql
sp
展示在表 SP 上进行的各种复杂查询的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f sp.sql
stringagg
展示 string_agg() 函数的使用。注意 explain 命令显示的执行计划之间的差异。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f stringagg.sql
system
展示系统表 Metatable 和 Statistic 的内容。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f system.sql
trigram
展示三元组索引的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f trigram.sql
union
展示使用 union 运算符的一些查询。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f union.sql
unionall
展示 union all 运算符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f unionall.sql
upsert
展示使用 insert or update 操作将“水平”数据插入到存储“垂直”数据的序列数据类型中。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f upsert.sql
with
演示了 with 操作符的用法。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f with.sql