SQL und Datenbanken

0.0(0)
Studied by 0 people
call kaiCall Kai
Locked
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/96

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 12:33 PM on 7/14/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

97 Terms

1
New cards

Was ist SQL?

• Sprache zum Abfragen und Verwalten relationaler Datenbanken | • Wird für Auswahl, Filterung, Aggregation und Änderung von Daten genutzt | • SQL ist deklarativ: Man beschreibt das gewünschte Ergebnis

2
New cards

Was ist eine relationale Datenbank?

• Speichert Daten in Tabellen | • Tabellen bestehen aus Zeilen und Spalten | • Beziehungen werden meist über Schlüssel abgebildet

3
New cards

Was ist eine Tabelle?

• Strukturierte Sammlung gleichartiger Datensätze | • Jede Zeile repräsentiert eine Beobachtung | • Jede Spalte beschreibt ein Merkmal

4
New cards

Was ist eine Zeile in einer Datenbanktabelle?

• Ein einzelner Datensatz | • Beispiel: eine Kundin oder eine Bestellung | • Wird häufig durch einen Primärschlüssel eindeutig identifiziert

5
New cards

Was ist eine Spalte?

• Ein Attribut eines Datensatzes | • Beispiel: Kundennummer, Kaufdatum oder Umsatz | • Hat einen definierten Datentyp

6
New cards

Was ist ein Primärschlüssel?

• Identifiziert jede Zeile eindeutig | • Darf nicht mehrfach vorkommen | • Ist normalerweise nicht NULL

7
New cards

Was ist ein Fremdschlüssel?

• Verweist auf den Primärschlüssel einer anderen Tabelle | • Stellt Beziehungen zwischen Tabellen her | • Unterstützt referenzielle Integrität

8
New cards

Was ist referenzielle Integrität?

• Fremdschlüssel dürfen nur auf existierende Datensätze verweisen | • Verhindert verwaiste Beziehungen | • Kann durch Datenbankregeln erzwungen werden

9
New cards

Was ist ein Datentyp?

• Legt fest, welche Werte eine Spalte speichern kann | • Beispiele: INTEGER, VARCHAR, DATE, BOOLEAN | • Beeinflusst Speicher, Validierung und mögliche Operationen

10
New cards

Was macht SELECT?

• Wählt Spalten oder berechnete Ausdrücke aus | • Bestimmt, was im Ergebnis angezeigt wird | • Beispiel: SELECT name, umsatz FROM kunden

11
New cards

Was macht FROM?

• Gibt die Datenquelle einer Abfrage an | • Meist eine Tabelle oder View | • Kann auch Subqueries oder mehrere Tabellen enthalten

12
New cards

Was macht WHERE?

• Filtert einzelne Zeilen | • Wird vor Aggregationen angewendet | • Beispiel: WHERE umsatz > 100

13
New cards

Was macht ORDER BY?

• Sortiert das Ergebnis | • ASC ist aufsteigend, DESC absteigend | • Mehrere Sortierspalten sind möglich

14
New cards

Was macht LIMIT?

• Begrenzt die Anzahl zurückgegebener Zeilen | • Nützlich für Vorschauen oder Top-N-Abfragen | • Syntax kann je nach Datenbanksystem variieren

15
New cards

Was macht DISTINCT?

• Entfernt doppelte Ergebniszeilen | • Bezieht sich auf die Kombination aller ausgewählten Spalten | • Kann bei großen Datenmengen teuer sein

16
New cards

Was ist ein Alias?

• Temporärer Name für eine Spalte oder Tabelle | • Wird meist mit AS vergeben | • Verbessert Lesbarkeit und verkürzt Abfragen

17
New cards

Was ist NULL?

• Kennzeichnet einen fehlenden oder unbekannten Wert | • Ist nicht gleich 0 und nicht gleich leerer Text | • Vergleiche erfolgen mit IS NULL oder IS NOT NULL

18
New cards

Warum funktioniert = NULL nicht?

• NULL steht für unbekannt | • Ein normaler Vergleich mit unbekannt ergibt kein TRUE | • Daher IS NULL oder IS NOT NULL verwenden

19
New cards

Was macht COALESCE?

• Gibt den ersten nicht-NULL-Wert zurück | • Kann fehlende Werte durch Ersatzwerte ersetzen | • Beispiel: COALESCE(rabatt, 0)

20
New cards

Was macht CASE WHEN?

• Erzeugt bedingte Logik in SQL | • Kann Werte klassifizieren oder neue Kategorien bilden | • Ähnelt if-else in Programmiersprachen

21
New cards

Was sind Aggregatfunktionen?

• Fassen mehrere Zeilen zu Kennzahlen zusammen | • Beispiele: COUNT, SUM, AVG, MIN, MAX | • Werden häufig mit GROUP BY genutzt

22
New cards

Was macht COUNT(*)?

• Zählt alle Zeilen | • Bezieht NULL-Werte mit ein | • Unterscheidet sich von COUNT(spalte)

23
New cards

Was macht COUNT(spalte)?

• Zählt nur nicht-NULL-Werte der Spalte | • Kann kleiner als COUNT(*) sein | • Nützlich zur Prüfung fehlender Werte

24
New cards

Was macht SUM?

• Addiert numerische Werte | • Ignoriert NULL-Werte | • Kann mit GROUP BY pro Gruppe berechnet werden

25
New cards

Was macht AVG?

• Berechnet den Mittelwert nicht-NULL Werte | • NULL-Werte werden ignoriert | • Bei Bedarf vorher fachlich sinnvoll imputieren oder ersetzen

26
New cards

Was macht GROUP BY?

• Fasst Zeilen mit gleichen Merkmalswerten zu Gruppen zusammen | • Erlaubt Aggregationen pro Gruppe | • Alle nicht aggregierten SELECT-Spalten müssen gruppiert werden

27
New cards

Was macht HAVING?

• Filtert bereits aggregierte Gruppen | • Wird nach GROUP BY angewendet | • Beispiel: HAVING COUNT(*) > 10

28
New cards

Was ist der Unterschied zwischen WHERE und HAVING?

• WHERE filtert Zeilen vor der Aggregation | • HAVING filtert Gruppen nach der Aggregation | • WHERE ist meist effizienter, wenn beide möglich wären

29
New cards

Was ist ein INNER JOIN?

• Behält nur Zeilen mit passendem Schlüssel in beiden Tabellen | • Nicht passende Zeilen fallen weg | • Geeignet, wenn nur vollständige Matches relevant sind

30
New cards

Was ist ein LEFT JOIN?

• Behält alle Zeilen der linken Tabelle | • Passende Werte der rechten Tabelle werden ergänzt | • Ohne Match entstehen rechts NULL-Werte

31
New cards

Was ist ein RIGHT JOIN?

• Behält alle Zeilen der rechten Tabelle | • Entspricht einem LEFT JOIN mit vertauschter Tabellenreihenfolge | • Wird in der Praxis seltener verwendet

32
New cards

Was ist ein FULL OUTER JOIN?

• Behält alle Zeilen beider Tabellen | • Matches werden zusammengeführt | • Nicht passende Seiten werden mit NULL ergänzt

33
New cards

Was ist ein CROSS JOIN?

• Bildet das kartesische Produkt | • Jede Zeile der ersten Tabelle wird mit jeder Zeile der zweiten kombiniert | • Kann sehr große Ergebnisse erzeugen

34
New cards

Was passiert bei einem Join mit nicht eindeutigen Schlüsseln?

• Mehrere Matches erzeugen mehrere Ergebniszeilen | • Kann ungewollte Duplikation verursachen | • Vorher Kardinalität und Eindeutigkeit prüfen

35
New cards

Was bedeutet Join-Kardinalität?

• Beschreibt die Beziehung zwischen Tabellen | • Typen: eins-zu-eins, eins-zu-viele, viele-zu-viele | • Bestimmt, ob ein Join Zeilen vervielfacht

36
New cards

Wie erkennt man ungewollte Duplikate nach einem Join?

• Zeilenzahl vor und nach dem Join vergleichen | • Eindeutigkeit des Join-Schlüssels prüfen | • COUNT(*) und COUNT(DISTINCT key) gegenüberstellen

37
New cards

Was ist ein Self Join?

• Eine Tabelle wird mit sich selbst verbunden | • Nützlich für Hierarchien oder Vergleiche innerhalb derselben Tabelle | • Tabellenaliase sind dabei notwendig

38
New cards

Was ist UNION?

• Kombiniert Ergebnisse untereinander | • Entfernt Duplikate | • Spaltenanzahl und Datentypen müssen kompatibel sein

39
New cards

Was ist UNION ALL?

• Kombiniert Ergebnisse und behält Duplikate | • Meist schneller als UNION | • Nutzen, wenn Duplikatentfernung nicht gewünscht ist

40
New cards

Was ist der Unterschied zwischen JOIN und UNION?

• JOIN verbindet Tabellen horizontal über Spalten | • UNION kombiniert Ergebnisse vertikal über Zeilen | • Beide lösen unterschiedliche Datenintegrationsprobleme

41
New cards

Was ist eine Subquery?

• Abfrage innerhalb einer anderen Abfrage | • Kann in SELECT, FROM oder WHERE stehen | • Hilfreich, aber nicht immer die lesbarste Lösung

42
New cards

Was ist eine Common Table Expression?

• Temporär benannter Abfrageblock mit WITH | • Verbessert Lesbarkeit komplexer Abfragen | • Kann in derselben Abfrage mehrfach referenziert werden

43
New cards

Was ist eine rekursive CTE?

• CTE, die sich selbst referenziert | • Geeignet für Hierarchien oder Pfade | • Besteht aus Startteil und rekursivem Teil

44
New cards

Was ist eine Window Function?

• Berechnet Werte über eine Gruppe von Zeilen, ohne sie zusammenzufassen | • Jede Originalzeile bleibt erhalten | • Beispiele: ROW_NUMBER, RANK, LAG, SUM OVER

45
New cards

Was macht OVER?

• Definiert das Fenster einer Window Function | • Kann PARTITION BY und ORDER BY enthalten | • Bestimmt, über welche Zeilen gerechnet wird

46
New cards

Was macht PARTITION BY?

• Teilt Daten für Window Functions in Gruppen | • Berechnung startet pro Gruppe neu | • Ähnelt GROUP BY, ohne Zeilen zu reduzieren

47
New cards

Was macht ROW_NUMBER?

• Vergibt eine eindeutige laufende Nummer innerhalb eines Fensters | • Reihenfolge wird über ORDER BY bestimmt | • Nützlich zur Auswahl der neuesten Zeile pro Gruppe

48
New cards

Was ist der Unterschied zwischen ROW_NUMBER, RANK und DENSE_RANK?

• ROW_NUMBER vergibt immer eindeutige Nummern | • RANK lässt nach Gleichständen Lücken | • DENSE_RANK lässt keine Lücken

49
New cards

Was macht LAG?

• Greift auf einen vorherigen Zeilenwert im Fenster zu | • Nützlich für Veränderungen über die Zeit | • Beispiel: aktueller Umsatz minus Umsatz des Vormonats

50
New cards

Was macht LEAD?

• Greift auf einen nachfolgenden Zeilenwert zu | • Nützlich für Vergleiche mit zukünftigen Zeilen | • Reihenfolge muss klar definiert sein

51
New cards

Wie berechnet man einen laufenden Gesamtwert?

• SUM als Window Function verwenden | • ORDER BY definiert die zeitliche Reihenfolge | • Beispiel: SUM(umsatz) OVER (ORDER BY datum)

52
New cards

Wie findet man den neuesten Datensatz pro Kundin?

• ROW_NUMBER über Kundin partitionieren | • Nach Datum absteigend sortieren | • Danach nur Zeilen mit row_number = 1 auswählen

53
New cards

Wie entfernt man Duplikate mit SQL?

• Zuerst definieren, welche Zeile behalten werden soll | • ROW_NUMBER über Duplikatschlüssel verwenden | • Nur die gewünschte Rangposition behalten

54
New cards

Was ist eine View?

• Gespeicherte Abfrage, die wie eine Tabelle genutzt wird | • Speichert meist nicht selbst die Daten | • Vereinfacht Wiederverwendung und Zugriffskontrolle

55
New cards

Was ist eine materialisierte View?

• Speichert das Ergebnis einer Abfrage physisch | • Kann Abfragen beschleunigen | • Muss regelmäßig aktualisiert werden

56
New cards

Was ist ein Index?

• Zusätzliche Datenstruktur zur schnelleren Suche | • Beschleunigt häufig WHERE-, JOIN- und ORDER-BY-Operationen | • Verlangsamt Schreiboperationen und benötigt Speicher

57
New cards

Wann ist ein Index sinnvoll?

• Auf häufig gefilterten oder gejointen Spalten | • Bei ausreichend selektiven Werten | • Nicht automatisch auf jede Spalte setzen

58
New cards

Was bedeutet Selektivität eines Index?

• Beschreibt, wie stark ein Wert die Datenmenge einschränkt | • Hohe Selektivität bedeutet wenige Treffer pro Wert | • Indizes auf sehr gleichförmigen Spalten helfen oft weniger

59
New cards

Was ist ein Query Execution Plan?

• Zeigt, wie die Datenbank eine Abfrage ausführt | • Enthält Scans, Joins, Sortierungen und geschätzte Kosten | • Hilft bei Performance-Problemen

60
New cards

Was ist ein Full Table Scan?

• Datenbank liest die gesamte Tabelle | • Kann bei großen Tabellen teuer sein | • Ist nicht immer schlecht, etwa wenn viele Zeilen benötigt werden

61
New cards

Wie optimiert man eine langsame SQL-Abfrage?

• Nur benötigte Spalten und Zeilen auswählen | • Join-Schlüssel und Filter prüfen | • Indizes und Execution Plan analysieren

62
New cards

Warum sollte man SELECT * vermeiden?

• Liest unnötige Spalten | • Erhöht Datenübertragung und kann Abfragen verlangsamen | • Macht Abfragen weniger robust gegenüber Schemaänderungen

63
New cards

Was ist Normalisierung?

• Strukturiert Daten zur Reduktion von Redundanz | • Teilt Informationen in logisch getrennte Tabellen | • Verbessert Konsistenz, kann aber mehr Joins erfordern

64
New cards

Was ist die erste Normalform?

• Jede Zelle enthält einen atomaren Wert | • Keine wiederholenden Spaltengruppen | • Jede Zeile ist eindeutig identifizierbar

65
New cards

Was ist die zweite Normalform?

• Erfüllt die erste Normalform | • Nicht-Schlüsselattribute hängen vom gesamten zusammengesetzten Schlüssel ab | • Verhindert partielle Abhängigkeiten

66
New cards

Was ist die dritte Normalform?

• Erfüllt die zweite Normalform | • Nicht-Schlüsselattribute hängen nicht voneinander ab | • Reduziert transitive Abhängigkeiten

67
New cards

Was ist Denormalisierung?

• Bewusstes Zusammenführen oder Wiederholen von Daten | • Kann Leseabfragen beschleunigen | • Erhöht Redundanz und Pflegeaufwand

68
New cards

Was ist ein Datenbankschema?

• Definiert Struktur und Beziehungen der Datenbank | • Enthält Tabellen, Spalten, Datentypen und Constraints | • Dient als formaler Bauplan

69
New cards

Was ist ein Constraint?

• Regel zur Sicherung gültiger Daten | • Beispiele: PRIMARY KEY, FOREIGN KEY, UNIQUE, NOT NULL, CHECK | • Wird direkt von der Datenbank erzwungen

70
New cards

Was macht UNIQUE?

• Verhindert doppelte Werte oder Wertekombinationen | • Kann zusätzlich zum Primärschlüssel genutzt werden | • Umgang mit NULL hängt vom Datenbanksystem ab

71
New cards

Was macht NOT NULL?

• Erzwingt einen vorhandenen Wert | • Verhindert fehlende Einträge in einer Spalte | • Soll nur bei fachlich wirklich verpflichtenden Feldern eingesetzt werden

72
New cards

Was macht CHECK?

• Erzwingt eine Bedingung für Spaltenwerte | • Beispiel: preis >= 0 | • Verbessert Datenqualität direkt in der Datenbank

73
New cards

Was ist eine Transaktion?

• Gruppe von Operationen als logische Einheit | • Wird vollständig ausgeführt oder zurückgerollt | • Schützt Datenkonsistenz

74
New cards

Wofür steht ACID?

• Atomicity: alles oder nichts | • Consistency: Regeln bleiben gültig | • Isolation und Durability: parallele Sicherheit und dauerhafte Speicherung

75
New cards

Was macht COMMIT?

• Speichert Änderungen einer Transaktion dauerhaft | • Danach sind sie normalerweise nicht mehr rückgängig zu machen | • Beendet die aktuelle Transaktion

76
New cards

Was macht ROLLBACK?

• Macht noch nicht bestätigte Änderungen rückgängig | • Hilfreich bei Fehlern | • Funktioniert nur innerhalb der Transaktionsgrenzen

77
New cards

Was ist Isolation bei Transaktionen?

• Regelt Sichtbarkeit paralleler Änderungen | • Verhindert bestimmte Inkonsistenzen | • Höhere Isolation kann Leistung reduzieren

78
New cards

Was ist ein Dirty Read?

• Eine Transaktion liest noch nicht bestätigte Änderungen einer anderen | • Diese Änderungen könnten zurückgerollt werden | • Kann zu inkonsistenten Ergebnissen führen

79
New cards

Was ist ein Deadlock?

• Transaktionen warten gegenseitig auf gesperrte Ressourcen | • Keine kann fortfahren | • Datenbank löst meist eine Transaktion auf

80
New cards

Was ist OLTP?

• Systeme für viele kleine operative Transaktionen | • Beispiele: Bestellungen oder Buchungen | • Optimiert für schnelle Schreib- und Lesevorgänge

81
New cards

Was ist OLAP?

• Systeme für analytische Abfragen über große Datenmengen | • Beispiele: Reporting und Business Intelligence | • Optimiert für Aggregationen und historische Analysen

82
New cards

Was ist ein Data Warehouse?

• Zentrale Datenbasis für Analyse und Reporting | • Integriert Daten aus mehreren Quellsystemen | • Enthält häufig bereinigte historische Daten

83
New cards

Was ist eine Faktentabelle?

• Enthält messbare Ereignisse oder Kennzahlen | • Beispiele: Verkäufe, Mengen oder Umsätze | • Verweist auf Dimensionstabellen

84
New cards

Was ist eine Dimensionstabelle?

• Enthält beschreibende Merkmale | • Beispiele: Kunde, Produkt, Zeit oder Standort | • Dient zum Filtern und Gruppieren von Fakten

85
New cards

Was ist ein Star Schema?

• Eine zentrale Faktentabelle mit direkt verbundenen Dimensionstabellen | • Einfach und performant für Analysen | • Typisch in Data Warehouses

86
New cards

Was ist ein Slowly Changing Dimension?

• Verfahren zum Umgang mit veränderten Dimensionsmerkmalen | • Typ 1 überschreibt alte Werte | • Typ 2 speichert historische Versionen

87
New cards

Was ist eine Datenbank-View im BI-Kontext?

• Stellt vorbereitete, konsistente Daten für Reports bereit | • Verbirgt komplexe Joins | • Kann Governance und Wiederverwendung verbessern

88
New cards

Was ist SQL Injection?

• Angriff durch manipulierte Eingaben in SQL-Abfragen | • Kann Daten lesen oder verändern | • Schutz durch parametrisierte Queries und sichere Rechte

89
New cards

Warum sind parametrisierte Queries wichtig?

• Trennen SQL-Code von Nutzereingaben | • Reduzieren Risiko von SQL Injection | • Sind sicherer als String-Zusammenbau

90
New cards

Was bedeutet Datenbankberechtigung nach dem Least-Privilege-Prinzip?

• Nutzer erhalten nur notwendige Rechte | • Reduziert Schaden bei Fehlern oder Angriffen | • Lesezugriff und Schreibzugriff getrennt vergeben

91
New cards

Wie findet man fehlende Werte pro Spalte?

• COUNT(*) mit COUNT(spalte) vergleichen | • Alternativ SUM(CASE WHEN spalte IS NULL THEN 1 ELSE 0 END) | • Ergebnis als Anzahl oder Anteil berichten

92
New cards

Wie findet man doppelte Schlüssel?

• Nach Schlüssel gruppieren | • COUNT() berechnen | • Nur Gruppen mit COUNT() > 1 behalten

93
New cards

Wie berechnet man den Umsatz pro Kunde?

• Nach Kundenschlüssel gruppieren | • SUM(umsatz) berechnen | • Bei Bedarf Kundenstammdaten per JOIN ergänzen

94
New cards

Wie berechnet man die Conversion Rate?

• Anzahl Conversions durch Anzahl relevanter Kontakte teilen | • Datentypen beachten, damit keine Ganzzahldivision entsteht | • Definition von Kontakt und Conversion klar festlegen

95
New cards

Wie berechnet man den Anteil einer Gruppe am Gesamtwert?

• Gruppenwert mit SUM berechnen | • Gesamtsumme als Window Function verwenden | • Gruppenwert durch Gesamtsumme teilen

96
New cards

Wie erklärt man eine SQL-Abfrage im Interview?

• Zuerst gewünschtes Ergebnis beschreiben | • Dann Datenquellen, Join-Logik und Filter erklären | • Zum Schluss Aggregation, Randfälle und mögliche Duplikate prüfen

97
New cards

Was ist bei einer SQL-Aufgabe im Interview besonders wichtig?

• Nicht sofort losschreiben, sondern Tabellen und Kardinalitäten klären | • NULL-Werte und Duplikate berücksichtigen | • Lesbare Lösung mit nachvollziehbarer Logik liefern