Query Language
How 14 popular databases let you ask questions of your data, from SQL dialects to APIs and DSLs.
PostgreSQL
Uses standard SQL extended with rich features like window functions, common table expressions, JSON operators, and the procedural PL/pgSQL language for stored functions and triggers.
MySQL
Speaks a SQL dialect that mostly follows ANSI SQL with some notable deviations, and supports stored procedures, views, and triggers for encapsulating logic server-side.
SQLite
Implements a substantial subset of SQL-92, with a few quirks such as dynamic type affinity that make its type handling more permissive than most other SQL databases.
MongoDB
Exposes a JSON-like query API where filters are expressed as documents
(find({...})), complemented by an aggregation pipeline for multi-stage
transformations, grouping, and joins across collections.
Redis
Has no query language at all; interaction happens through discrete commands
per data structure (GET, HSET, ZADD, and so on), with Lua scripting
available for atomic, multi-step server-side logic.
Cassandra
Uses CQL (Cassandra Query Language), which looks SQL-like on the surface but intentionally omits joins and unrestricted filtering to keep queries aligned with the partition-based storage model.
DynamoDB
Primarily accessed through API operations like GetItem, Query, and Scan using key-condition and filter expressions rather than a general query language, though PartiQL offers an optional SQL-compatible syntax.
CockroachDB
Implements PostgreSQL-compatible SQL, deliberately matching Postgres syntax and wire protocol closely enough that many Postgres drivers and tools work without modification.
MariaDB
Uses a SQL dialect compatible with MySQL’s, with some additional syntax of its own, such as dynamic columns and sequences, layered on top.
Oracle Database
Combines standard SQL with PL/SQL, a full procedural extension for stored procedures, packages, and triggers, plus an extensive library of analytic SQL functions.
SQL Server
Uses T-SQL (Transact-SQL), a SQL dialect with procedural extensions, strong windowing/analytic function support, and integration with the CLR for custom logic.
Elasticsearch
Primarily queried through a JSON-based Query DSL tailored for full-text search and filtering, with newer piped query languages (ES|QL) and a SQL-like interface available for more analytical use cases.
Neo4j
Uses Cypher, a declarative query language that expresses graph patterns visually, using ASCII-art-like syntax to describe nodes and the relationships connecting them.
Firestore
Has no standalone query language; queries are built by chaining methods
(where, orderBy, limit) on client SDK objects, which the SDK compiles
into underlying RPC calls.