SQL (Structured Query Language) ist auf die Vorläufersprache SEQUEL zurückzuführen (in den 70er Jahren in den IBM-Laboratorien entwickelt) und hat sich als Standardabfragesprache für relationale Datenbanken durchge­setzt. SQL ist zwar standardisiert, doch weichen die Implementierungen in kommerziell verfügbaren Datenbanksystemen sowohl nach "oben" als auch nach "unten" von den Standards ab.

SQL ist eine Programmiersprache der 4. Generation. In einer Sprache der 3. Generation (höhere Programmiersprache, z.B. C#) muss zum Auffinden von Daten genau beschrieben werden, wie die gewünschten Daten aus einem Datenbestand herauszufinden sind. In SQL dagegen werden die gesuchten Daten nur über die Beschreibung ihrer Attributwerte aufgefunden - d. h. man beschreibt, was man wissen möchte - das „Wie" muss nicht spezifiziert werden. Das Suchen eines bestimmten Datensatzes im Vergleich mit der Programmiersprache C# soll diesen Sach­verhalt verdeutlichen:

Auszüge aus einem C# - Quellcode

  1. try
  2. {
  3.     // Erzeugt ein Objekt der Klasse StreamReader, um eine kommaseparierte Datei zu lesen.
  4.     // using sorgt u.a. für das ordungsgemäße Schließen der Datei.
  5.     using(var sr = new StreamReader("filename.csv"))
  6.     {
  7.         while (!sr.EndOfStream)  // solange das Ende der Datei nicht erreicht ist
  8.         {
  9.             var splits = sr.ReadLine().Split(';');  // lese zeilenweise und splitte diese auf
  10.             if (splits[..] == ...)                  // überprüfen, ob der aktuelle Datensatz                               
  11.             {                                       // dem gesuchten Datensatz entspricht
  12.                 ...                                 // Operationen für den gefundenen Datensatz
  13.             }
  14.         }
  15.     }
  16. }
  17. catch (Exception e)
  18. {
  19.     // Ausgabe, was ev. schief gelaufen ist.
  20.     Console.WriteLine("The file could not be read:");
  21.     Console.WriteLine(e.Message);
  22. }

SQL-Anweisung

SELECT * FROM Tabelle WHERE Bedingung
In der objektorientieren Sprache C# muss genau die Methode beschrieben wer­den, wie ein Datensatz zu suchen ist (Öffnen der Datei, Lesen eines Satzes, Prüfen, ob der Satz dem gesuchten Satz entspricht, nächsten Datensatz lesen usw.) während es in SQL genügt, anzugeben, „Suche mir alle Datensätze in der Tabelle, für die eine bestimmte Bedingung zutrifft". Die prozedurale Verarbeitung ist satzorientiert, während SQL mengenorientiert arbeitet und als Ergebnis keine, eine oder beliebig viele Zeilen liefert.

SQL - Sprachelemente

Meist werden die Sprachelemente von SQL in zwei bzw. drei Kategorien ein­geteilt:

• Anweisungen zur Datendefinition (DDL - Data Definition Language)

z. B. Anweisungen
- zur Anlage und Verwaltung von Tabellen
- zur Definition von Domains
- zur Erzeugung von Views


• Anweisungen zur Datenmanipulation (DML - Data Manipulation Language)

z. B. Anweisungen
- zur Dateneingabe
- zur Datenveränderung
- zur Abfrage von Tabelleninhalten

• DCL (Data Control Language)
Der Sprachbestandteil zur Bestimmung von Zugangs- und Zugriffsrechten wird zum Teil als dritte Kategorie genannt.

Last modified: Thursday, 1 February 2018, 10:29 AM