Groupings of queries
One variant is to group the query language depending on the database categories.
- relational (Microsoft SQL Server, Oracle, MySQL, MariaDB)
- object-relational (PostgreSQL)
- NoSQL
- Key-value (Riak, Redis, Couchbase Server, MemcacheDB)
- Columnar (HBase)
- Document (MongoDV, CouchDB)
- Graph (Neo4j)
So far, so good, but in reality the border line between the categories become thinner and thinner.
For example, we have graph support in Microsoft SQL Server and T-SQL we have syntax like the following:
-- Find Restaurants that John's friends like
SELECT Restaurant.name
FROM Person person1, Person person2, likes, friendOf, Restaurant
WHERE MATCH(person1-(friendOf)->person2-(likes)->Restaurant)
AND person1.name='John';
In MongoDB, we have graph,too using graph lookup:
{
$graphLookup: {
from: <collection>,
startWith: <expression>,
connectFromField: <string>,
connectToField: <string>,
as: <string>,
maxDepth: <number>,
depthField: <string>,
restrictSearchWithMatch: <document>
}
}
So, maybe the the highest-level grouping is just a group of database management system following the American National Standards Institute (ANSI) standards (relational and object-relational) and the others.