In den vorangegangenen Ausführungen wurde immer wieder auf eine gemeinsame Sprache zwischen Client und Server hingewiesen, ohne daß sie bisher beim Namen genannt wurde. Die etablierte Sprache für diesen Verwendungszweck heißt SQL, Structured Query Language, deutsch ,,Strukturierte Abfragesprache''; sie entstand in den 1970er Jahren bei IBM und wurde seither mehrfach erweitert und (erst 1989) standardisiert. Der momentan gültige Standard stammt aus dem Jahr 1992 und wird als SQL02 oder SQL2 bezeichnet.
Bedauerlicherweise erweitern viele Hersteller von SQL-konformen Datenbanksystemen (RDBMS: Relationales Datenbankmanagementsystem) den SQL-Sprachstandard mit proprietären Erweiterungen, die nur teilweise ihren Weg in die Folgeausgabe des Standards finden. Der Programmierer von SQL-Systemen muß daher entscheiden, ob er ein portables System auf ANSI-SQL-Basis erstellt oder aber Sonderbefehle einzelner Hersteller benutzt, um bestimmte Effekte zu erreichen.
SQL ist eine an den Imperativformen des Englischen orientierte
Sprache, die für Menschen und Maschinen gleichermaßen verständlich
ist. Alle SQL-Anweisungen folgen dem einfachen Schema Verb
Objekt 1 [Objekt 2] [Ergänzungen]. Um beispielsweise eine Datenbank
zu erstellen, gibt man das Kommando CREATE DATABASE Tatort
.
Innerhalb von SQL unterscheidet man zwischen Kommandos, die für die Verwaltung der Datenbanken benötigt werden und daher nicht jedem Benutzer der Datenbank, sondern nur dem Datenbankverwalter zugänglich sind, Kommandos, die für die Abfrage der Datenbestände benötigt werden, sowie Funktionen und den zulässigen Datentypen, mit denen das Datenbanksystem umgehen kann.
Die wichtigsten Kommandos betreffen selbstverständlich das
Einrichten und Löschen ganzer Datenbanken sowie der in ihnen
enthaltenen Tabellen. Die entsprechenden Schlüsselwörter heißen
CREATE
und DROP
. Manche Hilfsprogramme (z.B. das
Verwaltungsprogramm mysqladmin
von MySQL) verstehen
vereinfachte Versionen dieser Kommandos, so daß spezifische, laut
ANSI SQL-92 vorgeschriebene Hilfswörter in diesen Dienstprogrammen
nicht benutzt werden müssen.
CREATE DATABASE
databaseErzeugt eine neue, leere Datenbank. Es werden noch keine einzelnen Tabellen angelegt.
DROP DATABASE
databaseLöscht eine bestehende Datenbank endgültig.
CREATE TABLE
tableMit diesem Befehl wird eine Tabelle eingerichtet. Es
müssen unbedingt die Felder der Tabelle in der Form
Feldbezeichner DATENTYP
angegeben werden.
DROP TABLE
tableEntfernt eine Tabelle aus einer bestehenden Datenbank.
Gängige Datentypen für Felder einzelner Tabellen sind:
BLOB
Binary Large Object -- also Bilder, Klangdateien, etc. Maximale Länge bei MySQL: 1048543 Bytes (Wird nicht von mSQL unterstützt).
CHAR, CHARACTER
Je nach Datenbankmodell zwischen 255 und 32767 Zeichen lang.
DATE
Datumsvariable
FLOAT
Fließkommazahl
INT, INTEGER, SMALLINT
Ganzzahlen verschiedener Größe
REAL
Bruchzahlen
TIME
Zeiteinheit; unterstützt auch meistens das direkte Rechnen mit Zeitgrößen
Nicht alle Datenbankanbieter unterstützen den vollständigen Umfang aller in ANSI SQL-92 beschriebenen Funktionen. Mathematische und trigonometrische Funktionen, ebenso wie Zeit- und Datumsberechnungsfunktionen, sind in MySQL umfassend integriert, während sie in mSQL nahezu vollständig fehlen. Hier ist der Client-Programmierer gezwungen, die Funktionen in einer anderen Programmiersprache zu nachzubilden (oder deren Bibliotheken zu benutzen) und diese in geeigneter Weise mit SQL-Statements zu verknüpfen.