脚本示例
正如 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.sqlarray
演示使用两种不同的方法将值插入数组字段(列):使用“{}”和“[]”语法。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f array.sqlas
演示使用 as 限定符将查询列的结果转换为指定类型。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f as.sqlasof_join
演示使用 asof 限定符执行具有指定条件的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f asof_join.sqlbetween
演示 BETWEEN 运算符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f between.sqlbulk
演示使用数组语法“[]”在单个插入操作中向标量字段(列)插入多个值。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f bulk.sqlcompound
演示复合索引的使用。还请注意使用别名 a1 和 a2 形成自连接以及使用 explain 操作符显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f compound.sqlcompound_nullable
演示复合索引和空值(可为空)字段(列)的使用。还请注意使用别名 a1 和 a2 形成自连接以及使用 explain 操作符显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f compound_nullable.sqlcreate_index
演示 CREATE INDEX 语句。请注意使用 trace 命令显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f create_index.sqldecimal
演示 decimal 字段(列)类型的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f decimal.sqldelete
演示 DELETE 语句的使用disgroup:演示了 distinct 限定符的使用。请注意,使用了 echo 命令来显示执行的每个 SQL 语句,并使用 explain 显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f delete.sqldisgroup
演示了在带有 order by 子句的情况下使用 distinct 限定符。请注意,使用了 echo 命令来显示执行的每个 SQL 语句,并使用 explain 来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f disgroup.sqldistinct
演示了 distinct 限定符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f distinct.sqldistinctsum
演示了 distinct 限定符与 sum() 函数的使用。请注意,使用了 explain 命令来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f distinctsum.sqldrop
演示了 drop index 语句的使用。请注意,使用了 explain 命令来显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f drop.sqlexists
演示了 exists 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f exists.sqlfull_join
演示了如何使用关键字 full outer join 来执行各种“全外连接”。
..\..\..\target\bin\xsql.exe -b -f full_join.sqlfulltext
演示了使用 contains 操作符执行文本搜索。请注意,使用了 trace 命令来显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f fulltext.sqlfunctions
演示了几个内置函数的使用,包括:sum()、substr()、length()、upper()、lower()、format() 和 count()。请注意,使用了 trace 命令来显示查询的性能统计信息。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f functions.sqlgroup_by
演示了 group by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by.sqlgroup_by_having
演示了 group by 操作符与 having 子句的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by_having.sqlgroup_by_substr
演示了 group by 操作符和 substr() 函数的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_by_substr.sqlgroup_order
演示了 group by 操作符和 order by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f group_order.sqlhashjoin
演示了如何执行哈希连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f hashjoin.sqlin
演示了 in 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f in.sqlindexjoin
演示了如何使用索引来优化查找操作。注意 explain 命令会根据 where 子句中连接项的顺序显示不同的执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f indexjoin.sqlinsert
演示了不同形式的插入操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f insert.sqljoin
演示了通过日期字段(列)值连接两个表的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f join.sqljoin_compound
演示了使用复合索引通过日期字段(列)值连接两个表的连接操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f join_compound.sqllike
演示了 like 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f like.sqlnullable
演示了使用 null 声明将字段(列)定义为可为空。注意使用 explain 显示执行计划。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f null.sqlnumeric
演示了 numeric 字段(列)类型的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f numeric.sqlorder_by
演示了 order by 操作符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f order_by.sqlround
演示了 round() 函数的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f round.sqls_p
演示了各种 union 和 join 操作的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f s_p.sqls_p_j_sp
展示在相对复杂的查询中使用各种 exists、any 和 in 操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f s_p_j_sp.sqlsearch
展示使用不同比较运算符顺序和 order by 子句的各种查找操作。注意 explain 命令显示的执行计划与使用 trace 命令显示的性能统计之间的差异。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f search.sqlselect_s
展示在表 S 上进行的各种复杂查询的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f select_s.sqlselect_sp
展示在表 SP 上使用“>= AND <”运算符的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f select_sp.sqlsp
展示在表 SP 上进行的各种复杂查询的查找操作。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f sp.sqlstringagg
展示 string_agg() 函数的使用。注意 explain 命令显示的执行计划之间的差异。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f stringagg.sqlsystem
展示系统表 Metatable 和 Statistic 的内容。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f system.sqltrigram
展示三元组索引的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f trigram.sqlunion
展示使用 union 运算符的一些查询。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f union.sqlunionall
展示 union all 运算符的使用。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f unionall.sqlupsert
展示使用 insert or update 操作将“水平”数据插入到存储“垂直”数据的序列数据类型中。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f upsert.sqlwith
演示了 with 操作符的用法。
..\..\..\target\bin\xsql.exe -b -c xsql.cfg -f with.sql