# Query language

A query language, also known as data query language or database query language (DQL), is a computer language used to make queries in databases and information systems. In database systems, query languages rely on strict theory to retrieve information. A well known example is the Structured Query Language (SQL).

## Types

Broadly, query languages can be classified according to whether they are database query languages or information retrieval query languages. The difference is that a database query language attempts to give factual answers to factual questions, while an information retrieval query language attempts to find documents containing information that is relevant to an area of inquiry. Other types of query languages include:
* Full-text. The simplest query language is treating all terms as bag of words that are to be matched with the postings in the inverted index and where subsequently ranking models are applied to retrieve the most relevant documents. Only tokens are defined in the CFG. Web search engines often use this approach.
* Boolean. A query language that also supports the use of the Boolean operators AND, OR, NOT.
* Structured. A language that supports searching within (a combination of) fields when a document is structured and has been indexed using its document structure.
* Natural language. A query language that supports natural language by parsing the natural language query to a form that can be best used to retrieve relevant documents, for example with Question answering systems or conversational search.

## Examples

* Attempto Controlled English is a query language that is also a controlled natural language.
* AQL is a query language for the ArangoDB native multi-model database system.
* .QL is a proprietary object-oriented query language for querying relational databases; successor of Datalog;
* CodeQL is the analysis engine used by developers to automate security checks, and by security researchers to perform variant analysis on GitHub.
* Contextual Query Language (CQL) a formal language for representing queries to information retrieval systems such as web indexes or bibliographic catalogues.
* Cypher is a query language for the Neo4j graph database;
* DMX is a query language for data mining models;
* Datalog is a query language for deductive databases;
* F-logic is a declarative object-oriented language for deductive databases and knowledge representation.
* FQL enables you to use a SQL-style interface to query the data exposed by the Graph API. It provides advanced features not available in the Graph API.
* Gellish English is a language that can be used for queries in Gellish English Databases, for dialogues (requests and responses) as well as for information modeling and knowledge modeling;
* Gremlin is an Apache Software Foundation graph traversal language for OLTP and OLAP graph systems.
* GraphQL is a data query language developed by Facebook as an alternate to REST and ad-hoc webservice architectures.
* HTSQL is a query language that translates HTTP queries to SQL;
* ISBL is a query language for PRTV, one of the earliest relational database management systems;
* Jaql is a functional data processing and query language most commonly used for JSON query processing;
* jq is a functional programming language often used for processing queries against one or more JSON documents, including very large ones;
* JSONiq is a declarative query language designed for collections of JSON documents;
* LDAP is an application protocol for querying and modifying directory services running over TCP/IP;
* LogiQL is a variant of Datalog and is the query language for the LogicBlox system.
* M Formula language, a mashup query language used in Microsoft's Power Query
* MQL is a cheminformatics query language for a substructure search allowing beside nominal properties also numerical properties;
* MDX is a query language for OLAP databases;
* N1QL is a Couchbase's query language finding data in Couchbase Servers;
* Object Query Language
* OCL (Object Constraint Language). Despite its name, OCL is also an object query language and an OMG standard;
* OPath, intended for use in querying WinFS Stores;
* Poliqarp Query Language is a special query language designed to analyze annotated text. Used in the Poliqarp search engine;
* PQL is a special-purpose programming language for managing process models based on information about scenarios that these models describe;
* PRQL PRQL (Pipelined Relational Query Language) is a modern language for transforming data. Consists of a curated set of orthogonal transformations, which are combined together to form a pipeline.
* PTQL based on relational queries over program traces, allowing programmers to write expressive, declarative queries about program behavior.
* QUEL is a relational database access language, similar in most ways to SQL;
* RDQL is a RDF query language;
* SMARTS is the cheminformatics standard for a substructure search;
* SPARQL is a query language for RDF graphs;
* SQL is a well known query language and data manipulation language for relational databases;
* XQuery is a query language for XML data sources;
* XPath is a declarative language for navigating XML documents;
* YQL is an SQL-like query language created by Yahoo!
* Search engine query languages, e.g., as used by Google or Bing