sql_dql_part2_Z Flashcards
Was ist die Funktion des EXCEPT-Operators in SQL?
Der EXCEPT-Operator in SQL entspricht dem Differenzoperator der relationalen Algebra. Er wird verwendet, um die Differenz zwischen zwei Mengen von Ergebnissen zu ermitteln. Beispielsweise kann er genutzt werden, um Matrikelnummern der Studenten zu finden, die keine Prüfung abgelegt haben:
sql SELECT MatrNr FROM Student EXCEPT SELECT MatrNr FROM Examines;
Was bewirkt der INTERSECT-Operator in SQL?
Der INTERSECT-Operator entspricht dem Schnittmengenoperator der relationalen Algebra. Er wird verwendet, um die gemeinsame Menge von Ergebnissen zwischen zwei Abfragen zu ermitteln. Zum Beispiel, um die Personennummern der Professoren mit Rang ‘C4’ zu finden, die mindestens eine Vorlesung halten:
sql SELECT HoldBy FROM Lecture INTERSECT SELECT PersNr FROM Professor WHERE Rang = 'C4';
Was sind Aggregationsfunktionen in SQL und welche wichtigen Funktionen gibt es?
Aggregationsfunktionen in SQL sind Operationen auf einer Menge von Tupeln, die einen einzelnen Wert pro Attribut berechnen. Wichtige Aggregationsfunktionen sind: - COUNT
: Zählt die Werte einer Spalte oder alle Tupel einer Tabelle. - AVG
: Berechnet den Durchschnittswert der Spaltenwerte. - MAX
: Bestimmt den Maximalwert der Spaltenwerte. - MIN
: Bestimmt den Minimalwert der Spaltenwerte. - SUM
: Berechnet die Summe der Spaltenwerte.
Wie kann man die Anzahl der Studenten in einer Tabelle ermitteln?
Die Anzahl der Studenten in einer Tabelle kann mit der Aggregationsfunktion COUNT
ermittelt werden:
sql SELECT COUNT(*) FROM Student;
Wie berechnet man die Summe der Gehälter aller Professoren in einer Tabelle?
Die Summe der Gehälter aller Professoren kann mit der Aggregationsfunktion SUM
berechnet werden:
sql SELECT SUM(salary) FROM Professor;
Wie findet man das durchschnittliche Gehalt eines Professors in einer Tabelle?
Das durchschnittliche Gehalt eines Professors kann mit der Aggregationsfunktion AVG
berechnet werden:
sql SELECT AVG(Salary) FROM Professor;
Wie kann man das maximale Gehalt eines Professors in einer Tabelle finden?
Das maximale Gehalt eines Professors kann mit der Aggregationsfunktion MAX
ermittelt werden:
sql SELECT MAX(Salary) FROM Professor;
Wie kann man das minimale Gehalt eines Professors in einer Tabelle finden?
Das minimale Gehalt eines Professors kann mit der Aggregationsfunktion MIN
ermittelt werden:
sql SELECT MIN(Salary) FROM Professor;
Wie kann man die Anzahl der Professoren in einer Datenbank zählen?
Die Anzahl der Professoren in einer Datenbank kann mit der Aggregationsfunktion COUNT
ermittelt werden:
sql SELECT COUNT(PersNr) FROM Professor;
Was bewirkt der GROUP BY-Operator in SQL?
Der GROUP BY-Operator in SQL teilt eine Relation in Unterrelationen basierend auf gleichen Attributwerten. Dies ermöglicht die Aggregation von Daten nach bestimmten Attributen. Ein Beispiel für die Anzahl der ECTS-Punkte pro Professor mit Rang ‘C4’:
sql SELECT PersNr, SUM(ECTS) FROM Lecture JOIN Professor ON (holdBy = PersNr) WHERE Rang = 'C4' GROUP BY PersNr;
Was ist der Unterschied zwischen korrelierten und unkorrelierten verschachtelten Abfragen in SQL?
Korrellierte Abfragen greifen auf Attribute der übergeordneten Abfrage zu und werden pro Ergebnistupel einmal ausgeführt. Unkorrelierte Abfragen greifen nicht auf Attribute der übergeordneten Abfrage zu und werden nur einmal ausgeführt.
Wie findet man Studenten, die am längsten studieren, mit einer verschachtelten Abfrage?
Studenten, die am längsten studieren, können mit einer verschachtelten Abfrage gefunden werden:
sql SELECT Name FROM Student WHERE Semester = (SELECT MAX(Semester) FROM Student);
Wie kann man Professoren und die Anzahl der ECTS, die sie lehren, mit einer verschachtelten Abfrage ermitteln?
Professoren und die Anzahl der ECTS, die sie lehren, können mit einer verschachtelten Abfrage ermittelt werden:
sql SELECT p.PersNr, p.Name, (SELECT SUM(l.ECTS) FROM Lecture l WHERE l.readBy = p.PersNr) AS "Teaching Hours" FROM Professor p;
Wie findet man Studenten, die mehr als zwei Vorlesungen besuchen, mit einer verschachtelten Abfrage?
Studenten, die mehr als zwei Vorlesungen besuchen, können mit einer verschachtelten Abfrage gefunden werden:
sql SELECT tmp.MatrNr, tmp.Name, tmp.NumberOfLectures FROM (SELECT MatrNr, Name, COUNT(*) AS NumberOfLectures FROM Student NATURAL JOIN Hears GROUP BY MatrNr, Name) tmp WHERE tmp.NumberOfLectures > 2;
Was bewirkt der IN-Operator in SQL und wie wird er verwendet?
Der IN-Operator in SQL prüft, ob ein Attribut Teil einer gegebenen Menge ist. Ein Beispiel für die Verwendung des IN-Operators, um Professoren zu finden, die mindestens eine Vorlesung halten:
sql SELECT Name FROM Professor WHERE PersNr IN (SELECT holdBy FROM Lecture);