Welche SQL Kommandos muss ich mindestens beherrschen, um behaupten zu dürfen: „Ich kann SQL“? Wie gehe ich es am besten an, wo finde ich Übungsbeispiele und eine geeignete Lernumgebung? Hier ein paar Tips für SQL-Einsteiger:innen.
Oft werden mit Hilfe von SQL vor allem Datenbanken abgefragt. Absolutes Minimum ist also die Beherrschung des SELECT Kommandos in allen Variationen mit SELECT .. FROM .. WHERE .. ORDER BY. Sofern auch gerechnet werden muss, gehören Aggregatfunktionen wie SUM, MIN, MAX, COUNT auf die Themenliste, ebenso wie die damit verbundenen Gruppierungen (GROUP BY .. HAVING ..). Da die abzufragenden Daten selten aus nur einer Tabelle oder Sicht stammen, muss man sich auch mit JOINs aller Art beschäftigen. Schließlich sind noch Vergleichsoperatoren wie IN, BETWEEN, NOT, LIKE unverzichtbar. Wenn man das alles wirklich beherrscht, ist man schon recht weit vorn und kann damit komplexe Anforderungen z.B. im Reporting abdecken. Das alles stellt jedoch nur einen kleinen Teil von SQL dar und wird als DQL (Data Query Language) bezeichnet.
SQL ist weit mehr als nur eine Abfragesprache
Darüber hinaus gibt es noch Befehle zur Anlage, zur Änderung und zum Löschen von Daten (INSERT, UPDATE, DELETE) – Stichwort DML (Data Manipulation Language). Die muss man natürlich ebenfalls beherrschen, wenn man nicht nur mit der Abfrage, sondern auch mit der Erfassung und Pflege der Daten zu tun hat. Wer auch Datenbanken, Tabellen, Sichten u.a.m. anlegt und verändert, benötigt die DDL (Data Definition Language) mit Befehlen wie CREATE/ALTER/DROP TABLE, VIEW, CONSTRAINT, INDEX, … Schließlich kann man sich auch noch mit der Rechtevergabe (GRANT, REVOKE), Transaktionen oder der Programmierung komplexer Funktionen und Stores Procedures z.B. in T-SQL (Microsoft SQL Server) oder PL/SQL (Oracle) beschäftigen.
Von der Wirklichkeit zum Datenbankmodell
Für die erfolgreiche Erstellung eigener Datenbanken muss man dann auch noch wissen, wie man die Wirklichkeit in ein Datenbankmodell überführt. Dazu müssen Objekte (in der Welt der Datenbanken auch Entitäten / Entities genannt) und deren Eigenschaften sowie die Beziehungen (Relationships) zwischen den Objekten identifiziert und definiert werden. Die aufgrund eines solchen sogenannten Entity-Relationship-Modells ermittelten Objekte und Beziehungen werden anschließend in Datenbanktabellen überführt.
Schritt für Schritt ans Ziel
Erforderlicher Zeitaufwand: 10 Tage
Wie kann man nun angesichts dieser Aufgabenfülle SQL schnell und effektiv lernen? Ich empfehle folgende Vorgehensweise:
- Verschwende zu Anfang keine Zeit.
Befasse dich nicht sofort mit der Installation und Administration eines richtigen, großen Datenbanksystems. Das ist ein Job für sich. Benutze stattdessen einfach eine der im Internet zugänglichen SQL-Plattformen. Ich liebe z.B. sqliteonline.com und setze dieses System gerne für herstellerunabhängige SQL-Schulungen ein. Du kannst einfach loslegen und brauchst dich um nichts zu kümmern (außer um eine Beispieldatenbank, wenn du nicht gleich selbst eine erstellen möchtest)
- Mache die ersten Gehversuche.
Nutze dafür die hervorragenden im Internet verfügbaren freien Tutorials und Beispieldatenbanken wie z.B. Chinook oder Northwind.
- Finde einfache Beispiele.
Versuche für einfache Beispiele aus deiner realen Welt die richtigen Tabellen und Felder zu definieren. Stelle dir z.B. vor, du möchtest ein Restaurant mit einer neuen Software versorgen und die Räume, Tische und Reservierungen in einer Datenbank verwalten. Oder versetze dich in die Lage eines kleinen Supermarktes mit Warengruppen, Artikeln, Kassierer:innen und Einkäufen. Denke über deinen Sportverein nach und natürlich über alle beruflichen Sachverhalte, die von einer Datenbank profitieren könnten.
- Tausche dich mit anderen Lernenden aus.
Stellt euch gegenseitig eure Entwürfe vor und besprecht unterschiedliche Wege, Vor- und Nachteile verschiedener Modellierungsansätze. Es gibt nicht immer die eine perfekte Lösung. Du kannst auch einen SQL Coach engagieren, wenn du deine Ideen lieber mit einem Profi besprechen möchtest.
- Spezialisiere dich.
Dann erst spezialisiere dich auf das Datenbanksystem, mit dem du später produktiv arbeiten wirst, und lerne alles darüber. SQL ist zwar theoretisch standardisiert, aber jedem Hersteller steht es frei, Teile des Standards wegzulassen und zusätzlich andere Nicht-Standard-Funktionen bereit zu stellen.
Viel Erfolg!