SQL Anfragen Flashcards
(47 cards)
Generelle Form von Anfragen
select A1, ..., An from R1, ..., Rn where P A = Attribute R = Relationen P = Prädikat
Anfrage “select A from R1, R2 where P” in Relationenalgebra
pi A (sigma P (R1 x R2))
- > Kreuzen von Relationen R1 & R2
- > Selektion auf Prädikat
- > Ausgeben von bestimmtem Attribut
Formuliereung für Prädikatzeile “where”
where prädikatname = “prädikat”;
Ausgeben von allen Tabellenspalten
select *
Ist Ausgabe ohne Projektion möglich? Wie?
Über “select A from R;”
Limitierung der Selektion ohne Projektion
select A from R limit n;
wobei n = Anzahl d. ausgegebenen Zeilen
Limitierung der Stringlänge eines Attributs einer Selektion ohne Projektion
select substring (attributname, n, j) from R; wobei n = beginnendes Zeichen (ab 1) und j = Länge d. Substring
Sortieren der Ausgabe einer Selektion ohne Projektion (+Reihenfolge umkehren)
select A1, A2 from R order by A1;
select A1, A2 from R oder by A1 desc;
Kreuzprodukt zweier ganzer Tabellen
select * from R1, R2;
Selektion des Kreuzproduktes zweier Tabellen auf identische Attribute
select * from R1, R2
where R1.attributname = R1.attributname;
Auf mehrere Prädikate filtern
select A
from R1, R2
where P1 and P2;
Was muss beim Joinen mehrer Tabbellen gemacht werden?
Bei n Tabellen muss auf n-1 identische Attribute selektiert werden (Verknüpfung in Prädikat mit “and”)
Join über Befehl “join … using …”? Was ist Vorraussetzung?
select A
from R1 join R2
using (attributname);
Vorraussetzung: attributname ist identisch
Join über Befehl “natural join”?
select A
from R1 natural join R2
Was macht natural join? Vorraussetzung?
Joint Tabellen anhand von identischem Attribut
Vorraussetzung: attributname ist identisch
Gleichheiten von Prädikaten überprüfen
über = / > / >=
auch bei Strings
Boolsches Vergleichen von Prädikaten
über not / or / and
Komplexe Textvergleiche von Prädikaten
über like / regexp
Verwendung von “not”: Wie notiert?
where not (attributname = "attribut") Geht auch mit > oder < oder <= oder like etc.
Welche Ähnlichkeiten bei String-Vergleich mit “like” müssen gegeben sein/welchw Unterschiede darf es geben?
a like b
Wenn b “_” enthält kann a irgend ein Zeichen der gleichen länge enthalten
Wenn b “%” enthält kann a beliebig lange Zeichenkette enthalten
Zeilenweise Anwendung von Funktionen (als Relationenalgebra)
zetta(erstes Zeichen von(A1), Länge(A2), Länge(A3)) (Relation)
Zeilenweise Anwendung in SQL
select substring (attributname, n, j), length(attributname) + length(attributname) from R;
Mögliche Operatoren für Zeilenweise Anwendungen in SQL (mglw. nachschlagen)
Addition/Subtraktion + / - Absolutbetrag einer Zahl abs Sinus einer Zahl sin Länge d. Strings length Verkettung v. Strings concat substring
Wofür werden Aggregate genutzt?
Ausagen über Anzahl von Zeilen in einer bestimmten Spalte