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.
UNIONkombiniert Ergebnisse und entfernt doppelte Zeilen.UNION ALLbehält jede Zeile.- Da die Kostendeduplizierung funktioniert, ist
UNION ALLin der Regel schneller zu berechnen. - Die Verwendung von
UNIONvorSUMkann 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:
UNIONhat 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:
- Jeder
SELECTmuss die gleiche Anzahl von Spalten zurückgeben. - Spalten werden nach Position und nicht nach Namen abgeglichen. Behalten Sie daher die gleiche Reihenfolge bei.
- Datentypen an jeder Position müssen kompatibel sein.
- Die Namen der Ergebnisspalten stammen vom ersten
SELECT. ORDER BYsteht 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 BYist 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
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.
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.
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 →DevOpsErklä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 →SoftwareentwicklungAPI-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 →TestautomatisierungSpott 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 →SoftwaretestsCode-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 & SQLDELETE 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 & SQLErklä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 →SoftwareentwicklungTypeScript-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 →SoftwareentwicklungPython *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 →SoftwareentwicklungPython-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 IntelligenzWas 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 →DevOpsDocker-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 →TestautomatisierungTDD 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 →SoftwaretestsBenutzerakzeptanztests (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 & SQLErklä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 & SQLSQL 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 →SoftwareentwicklungWas 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 →SoftwareentwicklungErklä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 →SoftwareentwicklungErklä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 IntelligenzWas 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 →DevOpsBlau-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 →TestautomatisierungFlaky-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 →SoftwaretestsLasttest 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 →SoftwaretestsTestfall 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 & SQLSQL-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 & SQLSQL 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 →SoftwareentwicklungTutorial 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 →SoftwareentwicklungUmgang 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 →SoftwareentwicklungPython-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 IntelligenzWas 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 →DevOpsLinux-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 →TestautomatisierungSelenium 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 →SoftwaretestsSchweregrad 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 & SQLTutorial 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 & SQLSQL-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 →SoftwareentwicklungGit 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 →SoftwareentwicklungPython 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 & SQLSQL 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 →