1
0
Fork 0
arangodb/Documentation/Books/AQL
Wilfried Goesgens 13ae255d5d backport documentation variable configurations (#3851)
* Correct custom search IDs, sitemap and edit URLs

* deploy versions through shell script from central places

* shellcheckify

* shellcheck, indent

* move all configs into one file

* add settings

* one more char that may occur in ids

* add per book version, its not yet the right ids.

* Update VERSIONS

Lower prio and keep 3.2 CSEs until 3.3 release (latest docs should have highest prio, followed by devel and the old docs, 3.1 and 3.0; 2.8 might be more important than 3.0 and 3.1, because some users may still use it in production and can't upgrade).
2017-12-06 10:46:54 +01:00
..
Advanced rename .mdpp files to .md so the handling is easier. 2017-05-04 12:04:24 +02:00
Examples fix some typos in code and docs (#3671) 2017-11-13 17:33:36 +01:00
ExecutionAndPerformance Feature/reduce extraction to projection (#2792) 2017-07-14 08:40:29 +02:00
Extending rename .mdpp files to .md so the handling is easier. 2017-05-04 12:04:24 +02:00
Functions Bug fix/fixes 0609 (#3227) 2017-09-13 16:28:21 +02:00
Fundamentals Fix endquote of example string literal. (#3747) 2017-11-21 13:53:12 +01:00
Graphs fixthedocs.arangodb.com 2017-11-15 12:34:03 +01:00
Invocation No access collections (#3088) 2017-08-25 13:59:03 +02:00
Operations added non-destructive DISTINCT (#3320) 2017-10-18 12:52:33 +02:00
styles backport documentation variable configurations (#3851) 2017-12-06 10:46:54 +01:00
CommonErrors.md rename .mdpp files to .md so the handling is easier. 2017-05-04 12:04:24 +02:00
DataQueries.md rename .mdpp files to .md so the handling is easier. 2017-05-04 12:04:24 +02:00
FOOTER.html Add footer to docs, unify slogan 2017-05-12 10:19:37 +02:00
HEADER.html
Operators.md clarify meaning of range operator (#3780) 2017-11-27 12:29:18 +01:00
README.md rename .mdpp files to .md so the handling is easier. 2017-05-04 12:04:24 +02:00
SUMMARY.md Own section for WITH statement, example traversal moved to own article (#3703) 2017-11-15 10:16:41 +01:00
book.json backport documentation variable configurations (#3851) 2017-12-06 10:46:54 +01:00

README.md

Introduction

The ArangoDB query language (AQL) can be used to retrieve and modify data that are stored in ArangoDB. The general workflow when executing a query is as follows:

  • A client application ships an AQL query to the ArangoDB server. The query text contains everything ArangoDB needs to compile the result set
  • ArangoDB will parse the query, execute it and compile the results. If the query is invalid or cannot be executed, the server will return an error that the client can process and react to. If the query can be executed successfully, the server will return the query results (if any) to the client

AQL is mainly a declarative language, meaning that a query expresses what result should be achieved but not how it should be achieved. AQL aims to be human-readable and therefore uses keywords from the English language. Another design goal of AQL was client independency, meaning that the language and syntax are the same for all clients, no matter what programming language the clients may use. Further design goals of AQL were the support of complex query patterns and the different data models ArangoDB offers.

In its purpose, AQL is similar to the Structured Query Language (SQL). AQL supports reading and modifying collection data, but it doesn't support data-definition operations such as creating and dropping databases, collections and indexes. It is a pure data manipulation language (DML), not a data definition language (DDL) or a data control language (DCL).

The syntax of AQL queries is different to SQL, even if some keywords overlap. Nevertheless, AQL should be easy to understand for anyone with an SQL background.

For some example queries, please refer to the pages Data Queries and Usual query patterns.