SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

  1. Startseite
  2. Blog
  3. Datenbanken und SQL

Datenbanken und SQL

SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

Der Unterschied zwischen ihnen besteht nur aus einem einzigen Wort, aber die falsche Wahl kann stillschweigend zu einer falschen Gesamtsumme führen. Sehen Sie sich beide anhand realer Daten an, lernen Sie die Regeln kennen, die sie gemeinsam haben, und lesen Sie, was passiert ist, als wir sie auf eine Million Zeilen getimt haben.

8 Min. Lesezeit
SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

Das Wichtigste

  • UNION kombiniert Ergebnisse und entfernt doppelte Zeilen. UNION ALL behält jede Zeile.
  • Da die Kostendeduplizierung funktioniert, ist UNION ALL in der Regel schneller zu berechnen.
  • Die Verwendung von UNION vor SUM kann stillschweigend echte Werte entfernen und die falsche Antwort geben.
  • Der Standardwert ist UNION ALL, es sei denn, Sie möchten ausdrücklich, dass Duplikate entfernt werden.

Beide Operatoren stapeln die Ergebnisse zweier Abfragen übereinander, sodass SQL UNION vs. UNION ALL wie eine untergeordnete Wahl erscheinen könnte. Das ist es nicht. Ein zusätzliches Wort ändert sowohl Ihr Ergebnis als auch den Arbeitsaufwand der Datenbank.

Wir haben hier jede Abfrage in SQLite 3.50 ausgeführt, und die angezeigten Ergebnisse und Zeitvorgaben stammen aus diesen Läufen. Das Grundverhalten ist Standard-SQL in allen gängigen Datenbanken. Die Zeitvorgaben unterscheiden sich jedoch je nach Datenbank, Daten und Hardware. Betrachten Sie unsere daher als Beispiel.

Die kurze Antwort

UNION kombiniert zwei Ergebnismengen und gibt nur unterschiedliche Zeilen zurück. UNION ALL kombiniert sie und gibt alles zurück, einschließlich Duplikate. Das ist der ganze Unterschied, und im Rest dieses Artikels geht es darum, warum er wichtig ist.

UNION vs. UNION ALL nebeneinander

Aspekt UNION UNION ALLE
Doppelte Zeilen Entfernt Behalten
Zusätzliche Arbeit Es müssen Duplikate gefunden werden Keine
Übliche Geschwindigkeit Langsamer Schneller
Zurückgegebene Zeilen Gleich oder weniger Alle von ihnen
Sicher vor SUM oder COUNT? Oft nicht Ja
Am besten für Einzigartige Listen Zusammenführen von Daten, Protokollen, Summen

Die Beispieldaten

Stellen Sie sich einen Shop vor, der Online- und In-Store-Bestellungen in separaten Tabellen speichert. Beachten Sie, dass Asha zwei identische Online-Bestellungen und eine identische Bestellung im Geschäft hat.

CREATE TABLE online_orders (customer TEXT, total INT);
CREATE TABLE store_orders (customer TEXT, total INT);

INSERT INTO online_orders VALUES ('Asha',100), ('Ben',200), ('Asha',100);
INSERT INTO store_orders VALUES ('Asha',100), ('Dev',300);

Sehen Sie den Unterschied

SELECT customer, total FROM online_orders
UNION
SELECT customer, total FROM store_orders;

-- Asha | 100
-- Ben  | 200
-- Dev  | 300
SELECT customer, total FROM online_orders
UNION ALL
SELECT customer, total FROM store_orders;

-- Asha | 100
-- Ben  | 200
-- Asha | 100
-- Asha | 100
-- Dev  | 300

Aus fünf Eingabezeilen wurden mit UNION drei, und alle fünf blieben bei UNION ALL. Zwei Dinge sind zu beachten:

  • UNION hat Duplikate aus dem gesamten Ergebnis entfernt, einschließlich derjenigen in der ersten Tabelle. Es handelt sich nicht nur um einen tabellenübergreifenden Vergleich.
  • Eine Zeile zählt nur dann als Duplikat, wenn jede ausgewählte Spalte übereinstimmt.

Wenn Sie wirklich eine eindeutige Liste wünschen, ist UNION genau das Richtige. Dies bietet jedem Kunden, der über einen der beiden Kanäle gekauft hat:

SELECT customer FROM online_orders
UNION
SELECT customer FROM store_orders;

-- Asha
-- Ben
-- Dev

Der falsche Fehler

Aus diesem Grund ist die Wahl wirklich wichtig. Angenommen, Sie möchten einen Gesamtumsatz erzielen. Die oben genannten Bestellungen ergeben zusammen 800. Sehen Sie, was jeder Betreiber gibt:

SELECT SUM(total) FROM (
  SELECT total FROM online_orders
  UNION
  SELECT total FROM store_orders
);
-- 600

SELECT SUM(total) FROM (
  SELECT total FROM online_orders
  UNION ALL
  SELECT total FROM store_orders
);
-- 800

Die Version UNION ist um 200 falsch. Da wir nur die Spalte total ausgewählt haben, sahen drei separate 100-Rupien-Bestellungen wie Duplikate aus und wurden zu einer zusammengefasst. Es gibt keine Fehlermeldung und 600 scheint eine absolut glaubwürdige Zahl zu sein. Diese Art von stillem Bug kann monatelang in einem Finanzbericht stecken bleiben.

Tipp: Zwei identisch aussehende Reihen können zwei echte Ereignisse sein. Bevor Sie UNION verwenden, fragen Sie, ob identische Zeilen bedeuten, dass derselbe Sachverhalt zweimal erfasst wurde, oder ob es sich um zwei unterschiedliche Sachverhalte handelt. Bei Verkäufen, Zahlungen und Protokolleinträgen ist es normalerweise der zweite.

Regeln müssen beide befolgen

Für beide Betreiber gelten die gleichen Anforderungen:

  1. Jeder SELECT muss die gleiche Anzahl von Spalten zurückgeben.
  2. Spalten werden nach Position und nicht nach Namen abgeglichen. Behalten Sie daher die gleiche Reihenfolge bei.
  3. Datentypen an jeder Position müssen kompatibel sein.
  4. Die Namen der Ergebnisspalten stammen vom ersten SELECT.
  5. ORDER BY steht ganz am Ende und gilt für das gesamte Ergebnis.

Ein Verstoß gegen die erste Regel führt zu einem Fehler. Hier ist die Nachricht von SQLite:

SELECT customer, total FROM online_orders
UNION
SELECT customer FROM store_orders;

-- SELECTs to the left and right of UNION do not have
-- the same number of result columns

Die zweite Regel ist gefährlicher, da sie ohne Fehler fehlschlagen kann. Wenn Sie zwei Spalten desselben Typs vertauschen, z. B. first_name und last_name, wird die Abfrage ausgeführt und die Daten werden falsch ausgegeben. SQLite ist auch in Bezug auf Typen locker, während Datenbanken wie PostgreSQL strenger sind und möglicherweise eine explizite Angabe erfordern CAST.

Beschriften Sie die Quelle

Ein sehr praktischer Trick besteht darin, eine konstante Spalte hinzuzufügen, die anzeigt, woher jede Zeile stammt. Da die Beschriftung unterschiedlich ist, können Zeilen aus verschiedenen Tabellen nicht mehr als Duplikate voneinander behandelt werden.

SELECT customer, total, 'online' AS channel FROM online_orders
UNION ALL
SELECT customer, total, 'store' FROM store_orders
ORDER BY customer, channel;

-- Asha | 100 | online
-- Asha | 100 | online
-- Asha | 100 | store
-- Ben  | 200 | online
-- Dev  | 300 | store

Sobald Ihre Daten eine Bezeichnung haben, können Sie sie mit GROUP BY gruppieren, um Verkäufe nach Kanal zu melden. Wenn Sie mehrere Schritte kombinieren müssen, schließen Sie die Union in einen CTE ein, damit sie lesbar bleibt.

Leistung: Was in unserem Test passiert ist

Um Duplikate zu entfernen, muss die Datenbank Zeilen vergleichen, typischerweise durch Sortieren oder Hashing. UNION ALL kann diesen Schritt überspringen. Wir haben zwei Tabellen mit jeweils 500.000 Zeilen erstellt, die Zufallszahlen von 0 bis 50.000 enthalten, sodass es viele Duplikate gab. Wir haben jede Abfrage mehrmals ausgeführt und die beste Zeit beibehalten.

Zuerst haben wir die Ergebnisse gezählt, sodass die Zeit, die für das Zurücksenden von Zeilen an unser Programm aufgewendet wurde, keinen Einfluss auf den Vergleich hatte:

Abfrage, eingeschlossen in COUNT(*) Reihen Beste Zeit
UNION 50,001 261 ms
UNION ALLE 1,000,000 Unter 1 ms

Die große Lücke liegt zum Teil daran, dass SQLite diese Zählung berechnen kann, ohne jede Zeile lesen zu müssen. Lesen Sie das also bitte nicht als „tausendmal schneller“. Es zeigt jedoch die Kernidee: UNION musste echte Arbeit leisten und UNION ALL nicht.

Dann haben wir alle Zeilen in Python abgerufen und das Ergebnis war umgekehrt:

Abfrage, alle Zeilen abrufen Zurückgegebene Zeilen Beste Zeit
UNION 50,001 277 ms
UNION ALLE 1,000,000 392 ms

Hier dauerte UNION ALL länger, da es zwanzigmal so viele Zeilen lieferte. Die Deduplizierung hat es nicht verlangsamt. Der Umgang mit einer Million Zeilen war. Die ehrliche Regel lautet also, dass die Berechnung von UNION ALL für die Datenbank günstiger ist, aber auch die Größe des Ergebnisses spielt eine Rolle. Viele Online-Charts reduzieren dies auf „UNION ALL ist immer schneller“, und unser Test zeigt, warum das nicht so einfach ist.

Entscheiden Sie sich auch nicht nur aufgrund der Geschwindigkeit. Wählen Sie zuerst den Operator aus, der die richtige Antwort gibt, und stimmen Sie dann ab. Wenn eine Abfrage langsam ist, lesen Sie unseren Leitfaden zur SQL-Abfrageoptimierung.

Wann jeweils zu verwenden ist

Verwenden Sie UNION ALL, wenn:

  • Sie führen Daten aus ähnlichen Tabellen zusammen, beispielsweise aus monatlichen Partitionen.
  • Anschließend berechnen Sie Summen oder Zählungen.
  • Sie wissen, dass sich die Eingaben nicht überschneiden dürfen.
  • Duplikate sind sinnvoll, beispielsweise in Protokollen oder Prüfaufzeichnungen.

Verwenden Sie UNION, wenn:

  • Sie benötigen eine eindeutige Liste, beispielsweise jede E-Mail-Adresse in zwei Systemen.
  • Überlappende Quellen enthalten denselben Sachverhalt mehr als einmal.

Behandeln Sie UNION ALL als Standard und verwenden Sie UNION bewusst. Das Hinzufügen einer WHERE-Klausel zu jedem Zweig, um frühzeitig zu filtern, hilft beiden.

INTERSECT und EXCEPT

Zwei verwandte Mengenoperatoren beantworten unterschiedliche Fragen. Beide folgen den gleichen Spaltenregeln:

SELECT customer FROM online_orders
INTERSECT
SELECT customer FROM store_orders;
-- Asha  (bought in both channels)

SELECT customer FROM online_orders
EXCEPT
SELECT customer FROM store_orders;
-- Ben   (online only)

Oracle verwendet traditionell MINUS anstelle von EXCEPT, und die Unterstützung dieser Operatoren variiert je nach Datenbank und Version ein wenig.

UNION vs. JOIN

Diese werden oft verwechselt, aber sie kombinieren Daten in unterschiedliche Richtungen:

Betrieb Richtung Ergebnis
UNION Vertikal Fügt weitere Zeilen hinzu
TRETEN SIE MIT Horizontal Fügt weitere Spalten hinzu

Häufige Fehler

  • Verwenden Sie UNION aus Gewohnheit. Es kann Sie an Geschwindigkeit kosten oder gültige Zeilen entfernen.
  • Zu wenige Spalten auswählen. Das Weglassen einer ID führt dazu, dass verschiedene Zeilen identisch aussehen.
  • Nicht übereinstimmende Spaltenreihenfolge. Werte können ohne Fehler in der falschen Spalte landen.
  • Hinzufügen von ORDER BY zu jedem Zweig. Am Ende einmal sortieren.
  • Verwendung von UNION zum Patchen eines fehlerhaften Joins. Wenn aufgrund eines Joins Duplikate auftreten, reparieren Sie den Join.
  • Ergebnisreihenfolge vorausgesetzt. Ohne ORDER BY ist die Zeilenreihenfolge für keinen der Operatoren garantiert.

Fazit

Stellen Sie jedes Mal eine Frage: Sind identische Zeilen derselbe Sachverhalt oder unterschiedliche Sachverhalte? Wenn sie getrennt sind oder eine Überlappung nicht möglich ist, verwenden Sie UNION ALL. Wenn Sie eine eindeutige Liste benötigen, verwenden Sie UNION. Um Ihre eigenen Berichte zu überprüfen, suchen Sie in Ihrem Code nach UNION in der Nähe von SUM oder COUNT und bestätigen Sie, dass diese Summen wirklich stimmen.

Häufige Fragen

Was ist der Unterschied zwischen UNION und UNION ALL?

UNION kombiniert zwei Ergebnismengen und entfernt doppelte Zeilen. UNION ALL kombiniert sie und behält jede Zeile, einschließlich Duplikate.

Was ist schneller, UNION oder UNION ALL?

UNION ALL ist in der Regel günstiger in der Berechnung, da keine Prüfung auf Duplikate durchgeführt wird. Wie unser Test gezeigt hat, kann es insgesamt dennoch länger dauern, ein weitaus größeres Ergebnis zu erhalten.

Entfernt UNION Duplikate innerhalb einer Tabelle?

Ja. Es entfernt Duplikate im gesamten kombinierten Ergebnis, einschließlich identischer Zeilen, die alle aus derselben Tabelle stammen.

Müssen Spaltennamen in einer UNION übereinstimmen?

Nein. Spalten werden nach Position abgeglichen und das Ergebnis verwendet Namen aus dem ersten SELECT. Die Spaltenanzahl muss übereinstimmen und die Typen müssen kompatibel sein.

Kann ich ORDER BY mit UNION verwenden?

Ja, aber platzieren Sie ein ORDER BY ganz am Ende der Anweisung. Es sortiert das gesamte kombinierte Ergebnis und nicht einen einzelnen Zweig.

Lerne weiter

Arbeiten Sie mit Stack Quora

Benötigen Sie Hilfe beim Testen, WordPress oder SEO?

Wir helfen Teams, bessere Software zu liefern und ihre Websites zu erweitern. Sagen Sie uns, woran Sie gerade arbeiten, und wir schlagen Ihnen einen klaren nächsten Schritt vor.

Lesen Sie weiter

Weitere Anleitungen finden Sie unter Tests, KI und moderne Entwicklung

Hat Ihnen dieser Artikel gefallen? Wählen Sie ein Thema und springen Sie direkt in unsere neuesten Tutorials.

Künstliche Intelligenz

KI-Halluzinationen erklärt: Warum Sprachmodelle Dinge erfinden und wie man sie reduziert

KI-Halluzinationen erklärt: Was sie sind, warum Sprachmodelle sie produzieren, gängige Typen, wie man sie mit Erdung und Eingabeaufforderungen reduz…

Artikel lesen →
DevOps

Erklärte Umgebungsvariablen: .env-Dateien, Geheimnisse und Konfiguration richtig gemacht

Umgebungsvariablen anhand von Python-Beispielen erklärt, die wir ausgeführt haben: Sie lesen und festlegen, warum jeder Wert ein String ist, .env-Da…

Artikel lesen →
Softwareentwicklung

API-Ratenbegrenzung erklärt: Algorithmen, Header und Behandlung von 429-Fehlern

API-Ratenbegrenzung anhand einer von uns durchgeführten Simulation erklärt: Token-Bucket, festes Fenster, gleitendes Fenster, 429 Antworten, Ratenbe…

Artikel lesen →
Testautomatisierung

Spott in Python: unittest.mock, Patch und die Fehler, die Tests zum Lügen machen

Mocking in Python mit unittest.mock, getestet: Mock und return_value, side_effect, Patchen, wo ein Name verwendet wird, Spezifikation und Autospec, …

Artikel lesen →
Softwaretests

Code-Abdeckung erklärt: Leitungs- und Zweigstellenabdeckung und was 100 % wirklich bedeutet

Erklärung der Codeabdeckung anhand eines echten Coverage.py-Laufs: Zeilen-, Zweig- und Bedingungsabdeckung, Lesen eines Berichts, warum bei 100 % Ab…

Artikel lesen →
Datenbanken & SQL

DELETE vs. TRUNCATE vs. DROP in SQL: Unterschiede, Rollback und Verwendungszweck

DELETE vs. TRUNCATE vs. DROP erklärt mit getestetem SQL: was jeweils entfernt wird, Rollback, Trigger, Identitätsrücksetzung, Geschwindigkeit und wi…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-Ansichten: Erstellen, nutzen und vermeiden Sie Fallstricke mit Beispielen

SQL-Ansichten anhand der von uns ausgeführten Abfragen erklärt: Erstellen einer Ansicht, Live-Ergebnisse, Ausblenden von Spalten, Leistung, aktualis…

Artikel lesen →
Softwareentwicklung

TypeScript-Schnittstelle vs. Typ: Echte Unterschiede, getestet mit dem Compiler

TypeScript-Schnittstelle vs. Typ, überprüft mit dem echten Compiler: Was beide können, was nur einer kann, Deklarationszusammenführung, Erweiterunge…

Artikel lesen →
Softwareentwicklung

Python *args und **kwargs erklärt: Flexible Funktionen mit klaren Beispielen

Python *args und **kwargs erklärt mit Code, den wir ausgeführt haben: Packen und Entpacken, Parameterreihenfolge, Nur-Schlüsselwort- und Nur-Positio…

Artikel lesen →
Softwareentwicklung

Python-Lambda-Funktionen: Syntax, tatsächliche Verwendung und wann man sie nicht verwendet

Python-Lambda-Funktionen erklärt mit Code, den wir ausgeführt haben: Syntax, Sortierung mit Schlüssel, Karte und Filter, Abschlüsse, die Late-Bindin…

Artikel lesen →
Künstliche Intelligenz

Was sind KI-Agenten? Wie sie funktionieren, mit einer einfachen Agentenschleife, die Sie ausführen können

Was sind KI-Agenten? Eine einfache Anleitung zur Agentenschleife, zu Tools, Speicher und Leitplanken, mit einer kleinen Python-Schleife, die wir aus…

Artikel lesen →
DevOps

Überwachung vs. Beobachtbarkeit: Der wahre Unterschied, mit Protokollen, Metriken und Traces

Überwachung vs. Beobachtbarkeit erklärt: bekannte und unbekannte Fehler, Protokolle, Metriken und Spuren, eine exemplarische Vorgehensweise für Chec…

Artikel lesen →
DevOps

Docker-Volumes vs. Bind Mounts: Containerdaten auf die richtige Art und Weise beibehalten

Docker-Volumes vs. Bind-Mounts erklärt: Warum Containerdaten verschwinden, benannte Volumes, Bind-Mounts, tmpfs, Compose-Beispiele, Backups, Berecht…

Artikel lesen →
Testautomatisierung

TDD vs. BDD: Hauptunterschiede, eine Funktion, die auf beide Arten entwickelt wurde und wann sie jeweils verwendet werden sollte

TDD vs. BDD erklärt mit einer Rabattfunktion, die in beide Richtungen aufgebaut ist: Rot-Grün-Refaktor mit Code, den wir ausgeführt haben, Gegeben-W…

Artikel lesen →
Softwaretests

Benutzerakzeptanztests (UAT): Prozess, Checkliste und reale Beispiele

Benutzerakzeptanztests erklärt: Wer führt ihn durch, wie unterscheidet er sich von der Qualitätssicherung, ein siebenstufiger Prozess, eine UAT-Test…

Artikel lesen →
Datenbanken & SQL

Erklärte SQL-NULL-Werte: IS NULL, COALESCE, NULLIF und die zu vermeidenden Fallen

SQL-NULL-Werte, die mit von uns ausgeführten Abfragen erklärt wurden: dreiwertige Logik, IS NULL, COALESCE, NULLIF, wie Aggregate, Joins und Sortier…

Artikel lesen →
Datenbanken & SQL

SQL CASE WHEN-Anweisung: Syntax, reale Beispiele und häufige Fehler

SQL CASE WHEN anhand der von uns ausgeführten Abfragen erklärt: einfache und durchsuchte Formulare, Bedingungsreihenfolge, Pivots mit SUM, COUNT-Tri…

Artikel lesen →
Softwareentwicklung

Was ist JWT? JSON-Web-Tokens anhand eines funktionierenden Beispiels erklärt

Was ist JWT? JSON Web Tokens erklärt: die drei Teile, ein Token, das in dem von uns ausgeführten Code erstellt und manipuliert wurde, JWT vs. Sitzun…

Artikel lesen →
Softwareentwicklung

Erklärte JavaScript-Ereignisschleife: Aufrufstapel, Mikrotasks und Timer mit Beispielen

Die JavaScript-Ereignisschleife wurde mit dem von uns ausgeführten Code erklärt: Aufrufstapel, Aufgaben- und Mikrotask-Warteschlangen, warum setTime…

Artikel lesen →
Softwareentwicklung

Erklärung von Python-Generatoren und -Ertrag: Sparen Sie Speicher mit echten Beispielen

Python-Generatoren und Yield anhand des von uns ausgeführten Codes erklärt: wie sie angehalten und fortgesetzt werden, gemessene Speichereinsparunge…

Artikel lesen →
Künstliche Intelligenz

Was sind Einbettungen? Vektoren und Kosinusähnlichkeit einfach erklärt

Was sind Einbettungen? Ein Leitfaden in einfacher Sprache zu Vektoren, Kosinusähnlichkeit und semantischer Suche, mit einem kleinen Beispiel, das wi…

Artikel lesen →
DevOps

Blau-Grün vs. Canary-Bereitstellung: Unterschiede, Kompromisse und Auswahl

Blue-Green vs. Canary-Bereitstellung erklärt: Funktionsweise, Kosten, Risiko und Rollback, stabiles Benutzer-Bucketing, das wir getestet haben, Date…

Artikel lesen →
Testautomatisierung

Flaky-Tests: Was sie verursacht und wie man sie endgültig behebt

Flaky-Tests wurden anhand von Demos erklärt, die wir durchgeführt haben: die Hauptursachen, wie man sie bestätigt und diagnostiziert, richtige Korre…

Artikel lesen →
Softwaretests

Lasttest vs. Stresstest: Unterschiede, Metriken und k6-Beispiele

Erläuterungen zu Lasttests und Stresstests: Was die einzelnen Tests beweisen, Spike- und Soak-Tests, welche Kennzahlen wichtig sind, warum Durchschn…

Artikel lesen →
Softwaretests

Testfall vs. Testszenario: Hauptunterschiede, Beispiele und wann man sie jeweils verwendet

Testfall vs. Testszenario erklärt: klare Definitionen, eine Tabelle nebeneinander, eine Funktion zum Zurücksetzen von Passwörtern, die von Szenarios…

Artikel lesen →
Datenbanken & SQL

SQL-Abfrageoptimierung: Ausführungspläne lesen und langsame Abfragen mit Zeitvorgaben beheben

An einer Million Zeilen getestete SQL-Abfrageoptimierung: Ausführungspläne lesen, die richtigen Indizes hinzufügen, nicht sargierbare Filter korrigi…

Artikel lesen →
Datenbanken & SQL

SQL UNION vs. UNION ALL: Unterschiede, Beispiele und getestete Leistung

SQL UNION vs. UNION ALL anhand der von uns ausgeführten Abfragen erklärt: Duplikate, die Regeln, denen beide folgen, ein echter Datenfehler, gemesse…

Artikel lesen →
Softwareentwicklung

Tutorial zur JavaScript-Abruf-API: GET, POST, Fehlerbehandlung und Zeitüberschreitungen

Ein JavaScript-Abruf-API-Tutorial, das auf einem lokalen Server getestet wurde: GET und POST, warum 404 nicht ausgelöst wird, ein wiederverwendbarer…

Artikel lesen →
Softwareentwicklung

Umgang mit Python-Dateien: Lesen, Schreiben, CSV, JSON und Pathlib mit Beispielen

Die Handhabung von Python-Dateien wird anhand des von uns ausgeführten Codes erklärt: Öffnungsmodi, Lesen großer Dateien, CSV, JSON, Pathlib, Binärd…

Artikel lesen →
Softwareentwicklung

Python-Klassen und -Objekte: OOP-Tutorial mit echten Beispielen

Python-Klassen und -Objekte erklärt mit Code, den wir ausgeführt haben: __init__, Methoden, Klassen- und Instanzattribute, Vererbung, Eigenschaften,…

Artikel lesen →
Künstliche Intelligenz

Was ist ein großes Sprachmodell? Wie LLMs funktionieren, ohne großen Hype erklärt

Was ist ein großes Sprachmodell? LLMs im Klartext erklärt: Token, Einbettungen, Aufmerksamkeit, Training, Temperatur- und Kontextfenster, eine klein…

Artikel lesen →
DevOps

Linux-Befehle für Anfänger: Der grundlegende Terminal-Leitfaden mit Beispielen

Linux-Befehle für Anfänger, gruppiert nach Aufgaben: Navigation, Dateien, Anzeigen von Protokollen, Grep, Pipes, Berechtigungen, Prozesse und Archiv…

Artikel lesen →
Testautomatisierung

Selenium vs. Playwright: Hauptunterschiede, Code im Vergleich und welche Sie wählen sollten

Selenium vs. Playwright im Vergleich: Architektur, Wartezeit, Browser- und Sprachunterstützung, Debugging, der gleiche Test in beiden Tools, Migrati…

Artikel lesen →
Softwaretests

Äquivalenzpartitionierung: Testdesigntechnik anhand von Beispielen erklärt

Erklärung der Äquivalenzpartitionierung: Wie man gültige und ungültige Partitionen findet, Beispiele für Alter, Passwörter und Gutscheine, von uns d…

Artikel lesen →
Softwaretests

Schweregrad vs. Priorität beim Softwaretest: Unterschiede, Matrix und reale Beispiele

Schweregrad vs. Priorität beim Softwaretest erklärt: klare Definitionen, eine Vier-Wege-Matrix mit Beispielen, Stufenskalen, wer die einzelnen Punkt…

Artikel lesen →
Datenbanken & SQL

Tutorial zu SQL-Unterabfragen: Typen, korrelierte Unterabfragen und EXISTS mit Beispielen

Ein SQL-Unterabfrage-Tutorial mit Abfragen, die wir ausgeführt haben: Skalar-, IN-, FROM- und SELECT-Unterabfragen, korrelierte Unterabfragen, EXIST…

Artikel lesen →
Datenbanken & SQL

SQL-Transaktionen und ACID erklärt: COMMIT, ROLLBACK und Isolationsstufen

SQL-Transaktionen und ACID anhand einer von uns durchgeführten Banküberweisung erklärt: COMMIT, ROLLBACK, Sicherungspunkte, Sperren, Isolationsstufe…

Artikel lesen →
Softwareentwicklung

Git merge vs rebase: Unterschiede, Beispiele und wann man was nutzt

Git merge vs rebase erklärt mit echter Log-Ausgabe, einer Vergleichstabelle, der goldenen Regel des Rebase und einem sicheren Team-Workflow.

Artikel lesen →
Softwareentwicklung

Python List Comprehension: Syntax, Beispiele und wann man darauf verzichtet

Python List Comprehension erklärt: Syntax, Filter, if-else, verschachtelte Schleifen, gemessene Zeiten und Fälle, in denen eine normale for-Schleife…

Artikel lesen →
Datenbanken & SQL

SQL Joins erklärt mit Beispielen (Inner, Left, Right, Full)

SQL Joins Schritt für Schritt mit Beispieltabellen und Abfragen verstehen: INNER, LEFT, RIGHT, FULL, CROSS und SELF, plus typische Fehler und Perfor…

Artikel lesen →