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.