SQL (strukturierte Abfragesprache) wird als nicht procedurale Sprache angesehen, da es sich auf * welche * Daten konzentriert, nicht abgerufen werden soll, nicht wie *, wie es abgerufen werden soll. Im Gegensatz dazu geben prozedurale Sprachen die genauen Schritte an, die der Computer ausführen muss, um ein Ergebnis zu erzielen.
Folgendes macht SQL nicht procedural:
* deklarative Natur: Sie beschreiben das gewünschte Ergebnis (z. B. "Wählen Sie alle Kunden aus der Tabelle" Kunden "aus, in der das Land" USA "ist"). Die SQL -Engine bestimmt die effizienteste Möglichkeit, die Abfrage auszuführen. Sie diktieren nicht die spezifischen Algorithmen oder Schritte.
* Optimierung durch das Datenbanksystem: Das Datenbankverwaltungssystem (DBMS) ist für die Erstellung eines Ausführungsplans - eine Abfolge von Operationen - verantwortlich, um das gewünschte Ergebnis zu erzielen. Dieser Plan könnte die Indexierung, Anschlüsse, Sortierungen und andere Techniken beinhalten, die für den Benutzer transparent sind. Der Benutzer gibt nicht an, wie diese Vorgänge ausgeführt werden.
* SET-orientierte Operationen: SQL arbeitet eher an Datensätzen (Tabellen) als an einzelnen Datensätzen. Eine einzelne SQL -Aussage kann Tausende oder Millionen von Zeilen gleichzeitig manipulieren. Dies steht im Gegensatz zu prozeduralen Sprachen, die die Daten in der Regel jeweils einen Datensatz verarbeiten.
Im Gegensatz dazu würde eine prozedurale Sprache (wie C oder Python) Sie erfordern, Code zu schreiben, die explizit:
1. Öffnet die Datenbankverbindung.
2. Iteriert jeden Datensatz in der Tabelle "Kunden".
3. Überprüft das Land jedes Protokolls.
4. Wenn das Land "USA" ist, fügt der Datensatz einem Ergebnissatz hinzu.
5. Schließt die Datenbankverbindung.
SQL fasst all diese Schritte ab und macht es für Datenmanipulationsaufgaben viel einfacher und effizienter, insbesondere wenn es sich um große Datensätze handelt. Das "Wie" bleibt dem Optimierer des Datenbanksystems überlassen.