Die Tippeinstellungen konnten nicht aktualisiert werden. Lade die Seite neu, um es erneut zu versuchen.
Übung im Zehnfingersystem: Programmierung in der Sprache SQL
Die Regeln zur Berechnung der Genauigkeit haben sich geändert. Diese Übung beginnt wieder von vorne.
Das Speichern deiner abgeschlossenen Sitzung konnte nicht bestätigt werden. Versuche sie erneut zu speichern, ohne noch einmal zu tippen.
Übung im Zehnfingersystem: Programmierung in der Sprache SQL
Das 10-Finger-Schreiben ist beim Programmieren nützlich. Mit schnellen Tipptechniken kannst du effizienter Code in der Programmiersprache SQL schreiben.
Programmieren in SQL und 10-Finger-Schreiben
SQL zu lernen und das 10-Finger-Schreiben zu üben passen gut zusammen. SQL-Abfragen sind voll von Klammern, Kommas, Operatoren und Anführungszeichen. Kleine Fehler, wie ein falsches Anführungszeichen oder ein fehlendes Semikolon, können dazu führen, dass eine gesamte Abfrage nicht funktioniert. Beim Schreiben von SQL ist es wichtig zu wissen, welche Teile der Syntax in allen Datenbanken gleich sind und welche spezifisch für ein bestimmtes System sind. Dieser Artikel konzentriert sich hauptsächlich auf PostgreSQL, erwähnt aber auch MySQL, SQLite und SQL Server dort, wo sich die Syntax unterscheidet.
Was ist charakteristisch für die SQL-Syntax?
SQL (Structured Query Language) ist eine deklarative Sprache. Anstatt Schritt für Schritt zu beschreiben, wie Daten geholt werden, gibt man an, welche Daten man benötigt. Fast jede Anweisung beginnt mit einem Schlüsselwort wie SELECT, INSERT oder UPDATE. Die Reihenfolge der Klauseln ist festgelegt: SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY .... PostgreSQL und MySQL teilen diese Reihenfolge, sodass man sie leicht in beiden Systemen anwenden kann.
SELECT id, name
FROM customers
WHERE active = true
ORDER BY created_at DESC;
Sonderzeichen, die man oft tippt
SQL enthält viele Satzzeichen. Runde Klammern () umschließen Funktionsargumente und gruppieren Bedingungen. Kommas , trennen Spalten. Der Punkt . wird für Schema- und Tabellennamen verwendet, z. B. public.users. Einfache Anführungszeichen '...' kennzeichnen Zeichenketten. PostgreSQL verwendet doppelte Anführungszeichen "..." für Bezeichner, während MySQL Backticks `...` nutzt. In SQL Server findet man auch eckige Klammern [...]. Diese Symbole richtig zu tippen, ist entscheidend, um fehlerfreie Abfragen zu schreiben.
-- Zeichenkette
SELECT * FROM books WHERE title = 'War and Peace';
-- Bezeichner mit Leerzeichen (PostgreSQL)
SELECT "Order ID", "Customer Name" FROM orders;
Groß- und Kleinschreibung
Nach Konvention werden SQL-Schlüsselwörter meist in Großbuchstaben geschrieben: SELECT, FROM, WHERE. Das erleichtert das Erkennen in Abfragen, ist aber nicht zwingend. In PostgreSQL werden nicht zitierte Bezeichner automatisch in Kleinbuchstaben umgewandelt, sodass MyTable und mytable gleich behandelt werden. In MySQL hängt die Groß- und Kleinschreibung von Datenbank- und Tabellennamen vom Betriebssystem und den Servereinstellungen ab. Für Tippübungen ist es sinnvoll, Schlüsselwörter in Großbuchstaben zu schreiben, da dies die Struktur der Abfrage verdeutlicht.
Semikolon und Anweisungsende
In SQL beendet ein Semikolon ; eine Anweisung. Interaktive Werkzeuge wie psql, der MySQL-Client und die SQLite-Shell warten normalerweise auf dieses Zeichen, bevor sie die Anweisung ausführen. In psql kannst du die aktuelle Abfrage auch mit \g absenden. Wenn du statt eines Ergebnisses eine Eingabeaufforderung für weiteren Text siehst, prüfe, ob du die Anweisung abgeschlossen hast.
SELECT-Abfragen und Joins
Abfragen schreiben bedeutet oft Joins zu schreiben. PostgreSQL nutzt INNER JOIN, LEFT JOIN und RIGHT JOIN. Im folgenden Beispiel steht die Join-Bedingung nach dem Schlüsselwort ON. Joins können auch USING oder NATURAL verwenden. Ein fehlendes Leerzeichen oder ein Tippfehler in der Bedingung macht die Abfrage ungültig. Joins zu üben hilft, Genauigkeit bei Symbolen wie = und . zu entwickeln.
SELECT c.id, c.name, o.amount
FROM customers c
INNER JOIN orders o ON o.customer_id = c.id
WHERE o.amount > 100;
Funktionen und Ausdrücke
PostgreSQL bietet viele eingebaute Funktionen wie COUNT(), SUM() und AVG(). Klammern sind dabei immer erforderlich. Datums- und Zeitfunktionen wie NOW() oder DATE_TRUNC() sind typisch für PostgreSQL. MySQL hat vergleichbare Funktionen wie CURDATE() oder DATE_FORMAT(). Diese korrekt zu tippen erfordert Sorgfalt mit Unterstrichen, Kommas und Klammern.
SELECT DATE_TRUNC('month', created_at) AS month,
COUNT(*) AS orders
FROM orders
GROUP BY month
ORDER BY month;
INSERT, UPDATE, DELETE
Befehle zum Ändern von Daten enthalten viele Satzzeichen. INSERT nutzt Klammern und Kommas für Spalten und Werte. UPDATE verwendet = für Wertzuweisungen und Kommas zwischen den einzelnen Zuweisungen. DELETE kombiniert Schlüsselwörter mit Bedingungen. Diese Strukturen sind in PostgreSQL, MySQL, SQLite und SQL Server fast identisch, nur die Regeln für Anführungszeichen unterscheiden sich.
INSERT INTO users (id, name, email)
VALUES (1, 'Alice', 'a@example.com');
UPDATE users
SET name = 'Bob', email = 'bob@example.com'
WHERE id = 1;
DELETE FROM users WHERE id = 2;
Common Table Expressions (CTE)
PostgreSQL verwendet häufig CTEs (Common Table Expressions), die mit dem Schlüsselwort WITH beginnen. CTEs enthalten oft viele Klammern und Kommas, weshalb sie sich gut für Tippübungen eignen. Auch MySQL, SQLite und SQL Server unterstützen CTEs. Achte darauf, dass zu jeder öffnenden Klammer eine schließende Klammer gehört.
WITH recent_orders AS (
SELECT * FROM orders WHERE created_at > NOW() - INTERVAL '30 days'
)
SELECT customer_id, COUNT(*) AS order_count
FROM recent_orders
GROUP BY customer_id;
Fensterfunktionen
PostgreSQL ist bekannt für seine erweiterten Fensterfunktionen. Die typische Syntax OVER (PARTITION BY ... ORDER BY ...) erfordert genaues Tippen von Klammern und Schlüsselwörtern. Auch MySQL und SQL Server unterstützen Fensterfunktionen. Das folgende Beispiel verwendet die PostgreSQL-Syntax.
SELECT customer_id,
SUM(amount) OVER (PARTITION BY customer_id ORDER BY created_at) AS running_total
FROM payments;
Parameter und Platzhalter
In Anwendungen hängen Parameterplatzhalter sowohl von der Datenbank als auch vom verwendeten Treiber ab. Native vorbereitete Anweisungen in PostgreSQL verwenden $1, $2, vorbereitete Anweisungen in MySQL und SQLite-Abfragen können ? verwenden, und SQL-Server-Parameter haben Namen wie @p1. Ein Treiber kann eine andere Schreibweise verlangen, etwa %s in Psycopg. Prüfe die Treiberdokumentation, denn diese kleinen Symbole sind leicht falsch zu tippen.
-- PostgreSQL
SELECT * FROM users WHERE id = $1;
-- MySQL
SELECT * FROM users WHERE id = ?;
Zusammenfassung
Nach Konvention schreibt man SQL-Schlüsselwörter meist in Großbuchstaben. PostgreSQL wandelt Bezeichner ohne doppelte Anführungszeichen in Kleinbuchstaben um; in anderen Systemen gelten andere Regeln. PostgreSQL verwendet doppelte Anführungszeichen für Bezeichner, Platzhalter $n, CTEs und Fensterfunktionen. MySQL verwendet Backticks und ?-Platzhalter. SQL Server nutzt eckige Klammern und Parameter mit @. SQLite hat eine einfache Syntax, erfordert aber ebenfalls Genauigkeit. SQL-Abfragen zu tippen trainiert Präzision bei Satzzeichen, Schlüsselwörtern und Symbolen. Wenn du dich auf PostgreSQL konzentrierst, übst du die Syntax einer der am weitesten verbreiteten modernen Datenbanken.