MWCodebymw.de ↗
🗄️ SQL

SQL-Snippets

Alle Snippets für SQL — copy-&-paste-fertig, erklärt und aus der Praxis.

sql_strict_tabellen_sq.sqlSQL
Fortgeschritten

STRICT-Tabellen in SQLite: wenn „drei“ nicht mehr in eine INTEGER-Spalte passt

SQLite nimmt in einer INTEGER-Spalte klaglos den Text „drei“ entgegen und speichert ihn als Text. Das ist kein Fehler, sondern Absicht – und trotzdem der Grund für Auswertungen, die still falsche Zahlen liefern. Ein Schlüsselwort schaltet es ab.

15. August 2026 · 2 Aufrufe · · KIMit Hilfe von KI generiert
sql_lag_differenz_vorz.sqlSQL
Fortgeschritten

Wie viel mehr als gestern? Differenz zur Vorzeile mit LAG() in SQL

„Wie viele Besucher heute im Vergleich zu gestern?" – der Reflex ist ein Self-Join auf die Vorzeile. Mit der Fensterfunktion LAG() bekommst du den Wert der vorherigen Zeile direkt daneben, ohne die Tabelle ein zweites Mal anzufassen.

12. August 2026 · 12 Aufrufe · · KIMit Hilfe von KI generiert
sql_lag_lead_vorzeile_.sqlSQL
Fortgeschritten

Vergleich zur Vorzeile mit LAG() – wie stark hat sich ein Wert verändert

„Wie viele Besucher mehr als gestern?" ist in SQL erstaunlich fummelig, wenn man es mit einem Self-Join löst. Mit der Fensterfunktion LAG() greifst du direkt auf die vorherige Zeile zu – und rechnest die Differenz in einer einzigen, lesbaren Abfrage.

11. August 2026 · 18 Aufrufe · · KIMit Hilfe von KI generiert
sql_returning_sqlite.sqlSQL
Fortgeschritten

RETURNING in SQLite – die geschriebene Zeile sofort zurückbekommen

Nach einem INSERT oder UPDATE noch einmal SELECTen, um zu sehen, was drinsteht? Muss nicht sein. RETURNING liefert die betroffenen Zeilen direkt aus dem schreibenden Statement – ohne zweite Abfrage und ohne die Lücke dazwischen.

5. August 2026 · 15 Aufrufe · · KIMit Hilfe von KI generiert
sql_recursive_cte_baum.sqlSQL
Fortgeschritten

WITH RECURSIVE – Kategoriebäume und Kommentar-Threads in einer einzigen Abfrage

Kategorien mit Unterkategorien, Kommentare mit Antworten, Ordner in Ordnern: Die meisten holen sich so etwas mit einer Schleife und einer Abfrage pro Ebene. Eine rekursive CTE holt den ganzen Baum in einem Rutsch – inklusive Tiefe und Pfad.

29. Juli 2026 · 19 Aufrufe · · KIMit Hilfe von KI generiert
sql_union_vs_union_all.sqlSQL
Einsteiger

UNION vs. UNION ALL – zwei Abfragen zusammenlegen, ohne Zeilen zu verlieren

UNION entfernt Duplikate. Das klingt hilfreich, kostet aber eine komplette Sortierung – und wirft dir stillschweigend echte Zeilen weg, die zufällig identisch aussehen. UNION ALL ist fast immer die richtige Wahl.

27. Juli 2026 · 14 Aufrufe · · KIMit Hilfe von KI generiert
sql_view_wiederverwend.sqlSQL
Einsteiger

CREATE VIEW – die Abfrage, die du nur einmal schreibst

Wenn dieselbe 15-zeilige Abfrage an vier Stellen im Code steht, ändert man sie irgendwann an dreien. Eine View gibt ihr einen Namen – danach steht sie nur noch an einer Stelle.

27. Juli 2026 · 14 Aufrufe · · KIMit Hilfe von KI generiert
sql_keyset_pagination_.sqlSQL
Fortgeschritten

Keyset-Pagination – warum LIMIT ... OFFSET auf Seite 500 kriecht

OFFSET 10000 heißt für die Datenbank: zehntausend Zeilen lesen und wegwerfen. Und wenn zwischendurch jemand etwas einfügt, sieht der Nutzer beim Blättern denselben Eintrag zweimal. Beides löst dieselbe Umstellung.

27. Juli 2026 · 14 Aufrufe · · KIMit Hilfe von KI generiert
sql_fts5_volltextsuche.sqlSQL
Fortgeschritten

Volltextsuche in SQLite mit FTS5 – schneller und besser als LIKE '%wort%

LIKE '%suchwort%' kann keinen Index nutzen und liest bei jeder Suche die ganze Tabelle. FTS5 ist in SQLite eingebaut, findet auch Wortanfänge und sortiert die Treffer nach Relevanz – ohne Elasticsearch daneben.

27. Juli 2026 · 15 Aufrufe · · KIMit Hilfe von KI generiert
sql_json_sqlite_json_e.sqlSQL
Fortgeschritten

JSON in SQLite abfragen – json_extract und der ->>-Operator

Ein JSON-Feld in der Datenbank ist bequem, bis man danach filtern will. SQLite kann direkt hineinschauen – und mit einem Index auf dem richtigen Ausdruck ist das sogar schnell.

27. Juli 2026 · 15 Aufrufe · · KIMit Hilfe von KI generiert
sql_exists_vs_in.sqlSQL
Fortgeschritten

EXISTS statt IN – Unterabfragen, die auch mit NULL richtig rechnen

"Zeig mir alle Kunden, die schon mal bestellt haben" – dafür greifen die meisten zu IN (SELECT …). Das funktioniert, bis eine einzige NULL in der Unterabfrage steht: dann liefert NOT IN plötzlich gar nichts mehr. EXISTS hat dieses Problem nicht.

27. Juli 2026 · 10 Aufrufe · · KIMit Hilfe von KI generiert
sql_group_concat_liste.sqlSQL
Fortgeschritten

Werte einer Gruppe zu einer Liste zusammenfassen – GROUP_CONCAT in SQLite

Du willst pro Zeile nicht nur zählen, sondern die Werte selbst sehen – etwa alle Tags eines Beitrags als „PHP, SQL, Tipp" in einer Spalte? Genau dafür gibt es GROUP_CONCAT. Ich zeige dir die Grundform, ein eigenes Trennzeichen und wie du Dubletten sortiert loswirst.

24. Juli 2026 · 16 Aufrufe · · KIMit Hilfe von KI generiert
Seite 1 / 2Ältere →