# Using Data Shaping Query Language

Data Shaping Query Language allows you to create queries to transform your data.

A query is a series of clauses that allow you to define the output data to return. It can contain a single block or multiple blocks separated by the UNION ALL keywords. These allow you to combine the results of several query blocks, with conditions if needed.

A query block can be a single SELECT clause or a combination of a SELECT clause and a FROM WHERE clause, which can contain UNNEST clauses, followed by a JOIN clause if needed.

The result of a query block can be:

* A single value.
* A record, or object, which contains a sequence of key-value pairs.
* An array, which can contains several values, records, or arrays.

When the result is an array, it can be modified by output modifiers such as the ORDER BY clause.

### In this section

* [Using the WITH clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-with-clause)
* [Using the FROM clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-from-clause)
* [Using the UNNEST clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-unnest-clause)
* [Using the JOIN clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-join-clause)
* [Using the LET clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-let-clause)
* [Using the SET clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-set-clause)
* [Using the WHERE clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-where-clause)
* [Using the SELECT clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-select-clause)
* [Using the GROUP BY clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-group-by-clause)
* [Using the GROUP AS clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-group-as-clause)
* [Using the HAVING clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-having-clause)
* [Using the UNION ALL clause](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-union-all-clause)
* [Using the map schema type](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/using-map-schema-type)
* [Output modifiers](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/output-modifiers)
* [Alternative data types](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/alternative-data-types)
* [Data Shaping Query Language expressions](https://help.qlik.com/talend/en-US/data-shaping-language-reference-guide/8.0/query-language-expressions)