SQL Anfragen Flashcards

1
Q

Generelle Form von Anfragen

A
select A1, ..., An
from R1, ..., Rn
where P
A = Attribute
R = Relationen
P = Prädikat
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Anfrage “select A from R1, R2 where P” in Relationenalgebra

A

pi A (sigma P (R1 x R2))

  • > Kreuzen von Relationen R1 & R2
  • > Selektion auf Prädikat
  • > Ausgeben von bestimmtem Attribut
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Formuliereung für Prädikatzeile “where”

A

where prädikatname = “prädikat”;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ausgeben von allen Tabellenspalten

A

select *

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Ist Ausgabe ohne Projektion möglich? Wie?

A

Über “select A from R;”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Limitierung der Selektion ohne Projektion

A

select A from R limit n;

wobei n = Anzahl d. ausgegebenen Zeilen

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Limitierung der Stringlänge eines Attributs einer Selektion ohne Projektion

A
select substring (attributname, n, j) from R;
wobei n = beginnendes Zeichen (ab 1) und j = Länge d. Substring
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Sortieren der Ausgabe einer Selektion ohne Projektion (+Reihenfolge umkehren)

A

select A1, A2 from R order by A1;

select A1, A2 from R oder by A1 desc;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Kreuzprodukt zweier ganzer Tabellen

A

select * from R1, R2;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Selektion des Kreuzproduktes zweier Tabellen auf identische Attribute

A

select * from R1, R2

where R1.attributname = R1.attributname;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Auf mehrere Prädikate filtern

A

select A
from R1, R2
where P1 and P2;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was muss beim Joinen mehrer Tabbellen gemacht werden?

A

Bei n Tabellen muss auf n-1 identische Attribute selektiert werden (Verknüpfung in Prädikat mit “and”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Join über Befehl “join … using …”? Was ist Vorraussetzung?

A

select A
from R1 join R2
using (attributname);
Vorraussetzung: attributname ist identisch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Join über Befehl “natural join”?

A

select A

from R1 natural join R2

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Was macht natural join? Vorraussetzung?

A

Joint Tabellen anhand von identischem Attribut

Vorraussetzung: attributname ist identisch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Gleichheiten von Prädikaten überprüfen

A

über = / > / >=

auch bei Strings

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Boolsches Vergleichen von Prädikaten

A

über not / or / and

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Komplexe Textvergleiche von Prädikaten

A

über like / regexp

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Verwendung von “not”: Wie notiert?

A
where not (attributname = "attribut")
Geht auch mit > oder < oder <= oder like etc.
20
Q

Welche Ähnlichkeiten bei String-Vergleich mit “like” müssen gegeben sein/welchw Unterschiede darf es geben?

A

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

21
Q

Zeilenweise Anwendung von Funktionen (als Relationenalgebra)

A

zetta(erstes Zeichen von(A1), Länge(A2), Länge(A3)) (Relation)

22
Q

Zeilenweise Anwendung in SQL

A
select substring (attributname, n, j), length(attributname) + length(attributname)
from R;
23
Q

Mögliche Operatoren für Zeilenweise Anwendungen in SQL (mglw. nachschlagen)

A
Addition/Subtraktion + / -
Absolutbetrag einer Zahl abs
Sinus einer Zahl sin
Länge d. Strings length
Verkettung v. Strings concat
substring
24
Q

Wofür werden Aggregate genutzt?

A

Ausagen über Anzahl von Zeilen in einer bestimmten Spalte

25
Q

Grundform der Aggregatsfunktion?

A

select aggregatsfunktion (spaltenname/n)
from R
where P;

26
Q

Aggregatsfunktion: Durchschnitt d. Attributs a

A

avg(a)

27
Q

Aggregatsfunktion: Anzahl d. Attributs a

A

count(a)

28
Q

Aggregatsfunktion: Anzahl unterschiedliche Zeilen d. Attributs a

A

count(distinct a)

29
Q

Aggregatsfunktion: Maximum & Minimum

A

max(a), min(a)

30
Q

Aggregatsfunktion: Standardabweichung d. Attributs a

A

std(a), stddev(a)

31
Q

Aggregatsfunktion: Summe v. Attribut a

A

sum(a)

32
Q

Was kann nach der Aggregatsfunktion stehen um Spalte zu differenzieren?

A

Attribut -> attributname
Ausdrücke z.B. length (attributname)
Wenn 1 Aggregat steht können nur Aggregate folgen

33
Q

Gruppieren v. Aggregatsfunktionen: Was?

A

Ausgabe soll nicht für 1 bestimmte Entität sein, sondern mehrere (durch Prädikat beschriebene) Entitäten

34
Q

Generelle Form von gruppierten Aggregatsfunktionen

A

select attributname1, attributname2, aggregatsfunktion (spaltenname/n)
from R
where P
group by attributname1, attributname2;

35
Q

Einschränken der Ausgabe einer Aggregatsfunktion: Problem & Lösung?

A

Geht nicht mit “where”, da “where” vor Aggregatsfunktion durchgeführt wird
Lösung: mit “having”

36
Q

Generelle Form von gruppierter & eingeschränkter Aggregatsfunktion

A
select attributname1, aggregatsfunktion (spaltenname/n)
from R 
where P1
group by attributname1
having P2;
37
Q

Unteranfragen als Tabellen Grundform

A

nach “from”:
(select . . .) as tabellenname
wobei . . . ein beliebig komplizierter Ausdruck sein kann

38
Q

Tabellenspalten in Unteranfragen neu benennen

A
über "as":
select aggregatsfunktion (neuername)
from (select attributname, aggregatsfunktion (attributname) as neuername
from tabellenname)
group by attributname
as tabellenname;
39
Q

Was macht Befehl “as”, wo kann er verwendet werden?

A

Gibt Tabellen oder Tabellenspalten (Attributen) neue Namen:

immer nach “select” oder “from”

40
Q

Unteranfragen als Wert Grundform

A

nach “from”:
(select . . .)
wobei . . . ein beliebig komplizierter Ausdruck sein kann

41
Q

Was ist Vorraussetzung für Unteranfrage als Wert? Wo können Werte verwendet werden?

A
Ausdruck in (select . . .) muss Tabelle mit genau 1 Zeile und 1 Spalte ausgeben
Verwendung an allen Stellen in Anfrage, an denen einfacher Wert stehen kann
42
Q

Unteranfragen als Quantile Grundform

A

nach “where”:

where attributname in (select . . .)

43
Q

Wann wird Anfrage der Quantile wahr?

A

wenn mindestens eine Zeile d. neuen Tabelle mit dem Statement links von “in” übereinstimmt

44
Q

Quantile bei denen nach Ungleichheit verglichen wird

A

”= any” -> Gleichheit
Ungleichheit:
, >= any

45
Q

Quantile bei denen alle Zeilen d. neuen Tabelle mit dem Statement übereinstimmen müssen

A

, >= all

46
Q

Quantile bei denen auf Gegensatz verglichen wird

A

<> any
not all
<> all

47
Q

Prüfen ob Unteranfrage leer ist oder nicht

A

exists ( select . . .)