sql database cheat-sheet mysql postgresql query dev-reference

Das ultimative SQL Cheat Sheet: Befehle, Joins und Funktionsreferenz

Ein umfassendes SQL Cheat Sheet für Entwickler. Meistern Sie SELECT, JOIN, GROUP BY und die gängigsten SQL-Funktionen mit klaren Beispielen.

Das ultimative SQL Cheat Sheet: Befehle, Joins und Funktionsreferenz

SQL (Structured Query Language) ist die Standardsprache für die Verwaltung und Bearbeitung relationaler Datenbanken. Egal ob Sie mit MySQL, PostgreSQL, SQL Server oder SQLite arbeiten, diese Kernbefehle bilden die Grundlage für Ihre Datenbankinteraktionen.

Nutzen Sie dieses Cheat Sheet als Schnellreferenz für gängige SQL-Syntax und Best Practices.


1. Grundlegende Datenabfrage

Die häufigste SQL-Aufgabe ist das Abrufen von Daten aus einer Tabelle.

Befehl Beschreibung Beispiel
SELECT Spezifiziert die abzurufenden Spalten SELECT name, age
FROM Spezifiziert die Tabelle, aus der abgerufen werden soll FROM users
WHERE Filtert die Ergebnismenge basierend auf einer Bedingung WHERE age > 18
ORDER BY Sortiert die Ergebnismenge (ASC oder DESC) ORDER BY created_at DESC
LIMIT Beschränkt die Anzahl der zurückgegebenen Zeilen LIMIT 10
DISTINCT Gibt nur eindeutige Werte zurück SELECT DISTINCT city

Beispielabfrage:

SELECT name, email
FROM users
WHERE country = 'DE'
ORDER BY name ASC
LIMIT 5;

2. SQL Joins: Daten kombinieren

Joins ermöglichen es Ihnen, Daten aus mehreren Tabellen basierend auf einer verwandten Spalte abzurufen.

  • INNER JOIN: Gibt Zeilen zurück, wenn in beiden Tabellen eine Übereinstimmung vorliegt.
  • LEFT (OUTER) JOIN: Gibt alle Zeilen aus der linken Tabelle und die übereinstimmenden Zeilen aus der rechten Tabelle zurück.
  • RIGHT (OUTER) JOIN: Gibt alle Zeilen aus der rechten Tabelle und die übereinstimmenden Zeilen aus der linken Tabelle zurück.
  • FULL (OUTER) JOIN: Gibt Zeilen zurück, wenn in einer der Tabellen eine Übereinstimmung vorliegt.

Join-Beispiel:

SELECT orders.id, users.name
FROM orders
INNER JOIN users ON orders.user_id = users.id;

3. Aggregation und Gruppierung

Aggregatfunktionen führen eine Berechnung für eine Menge von Werten aus und geben einen einzelnen Wert zurück.

Funktion Beschreibung
COUNT() Gibt die Anzahl der Zeilen zurück
SUM() Gibt die Gesamtsumme einer numerischen Spalte zurück
AVG() Gibt den Durchschnittswert zurück
MIN() Gibt den kleinsten Wert zurück
MAX() Gibt den größten Wert zurück

GROUP BY und HAVING: GROUP BY wird mit Aggregatfunktionen verwendet, um die Ergebnismenge nach einer oder mehreren Spalten zu gruppieren. HAVING wird verwendet, um Gruppen zu filtern.

SELECT department, COUNT(*)
FROM employees
GROUP BY department
HAVING COUNT(*) > 5;

4. Datenänderung (DML)

Befehle zum Hinzufügen, Aktualisieren und Entfernen von Daten.

  • INSERT: Neue Zeilen hinzufügen.
    INSERT INTO users (name, email) VALUES ('Max Mustermann', '[email protected]');
    
  • UPDATE: Bestehende Zeilen ändern.
    UPDATE users SET email = '[email protected]' WHERE id = 1;
    
  • DELETE: Zeilen entfernen.
    DELETE FROM users WHERE id = 1;
    

5. Schemadefinition (DDL)

Befehle zum Definieren und Verwalten der Datenbankstruktur.

  • CREATE TABLE: Eine neue Tabelle erstellen.
    CREATE TABLE products (
      id INT PRIMARY KEY,
      name VARCHAR(100),
      price DECIMAL(10, 2)
    );
    
  • ALTER TABLE: Eine bestehende Tabellenstruktur ändern (Spalten hinzufügen/löschen).
    ALTER TABLE users ADD last_login TIMESTAMP;
    
  • DROP TABLE: Eine Tabelle und alle ihre Daten löschen.
    DROP TABLE temp_data;
    
  • Indexes (Indizes): Werden verwendet, um den Datenabruf zu beschleunigen.
    CREATE INDEX idx_user_email ON users(email);
    

Häufige Fragen (FAQ)

Q: SQL vs. NoSQL: Was soll ich wählen?

A: Verwenden Sie SQL (relational), wenn Ihre Daten strukturiert sind, Sie komplexe Joins benötigen und ACID-Konformität Priorität hat. Verwenden Sie NoSQL (nicht-relational) für unstrukturierte Daten, hohe Skalierbarkeitsanforderungen und schnelle Entwicklungszyklen, bei denen sich Schemas häufig ändern.

Q: Was sind die Best Practices für das Datenbankdesign?

A:

  1. Normalisierung: Datenredundanz reduzieren.
  2. Namenskonventionen: Verwenden Sie konsistente, kleingeschriebene, durch Unterstriche getrennte Namen.
  3. Primärschlüssel: Jede Tabelle sollte eine eindeutige Kennung haben.
  4. Indizes klug einsetzen: Sie beschleunigen das Lesen, verlangsamen aber das Schreiben.

Q: Was ist eine SQL-Injection und wie kann ich sie verhindern?

A: SQL-Injection ist eine Schwachstelle, bei der ein Angreifer bösartige SQL-Anweisungen ausführen kann. Prävention: Verketten Sie niemals Benutzereingaben direkt in Abfragen. Verwenden Sie Prepared Statements (parameterisierte Abfragen), die vom Datenbanktreiber Ihrer Programmiersprache bereitgestellt werden.

Q: Wie kann ich die SQL-Performance optimieren?

A:

  • Vermeiden Sie SELECT *; rufen Sie nur die Spalten ab, die Sie benötigen.
  • Verwenden Sie EXPLAIN, um Abfrageausführungspläne zu analysieren.
  • Stellen Sie sicher, dass Spalten, die in WHERE- und JOIN-Klauseln verwendet werden, ordnungsgemäß indiziert sind.
  • Vermeiden Sie Unterabfragen, wenn ein JOIN effizienter ist.

Verwandte Tools auf Tool3M

  • SQL Formatter: Bereinigen und formatieren Sie Ihre SQL-Abfragen für bessere Lesbarkeit.
  • JSON zu CSV: Konvertieren Sie Ihre Datenbank-Exporte zwischen den Formaten JSON und CSV.