TUT4 Flashcards

1
Q

SELECT * FROM

A

SELECT projeziert Spalten

FROM definiert die benutzten Spalten

Obligatorischen Klauseln der SELECT-Anweisung.

SELECT spezifiziert, welche Spalten die Ergebnismenge dieser Anfrage aufweist und wie diese Spalten heißen. Dies entspricht der Projektion in der relationalen Algebra bzw. der Umbenennung, wenn mittels der AS-Option für einen Spaltenausdruck ein neuer Name vergeben wird.

FROM-Klausel: Eine der beiden obligatorischen Klauseln der SELECT-Anweisung. In ihr wird angegeben, aus welchen Tabellen bzw. Sichten die zu selektierenden Daten stammen.

Beispiel

SELECT Kun_Nr, Vorname, Nachname, Ort

FROM Kunden;

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

SELECT * FROM WHERE

A

WHERE selektiert aufgrund einer Suchbedingung bestimmte Zeilen der Tabellen

WHERE-Klausel: liegt Suchbedingungen fest, welche Zeilen (Datensätze) aus einer oder mehreren Zeilen auswählen. Sie werden in SELECT-, DELETE- und UPDATE-Anweisungen eingesetzt. Suchbedingungen sind meist eine Folge von Prädikaten, die durch logische Operatoren AND oder OR verbunden sind. Die Priorisierung bzw. Klammerung bestimmt dabei die Reihenfolge der Abarbeitung.

SELECT Kun_Nr, Vorname, Nachname, Ort

FROM Kunden

WHERE Ort = ‘Gummersbach’;

SELECT Nachname, Gehalt, Abzuege

FROM Angestellte

WHERE Abzuege > Gehalt * 0,4;

SELECT Nachname, Ort

FROM Kunden

WHERE Ort = ‘Köln’

OR NOT (Ort = ‘Gummersbach’);

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

SELECT * FROM GROUP BY

A

GROUP BY gruppiert Zeilen auf Basis gleicher Spaltenwerte

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

SELECT * FROM HAVING

A

HAVING

selektiert nur Gruppen, die der HAVING-Bedingung entsprechen

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

SELECT * FROM ORDER BY

A

ORDER-BY

Sortiert Ausgabe der SELECT-Anweisung.

Klausel ist nur auf der obersten (äußersten) Ebene der SELECT-Anfragen möglich, nicht für die Zwischenergebnismengen der Unterabfragen, die innerhalb eines SELECTs geschachtelt sind.

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

Gib alle Angestellten aus, dessen Abzüge größer sind als 40% ihres Gehaltes.

Gib alle Angestellten aus, bei denen das Gehalt zwischen 3000 und 3600 ist.

A

SELECT * FROM Angestellte

WHERE Abzuege > Gehalt *0,4;

SELECT * FROM Angestellte
WHERE Gehalt BETWEEN 3000 AND 3600;

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

Gib die Kunden aus, bei dem Ort = ‘Köln’ ist ODER die nicht aus Gummersbach kommen.

A

SELECT * FROM Kunden

WHERE Ort = ‘Köln’

OR NOT (Ort = ‘Gummersbach’);

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

WHERE

LIKE Definition

Selektiere die Angestellten, bei denen Nachname mit einem W beginnt.

A

LIKE

dient in Suchbedingungen zum Abfragen von Textmustern über Schablonen und Wildcards. Ist der alphanumerische Ausdruck NULL, dann ist das Ergebnis des Vergleichs im Sinne der dreiwertigen Logik UNKNOWN.

SELECT Nachname

FROM Angestellte

WHERE Nachname LIKE ‘W%’;

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

WHERE

IN & NULL

IN Bsp: Selektiere alle Kunden, die im Ort Köln oder Gummersbach sind.

NULL Bsp: Selektiere alle Angestellte, die keine Abt_Nr haben.

A

Es wird eine Domäne angegeben, aus der etwas ausgewählt werden soll

Man kann auch angeben “Abt_Nr IS NULL, was besonders wichtig für die OUTER JOINS* ist.

*LEFT OUTER JOIN, FULL OUTER JOIN oder RIGHT OUTER JOIN.

SELECT * FROM Kunden
WHERE Ort IN (‘Köln’, ‘Gummersbach’)

SELECT * FROM Angestellte
WHERE Abt_Nr IS NULL;

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

Selektiere die Anzahl der Angestellte, die in Abt_Nr 2 sind.

A
SELEKT COUNT(\*)
FROM Angestellte
WHERE Abt\_Nr = 2;
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

SUM Beispiel

A

SELECT SUM(Gehalt) * 12;

FROM Angestellte

WHERE Abt_Nr = 2;

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

Selektiere den Durchschnitt des Gehaltes der Angestellte, bei denen Beruf = ‘Informatiker’ ist.

A

SELECT AVG(Gehalt)

FROM Angestellte

WHERE Beruf = ‘Informatiker’;

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

GROUP BY Definition

A

GROUP-BY

Ergebnissdatensätze einer SELECT-Anweisung werden nach Bearbeitung der WHERE-Klausel in Gruppen eingeteilt, in denen die Werte der GROUP-BY-Spalten gleich sind. Über die GROUP-BY-Spalten wird aufsteigend sortiert.

Nachfolgend dieser Klausel kann optional eine HAVING-Klausel programmiert werden.

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

!!! GROUP BY Beispiel

Selektiere die Abt_Nr, die mindestens 5 Angestellte haben.

A

SELECT Abt_Nr

FROM Angestellte

GROUP BY Abt_Nr

HAVING COUNT(*) >=5;

Man liest (wie beim Baum) immer von innen nach außen.

Erst wird die Tabelle “Angestellter” genommen und dann selektiert man die Abt_Nr.
Dann kommt die Gruppierung nach der Abt_Nr.

Und während gruppiert wird, wird die Bedingung HAVING … gecheckt.

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

ORDER BY Beispiel

Selektiere Ort, Nachname und Vorname von Kunden.

Ordne dabei den Ort absteigend und den Nachnamen aufsteigend.

A

SELECT Ort, Nachname, Vorname

FROM Kunden

ORDER BY Ort DESC, Nachname ASC;

DESC = Descending = Absteigend

ASC = Ascending = Aufsteigend

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

(INNER) JOIN

A

(INNER) JOIN = Durchschnitt

Gibt Datensätze zurück, deren Werte in beiden Tabellen übereinstimmen.

17
Q

LEFT (OUTER) JOIN &

RIGHT (OUTER) JOIN

A

LEFT (OUTER) JOIN

Gibt alle Datensätze aus der linken Tabelle und die übereinstimmenden Datensätze aus der rechten Tabelle zurück.

RIGHT (OUTER) JOIN

Gibt alle Datensätze aus der rechten Tabelle und die übereinstimmenden Datensätze aus der linken Tabelle zurück

18
Q

FULL (OUTER) JOIN

A

FULL (OUTER) JOIN = Union

Gibt alle Datensätze zurück, wenn es entweder in der linken oder der rechten Tabelle eine Übereinstimmung gibt.

19
Q

JOIN

USING Klausel

A

Die USING-Klausel
Wird verwendet, wenn mehrere Spalten denselben Namen haben, aber Sie aber nicht alle diese gemeinsamen Spalten für den Join verwenden wollen.

Die in der USING-Klausel aufgeführten Spalten dürfen keine Qualifizierer in der Anweisung haben, auch nicht in der WHERE-Klausel.

SELECT *

FROM Tab1 JOIN Tab2 USING(Spalte);

Die Ausgabe bei ON und USING ist gleich.

20
Q

JOIN

ON Klausel

A

ON-Klausel

Verknüpft Tabellen, bei denen die Spaltennamen in beiden Tabellen nicht übereinstimmen.

Join-Bedingungen werden aus den Filterbedingungen in der WHERE-Klausel entfernt.
Die gejointen Tabellen werden mit “ON” auf diese bestimmte Spalte gejoint.

SELECT *

FROM Tab1 JOIN Tab2

ON Tab1.Spalte1 = Tab2.Spalte2;

Die Ausgabe bei ON und USING ist gleich.

21
Q

WHERE EXISTS (Unterabfrage)

A

SELECT DISTINCT TNr, Bezeichnung

FROM Artikel a

WHERE EXISTS (

SELECT * FROM Auftragspositionen b WHERE a.TNr = b.TNr);

SELECT DISTINCT wird verwendet, um nur unterschiedliche Werte zurückzugeben.

In einer Tabelle enthält eine Spalte oft viele doppelte Werte, und manchmal möchte man nur die unterschiedlichen (unterschiedlichen) Werte auflisten.

22
Q

UNION ALL

Vereinige alle Nachnamen der Tabelle Angestellte

mit allen Nachnamen der Tabelle Kunden.

A

SELECT Nachname

FROM Angestellte

UNION ALL

SELECT FROM Kunden;

Vereinigt alle Nachnamen der Tabelle Angestellte mit allen Nachnamen der Tabelle Kunden.

22
Q

MINUS

Selektiere alle Nachnamen der Tabelle Angestellte,

die nicht in der Tabelle Kunden sind.

A

SELECT Nachname

FROM Angestellte

MINUS

SELECT Nachname

FROM Kunden;

Selektiert alle Nachnamen der Tabelle Angestellte,

die nicht in der Tabelle Kunden sind.

23
Q

INTERSECT

Selektiere alle Nachnamen der Angestellte, die auch Kunde sind.

A

SELECT Nachname

FROM Angestellte

INTERSECT

SELECT Nachname

FROM Kunden;

INTERSECT nimmt den Durchschnitt.

Also alle Nachnamen der Angestellte, die auch Kunde sind.

24
Q

CONNECT BY

A

SELECT OTeil, UTeil

FROM Struktur

START WITH OTeil = 60

CONNECT BY PRIOR UTeil = OTeil;

START WITH = Spaltenname (= Konstante, it der begonnen werden soll)

CONNECT BY (Bedingung)

PRIOR legt den Vater-Knoten in CONNECT-BY Bedingung fest

LEVEL ist eine Pseudospalte, in der die Tiefe der Auflösung festgehalten wird