Datenmanipulation & Abfrage Flashcards
Wie fügt man einen neuen Datensatz in eine Tabelle ein?
Mit dem INSERT Befehl
Wie löscht man einen Datensatz in einer Tabelle?
Mit dem DELETE Befehl
Was macht ON DELETE CASCADE?
Das Löschen eines Datensatzes führt dazu, dass alle ihn referenzierenden Datensätze ebenfalls gelöscht werden
Was macht ON DELETE SET NULL?
Das Löschen eines Datensatzes führt dazu, dass alle Zellen, in denen ein entsprechender Fremdschlüsselwert eingetragen ist, auf NULL gesetzt werden.
Dies setzt voraus, dass für das entsprechende Fremdschlüsselattribut Nullwerte erlaubt sind
Was ist die dritte Option wenn man beide Optionen verhindern möchte (zum löschen) und dennoch die referenzielle Integrität der Datenbasis sicherstellen will?
einzige Option, den Datensatz nicht zu löschen, sondern den Wert eines eigens dafür angelegten Attributs (z B active auf false zu setzen und bei Datenbankabfragen die Datensätze entsprechend zu filtern
Woraus besteht eine Datenbankabfrage?
Aus den beiden Schlüsselwörtern SELECT und FROM
Was ist SELECT?
Mit dem Schlüsselwort SELECT kann eine (mit Komma getrennte) Liste von Attributen der Tabelle spezifiziert werden, die im Resultat der Abfrage enthalten sein sollen.
Darüber hinaus können mathematische Ausdrücke angegeben werden, die statische Werte oder Attributwerte beinhalten mithilfe des Schlüsselworts AS wird ein Name für das daraus generierte Attribut angegeben
Was ist FROM?
Mit dem Schlüsselwort FROM wird der Name der Tabelle spezifiziert, aus der die Daten abgefragt werden sollen
Was macht der | | Operator?
Der | | Operator führt dabei eine String Konkatenation aus, also ein Aneinanderreihen von Zeichenketten
Was macht WHERE?
Datenbankabfragen können damit um Bedingungen ergänzt werden.
Die Bedingung muss ein logischer Ausdruck sein, den das DBMS entweder zu wahr oder zu falsch
auswerten kann.
Dabei können verschiedene Operatoren angewandt werden, um eine Filterung auf Basis der Datensätze zu ermöglichen, z B Vergleich auf Gleichheit größer/kleiner als größer/kleiner als oder gleich Ungleichheit oder Nullwertüberprüfung IS [NOT] NULL.
Was ist ORDER BY?
Abfrageergebnisse lassen sich damit sortieren.
ORDER BY Attributname/ASC/DESC
Was ist das kartesische Produkt?
Betrachtet man nun die Tabellen einer Datenbank als Mengen von Datensätzen, so kann analog zur
Mengenlehre ein kartesisches Produkt aus den Datensätzen mehrerer Tabellen gebildet werden.
Dabei wird jede Zeile der ersten Tabelle mit jeder Zeile der zweiten Tabelle und dieses Ergebnis wiederum mit jeder Zeile der dritten Tabelle kombiniert usw Dies lässt sich in SQL dadurch umsetzen, im FROM Teil der Anfrage mehrere (durch Komma getrennte) Tabellen zu listen.
Verfügt Tabelle 𝑖 über 𝑛𝑖 Zeilen und sind 𝑚 Tabellen an der Bildung des kartesischen Produkts beteiligt,
so hat das Resultat demzufolge 𝑛1⋅𝑛2⋅…⋅𝑛𝑚 Zeilen.
Gerade, wenn viele große Tabellen beteiligt sind,
führt dies schnell zur so genannten kombinatorischen Explosion
Was ist ein Inner Join?
Vielmehr möchte man die Tabellen entsprechend der durch die Fremdschlüsselattribute vorgesehenen Referenzen zusammenführen, beispielsweise um sich zu einer Mitarbeitenden aus der Tabelle Employees auch ihren Beruf aus der Tabelle Jobs ausgeben zu lassen.
Die dafür benötigte Operation wird im Kontext relationaler Datenbanken als innerer Verbund Inner Join bezeichnet und in SQL durch den INNER JOIN Befehl
implementiert
Was ist ein Outer Join?
Ein anderer denkbarer Anwendungsfall wäre die Erstellung eines Verbundes, bei dem jedoch auch
Zeilen aus den Ausgangstabellen enthalten sein sollen, für die keine Entsprechung in der jeweils anderen Ausgangstabelle enthalten ist.
LEFT OUTER JOIN Alle Datensätze aus der zuerst benannten Tabelle sind in jedem Fall im Ergebnis erhalten, diejenigen aus der zweiten Tabelle allerdings nur, falls sie über Zuordnungen in der ersten Tabelle verfügen
RIGHT OUTER JOIN Alle Datensätze aus der zweiten Tabelle sind enthalten, jedoch nicht diejenigen aus der ersten Tabelle, die keine Zuordnung in der zweiten Tabelle haben
FULL OUTER JOIN Alle Datensätze aus beiden Tabellen sind enthalten, unabhängig davon, ob sie über eine Zuordnung in der jeweils anderen Tabelle verfügen
Was ist ein Self Join?
Ein semantischer Sonderfall des Verbunds liegt vor, wenn eine Tabelle nicht mit einer anderen, sondern
mit der gleichen Tabelle verbunden wird, d h es liegt ein JOIN Befehl der Form Tabelle 1 JOIN
Tabelle 1 vor Dieser Sonderfall wird als Self Join bezeichnet, da eine Tabelle mit „sich selbst“
verbunden wird