1
0
Fork 0
arangodb/Documentation/Books/Users/Aql
Jan Steemann dc1910e331 added AQL optimizer rule `patch-update-statements` 2015-08-13 13:02:47 +02:00
..
Advanced.mdpp the great rename: array => object, list => array 2014-12-18 22:33:23 +01:00
ArrayFunctions.mdpp the great rename: array => object, list => array 2014-12-18 22:33:23 +01:00
Basics.mdpp added DISTINCT 2015-07-24 13:19:55 +02:00
DataModification.mdpp Changed README.html to index.html in the documentation 2015-06-09 09:40:12 +02:00
DateFunctions.mdpp Add example howto select ranges of dates. 2015-08-10 10:51:50 +02:00
DocumentFunctions.mdpp Changed README.html to index.html in the documentation 2015-06-09 09:40:12 +02:00
FulltextFunctions.mdpp Changed README.html to index.html in the documentation 2015-06-09 09:40:12 +02:00
Functions.mdpp Merge branch 'devel' of github.com:triAGENS/ArangoDB into devel 2014-10-22 10:42:38 +02:00
GeoFunctions.mdpp Changed README.html to index.html in the documentation 2015-06-09 09:40:12 +02:00
GraphFunctions.mdpp Clarified graph function documentation for new return formats 2015-06-08 15:21:32 +02:00
GraphOperations.mdpp Added cookbook folder for recipes 2014-09-09 12:52:00 +02:00
Invoke.mdpp Implement dynamic examples for invoking AQL tutorial 2015-08-06 17:52:57 +02:00
MiscellaneousFunctions.mdpp removed deprecated AQL function `SKIPLIST` 2015-06-17 20:44:44 +02:00
NumericFunctions.mdpp Split the aql functions chapter into various subchapters for better overview 2014-10-21 16:40:19 +02:00
Operations.mdpp documentation for `RETURN DISTINCT` 2015-07-27 11:27:59 +02:00
Operators.mdpp the great rename: array => object, list => array 2014-12-18 22:33:23 +01:00
Optimizer.mdpp added AQL optimizer rule `patch-update-statements` 2015-08-13 13:02:47 +02:00
QueryCache.mdpp updated documentation 2015-07-13 10:55:57 +02:00
QueryResults.mdpp the great rename: array => object, list => array 2014-12-18 22:33:23 +01:00
README.mdpp Fixed some further language bugs in the doc. 2014-08-05 09:21:19 +02:00
StringFunctions.mdpp added AQL functions MD5, SHA1, and RANDOM_TOKEN 2015-01-17 22:40:47 +01:00
TypeCastFunctions.mdpp updated documentation 2014-12-21 19:15:53 +01:00

README.mdpp

!CHAPTER 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.

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 page [AQL Examples](../AqlExamples/README.md).