i

Fachkonzept - SQL

Ein Wissensspeicher

Was du bisher gelernt hast und auf dieser Seite erfährst, kannst du in diesem Wissensspeicher festhalten:

SQL - Structured Query Language

SQL ist eine universelle Datenbanksprache, die von praktisch allen aktuellen Datenbanksystemen verstanden wird.

Mit SQL können alle wichtigen Aufgaben einer Datenbank erledigt werden:

  • Die Abfrage von Daten.
  • Neuanlage, Ändern und Löschen von Daten.
  • Die Definition der Tabellenstrukturen.
  • Das Verwalten von Zugriffsrechten - also wer darf welche Daten sehen und verändern.

In diesem Kapitel beschränken wir uns auf die Abfrage von Daten, einem Teil der DML - Data Manipulation Language.

Eine SQL-Anfrage liefert immer eine neue Tabelle als Ergebnis.
Die Syntax einer SQL-Abfrage hat folgende wesentlichen Elemente:

  • SELECT    - Liste der auszugebenden Attribute.
  • FROM      - Liste der Tabellen, aus denen Daten entnommen werden.
  • WHERE     - Bedingungen, die die Datensätze erfüllen müssen.
  • ORDER BY  - Attribute, nach denen sortiert werden soll.

Zur Vereinfachung des SELECT kann auch SELECT * angegeben werden, um alle Attribute anzuzeigen.

Die Teile WHERE und ORDER BY können entfallen.

Bedingungen in SQL

Die WHERE-Anweisung erlaubt die Angabe von komplexen Bedingungen:

  • Direkte Vergleiche auf Werte, z.B. GebDat > '1970-12-11'.
  • Verbinden von mehreren Bedingungen mit AND, OR oder NOT.
  • Filtern von Text-Attributen mit LIKE.

Der Datentyp eines Attributs muss in der Bedingung beachtet werden:

  • Bei Text-Attributen müssen die Werte in einfachen Hochkommata angegeben werden, z.B. Name='Lindemann'.
  • Bei Zahl-Attributen werden Werte ohne Anführungszeichen geschrieben.
  • Datumsangaben werden in der Regel nach amerikanischem Schema geschrieben (Jahr-Monat-Tag) und in Anführungszeichen gesetzt, z.B. GebDat='1979-06-23'

Eine Besonderheit ist der LIKE-Vergleich. Hier können im Wert Platzhalter für Texte angegeben werden.

  • Ein Prozentzeichen bedeutet beliebig viele Buchstaben.
  • Ein Unterstrich bedeutet einen beliebigen Buchstaben.

Beispiele:

-- alle Bilder, die keine Benutzerbilder sind.
NOT (Kategorie='Benutzerbild') 

-- alle Benutzer mit Titel, die in Mainz wohnen (alle Titel enden mit einem Punkt)
Titel LIKE '%.' AND Ort='Mainz'  

-- alle Benutzernamen, die mit Mei beginnen.
Name LIKE 'Mei%'    

-- alle Benutzer, die Maier, Meier, Meyer oder ähnlich heißen
Name LIKE 'M__er' 

-- alle Bilder, die Autos oder Haustiere darstellen (statt einer OR-Verknüpfung)
Kategorie IN ('Auto','Haustier')

Übrigens siehst du direkt eine Möglichkeit für Kommentare in SQL (zwei Bindestriche)

Sortieren in SQL

Die Datensätze als Ergebnis einer SQL-Anfrage werden in der Regel unsortiert ausgegeben. Eine vorhandene Sortierung ist dann Zufall!

Die ORDER BY-Anweisung erzwingt eine bestimmte Reihenfolge.

Die Liste der Attribute gibt die Sortierreihenfolge an. Die Schlüsselworte ASC und DESC erzwingen eine aufsteigende (Standard) oder absteigende Sortierung.

So sortiert das folgende Beispiel die Benutzer erst absteigend nach dem Ort und dann (aufsteigend) nach dem Namen:

SELECT Ort, Name, Vorname
  FROM benutzer
 ORDER BY Ort DESC, Name

Suche

v
3.2.1.4
dev.inf-schule.de/datenbanksysteme/gbuch/relationaledb/konzept_sql
dev.inf-schule.de/3.2.1.4
dev.inf-schule.de/@/page/E10mNohEQMa5eStn

Rückmeldung geben