# DataQL and Dataway DataQL (Data Query Language) is a language for querying and transforming data. Variables, expressions and functions organize computation; objects, lists and transformation templates shape the output. The SQL executor queries databases, and built-in libraries provide importable data-processing functions. Applications can extend both modules. - [Your first script](https://www.dataql.net/en/docs/dataql/tutorial/first-query): return a value, calculate a result and transform a list. - [Language basics](https://www.dataql.net/en/docs/dataql/syntax/lexical): writing rules, types, variables and operators. - [Control flow and functions](https://www.dataql.net/en/docs/dataql/syntax/flow): branches, functions, imports and code fragments. - [Data access and transformation](https://www.dataql.net/en/docs/dataql/syntax/data): parameters, nested data and output structures. - [Execution options](https://www.dataql.net/en/docs/dataql/hints/hint_core): indexing and numeric precision hints. - [SQL executor](https://www.dataql.net/en/docs/dataql/sql/execute): queries, dynamic rules, pagination and transactions. - [Built-in libraries](https://www.dataql.net/en/docs/dataql/funx/string): string, collection, date and JSON functions. Run scripts in the [Dataway console](https://www.dataql.net/en/docs/dataway/intro/quickstart) or [embed the DataQL engine](https://www.dataql.net/en/docs/dataway/dataql-engine/execute) in an application. Guide version: 5.0.0. Match the project dependency version to the relevant guides and release notes. ## DataQL language - [7. Built-in libraries](https://www.dataql.net/en/docs/dataql/funx) - [7.7 Encoding and digest functions](https://www.dataql.net/en/docs/dataql/funx/codec) - [7.2 Collection functions](https://www.dataql.net/en/docs/dataql/funx/collect) - [7.6 Conversion functions](https://www.dataql.net/en/docs/dataql/funx/convert) - [7.4 Date and time functions](https://www.dataql.net/en/docs/dataql/funx/datetime) - [7.5 JSON functions](https://www.dataql.net/en/docs/dataql/funx/json) - [7.3 Number functions](https://www.dataql.net/en/docs/dataql/funx/number) - [7.8 State functions](https://www.dataql.net/en/docs/dataql/funx/state) - [7.1 String functions](https://www.dataql.net/en/docs/dataql/funx/string) - [7.10 Transaction functions](https://www.dataql.net/en/docs/dataql/funx/transactions) - [7.9 Web functions](https://www.dataql.net/en/docs/dataql/funx/web) - [5. Execution options](https://www.dataql.net/en/docs/dataql/hints) - [5.1 Engine hints](https://www.dataql.net/en/docs/dataql/hints/hint_core) - [6.10 SQL hints](https://www.dataql.net/en/docs/dataql/hints/hint_sql) - [1. Getting started](https://www.dataql.net/en/docs/dataql/overview) - [6. SQL executor](https://www.dataql.net/en/docs/dataql/sql) - [6.6 Pagination and Dialects](https://www.dataql.net/en/docs/dataql/sql/dialect) - [6.1 SQL execution](https://www.dataql.net/en/docs/dataql/sql/execute) - [6.4 XML Dynamic SQL](https://www.dataql.net/en/docs/dataql/sql/MyBatis) - [6.2.6 Parameter marker escaping](https://www.dataql.net/en/docs/dataql/sql/parameter-escape) - [6.2.5 Parameter options](https://www.dataql.net/en/docs/dataql/sql/parameter-options) - [6.2 Parameter binding](https://www.dataql.net/en/docs/dataql/sql/parameters) - [6.2.3 SQL text replacement](https://www.dataql.net/en/docs/dataql/sql/parameters/injection) - [6.2.2 Named parameters](https://www.dataql.net/en/docs/dataql/sql/parameters/named) - [6.2.1 Positional parameters](https://www.dataql.net/en/docs/dataql/sql/parameters/position) - [6.2.4 Rule parameters](https://www.dataql.net/en/docs/dataql/sql/parameters/rule-binding) - [6.9 Procedures and multiple results](https://www.dataql.net/en/docs/dataql/sql/procedures) - [6.5 Results and keys](https://www.dataql.net/en/docs/dataql/sql/results) - [6.3 Dynamic Rules](https://www.dataql.net/en/docs/dataql/sql/rules) - [6.3.2 Nested Rules](https://www.dataql.net/en/docs/dataql/sql/rules/nesting) - [6.3.1 Statement Generation Rules](https://www.dataql.net/en/docs/dataql/sql/rules/statements) - [6.8 Transactions](https://www.dataql.net/en/docs/dataql/sql/transactions) - [6.7 Type Handling](https://www.dataql.net/en/docs/dataql/sql/types) - [6.7.5 Array Handlers](https://www.dataql.net/en/docs/dataql/sql/types/arrays) - [6.7.2 Basic Type Handlers](https://www.dataql.net/en/docs/dataql/sql/types/basic) - [6.7.4 Streams and Binary Values](https://www.dataql.net/en/docs/dataql/sql/types/binary) - [6.7.3 JSON Serialization](https://www.dataql.net/en/docs/dataql/sql/types/json) - [6.7.1 Java/JDBC Mappings](https://www.dataql.net/en/docs/dataql/sql/types/mappings) - [6.7.6 Vector Handlers](https://www.dataql.net/en/docs/dataql/sql/types/vectors) - [2. Language basics](https://www.dataql.net/en/docs/dataql/syntax) - [4. Data access and transformation](https://www.dataql.net/en/docs/dataql/syntax/data) - [2.5 Expressions and operators](https://www.dataql.net/en/docs/dataql/syntax/expression) - [3. Control flow and functions](https://www.dataql.net/en/docs/dataql/syntax/flow) - [3.4 Code fragments](https://www.dataql.net/en/docs/dataql/syntax/fragment) - [3.2 Functions](https://www.dataql.net/en/docs/dataql/syntax/function) - [4.1 Fields and indexes](https://www.dataql.net/en/docs/dataql/syntax/getter) - [3.3 Imports and reuse](https://www.dataql.net/en/docs/dataql/syntax/imports) - [2.1 Lexical structure](https://www.dataql.net/en/docs/dataql/syntax/lexical) - [2.3 Numbers and precision](https://www.dataql.net/en/docs/dataql/syntax/numbers) - [2.4 Variables and assignment](https://www.dataql.net/en/docs/dataql/syntax/setter) - [3.1 Control flow](https://www.dataql.net/en/docs/dataql/syntax/statements) - [4.3 Result transformation](https://www.dataql.net/en/docs/dataql/syntax/transform) - [2.2 Types and literals](https://www.dataql.net/en/docs/dataql/syntax/types) - [4.2 Parameters and context](https://www.dataql.net/en/docs/dataql/syntax/valuescope) - [1.1 Your first script](https://www.dataql.net/en/docs/dataql/tutorial/first-query) - [1.2 Script structure](https://www.dataql.net/en/docs/dataql/tutorial/structure) ## Dataway framework - [7. Authentication and authorization](https://www.dataql.net/en/docs/dataway/authorization) - [7.1 Identity integration](https://www.dataql.net/en/docs/dataway/authorization/identity) - [7.2 Authorization](https://www.dataql.net/en/docs/dataway/authorization/permissions) - [5. Core capabilities](https://www.dataql.net/en/docs/dataway/capabilities) - [5.1 API management](https://www.dataql.net/en/docs/dataway/capabilities/api-management) - [5.5 Data source integration](https://www.dataql.net/en/docs/dataway/capabilities/datasources) - [5.2 API publication](https://www.dataql.net/en/docs/dataway/capabilities/development) - [5.2.5 Java invocation](https://www.dataql.net/en/docs/dataway/capabilities/development/java) - [5.2.4 API options](https://www.dataql.net/en/docs/dataway/capabilities/development/options) - [5.2.2 Request parameters](https://www.dataql.net/en/docs/dataway/capabilities/development/request) - [5.2.3 API responses](https://www.dataql.net/en/docs/dataway/capabilities/development/response) - [5.2.1 Script support](https://www.dataql.net/en/docs/dataway/capabilities/development/script) - [5.4 API documents](https://www.dataql.net/en/docs/dataway/capabilities/document) - [5.1.1 Visual operations](https://www.dataql.net/en/docs/dataway/capabilities/management) - [5.1.2 Programmatic management](https://www.dataql.net/en/docs/dataway/capabilities/programmatic) - [5.3 Result handlers](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers) - [5.3.3 CSV](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/csv) - [5.3.6 Custom result handlers](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/custom) - [5.3.2 Raw Value](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/raw) - [5.3.1 Structure](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/structure) - [5.3.4 Text](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/text) - [5.3.5 VerifyCode](https://www.dataql.net/en/docs/dataway/capabilities/result-handlers/verify-code) - [10. Configuration](https://www.dataql.net/en/docs/dataway/configuration) - [10.2 Management interceptors](https://www.dataql.net/en/docs/dataway/configuration/admin-interceptors) - [10.3 API interceptors](https://www.dataql.net/en/docs/dataway/configuration/api-interceptors) - [10.4 Console deployment](https://www.dataql.net/en/docs/dataway/configuration/console) - [10.1 DatawayConfig](https://www.dataql.net/en/docs/dataway/configuration/core) - [8. DataQL engine](https://www.dataql.net/en/docs/dataway/dataql-engine) - [8.3 Core APIs](https://www.dataql.net/en/docs/dataway/dataql-engine/core) - [8.1 Standalone usage](https://www.dataql.net/en/docs/dataway/dataql-engine/execute) - [8.6 QIL instruction reference](https://www.dataql.net/en/docs/dataway/dataql-engine/instruction) - [8.5 JSR-223](https://www.dataql.net/en/docs/dataway/dataql-engine/jsr223) - [8.2 Data models](https://www.dataql.net/en/docs/dataway/dataql-engine/model) - [8.4 SQL Executor](https://www.dataql.net/en/docs/dataway/dataql-engine/sql) - [9. Engine extensions](https://www.dataql.net/en/docs/dataway/engine) - [9.7 Engine and query configuration](https://www.dataql.net/en/docs/dataway/engine/customizers) - [9.5 Finder](https://www.dataql.net/en/docs/dataway/engine/finder) - [9.4 Fragment processors](https://www.dataql.net/en/docs/dataway/engine/fragments) - [9.1 Custom functions](https://www.dataql.net/en/docs/dataway/engine/functions) - [9.3 Application imports](https://www.dataql.net/en/docs/dataway/engine/imports) - [9.2 Function libraries](https://www.dataql.net/en/docs/dataway/engine/libraries) - [9.6 Custom scopes](https://www.dataql.net/en/docs/dataway/engine/scope) - [9.12 SQL Dialects](https://www.dataql.net/en/docs/dataway/engine/sql-dialects) - [9.8 SQL Interceptors](https://www.dataql.net/en/docs/dataway/engine/sql-interceptors) - [9.9 SQL Fragments](https://www.dataql.net/en/docs/dataway/engine/sql-macros) - [9.10 SQL Rules](https://www.dataql.net/en/docs/dataway/engine/sql-rules) - [9.11 SQL Type Handlers](https://www.dataql.net/en/docs/dataway/engine/sql-types) - [3. Framework integration](https://www.dataql.net/en/docs/dataway/integration) - [3.3 Hasor integration](https://www.dataql.net/en/docs/dataway/integration/hasor) - [3.2 Solon integration](https://www.dataql.net/en/docs/dataway/integration/solon) - [3.1 Spring integration](https://www.dataql.net/en/docs/dataway/integration/spring) - [1. Introduction](https://www.dataql.net/en/docs/dataway/intro/overview) - [2. Quick start](https://www.dataql.net/en/docs/dataway/intro/quickstart) - [6. Metadata storage](https://www.dataql.net/en/docs/dataway/metadata) - [6.1 Table and field mappings](https://www.dataql.net/en/docs/dataway/metadata/mapping) - [6.3 Providers](https://www.dataql.net/en/docs/dataway/metadata/providers) - [6.3.3 Custom providers](https://www.dataql.net/en/docs/dataway/metadata/providers/custom) - [6.3.1 Database provider](https://www.dataql.net/en/docs/dataway/metadata/providers/jdbc) - [6.3.2 Nacos provider](https://www.dataql.net/en/docs/dataway/metadata/providers/nacos) - [6.2 Transaction integration](https://www.dataql.net/en/docs/dataway/metadata/transactions) - [4. How it works](https://www.dataql.net/en/docs/dataway/principles) ## Optional ### Release notes - [v3.2.0 (2017-10-15)](https://www.dataql.net/en/docs/releases/3.2.x/v3.2.0) - [v3.2.1 (2017-10-17)](https://www.dataql.net/en/docs/releases/3.2.x/v3.2.1) - [v3.2.2 (2018-01-02)](https://www.dataql.net/en/docs/releases/3.2.x/v3.2.2) - [v4.1.0 (2020-02-03)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.0) - [v4.1.1 (2020-02-22)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.1) - [v4.1.10 (2020-07-06)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.10) - [v4.1.11 (2020-07-07)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.11) - [v4.1.12 (2020-07-22)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.12) - [v4.1.13 (2020-07-23)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.13) - [v4.1.2 (2020-03-04)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.2) - [v4.1.3 (2020-04-13)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.3) - [v4.1.4 (2020-04-30)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.4) - [v4.1.5 (2020-05-09)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.5) - [v4.1.6 (2020-05-10)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.6) - [v4.1.7 (2020-05-18)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.7) - [v4.1.8 (2020-05-28)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.8) - [v4.1.9 (2020-06-29)](https://www.dataql.net/en/docs/releases/4.1.x/v4.1.9) - [v4.2.0 (2020-09-22)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.0) - [v4.2.1 (2020-10-16)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.1) - [v4.2.2 (2021-01-20)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.2) - [v4.2.3 (2021-02-26)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.3) - [v4.2.4 (2021-03-17)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.4) - [v4.2.5 (2021-03-31)](https://www.dataql.net/en/docs/releases/4.2.x/v4.2.5) - [v5.0.0 (Upcoming)](https://www.dataql.net/en/docs/releases/5.0.x/v5.0.0) - [v5.0.1 (In development)](https://www.dataql.net/en/docs/releases/5.0.x/v5.0.1) - [Release notes](https://www.dataql.net/en/docs/releases/latest) ### Articles - [把父子关系表转换为树形数据](https://www.dataql.net/en/blog/dataql-build-tree) - [用 DataQL 为数据集排序并生成名次](https://www.dataql.net/en/blog/dataql-dataset-ranking) - [递归展开多层数值数组](https://www.dataql.net/en/blog/dataql-dim-reduction) - [按公共字段把列表分成多个集合](https://www.dataql.net/en/blog/dataql-group-by) - [关联两个数据集并计算同比增长](https://www.dataql.net/en/blog/dataql-left-join) - [用递归遍历列表并追加序号](https://www.dataql.net/en/blog/dataql-like-for) - [按指定字段完成数据集行列转换](https://www.dataql.net/en/blog/dataql-row-to-col) - [用 DataQL 转换树节点,保留层级关系](https://www.dataql.net/en/blog/dataql-tree-to-tree) - [Dataway header 传参](https://www.dataql.net/en/blog/dataway-headers) - [新版 Dataway:架构、接口与数据迁移指南](https://www.dataql.net/en/blog/dataway-migration) - [通过 Dataway 配置一个带有分页查询的接口](https://www.dataql.net/en/blog/dataway-pagination) - [Dataway 配置数据接口时和前端进行参数对接](https://www.dataql.net/en/blog/dataway-parameters) - [完美兼容老项目!Dataway 返回结构的全面控制](https://www.dataql.net/en/blog/dataway-response-format) - [Dataway 整合 Swagger2,让 API 管理更顺畅](https://www.dataql.net/en/blog/dataway-swagger2) - [让 Spring Boot 不再需要 Controller、Service、DAO、Mapper](https://www.dataql.net/en/blog/whydataway)