SchemaSQL ist eine Anfragesprache, die SQL dahingehend erweitert, dass Anfragen nicht nur über Daten, sondern auch über mehrere (relationale) Datenbanken und deren Struktur in Form von Tabellen und Feldnamen gestellt werden können.
Während in SQL Variablen nur als Platzhalter für Tupel (Datensätze) und Werte verwendet werden können, lassen sich in SchemaSQL auch die Namen von Datenbanken, Relationen und Attributen als Variablen benutzen. Damit sind gemeinsame Anfragen über mehrere Datenbanken mit verschiedenen Strukturen möglich. Die Definition einer Variable erfolgt in der Form Bereich Variable wobei folgende Bereiche möglich sind:
-> für die Menge aller Namen aller verfügbaren Datenbanken db-> für die Menge aller Namen von Relationen (Tabellen) in Datenbank db db::rel für die Menge aller Tupel von rel in db db::rel-> für die Menge aller Attributnamen von rel in db db::rel.attr für die Menge der Werte in der oder den Spalten attr von rel in dbErweiterungen/Vorteile von SchemaSQL:
Eine verwandte Datenbanksprache ist die Multidatabase query language (MDBQL).