SQL Basic Kurs
Von Elyndra Valen, Senior Entwicklerin bei Java Fleet Systems Consulting
🗺️ Deine Position im Kurs
| Tag | Thema | Status |
|---|---|---|
| 1 | Warum Datenbanken? | ✅ Abgeschlossen |
| 2 | Das relationale Modell | ✅ Abgeschlossen |
| 3 | Schlüssel & Beziehungen | ✅ Abgeschlossen |
| 4 | Tabellen erstellen & Daten pflegen | ✅ Abgeschlossen |
| → 5 | SELECT – Deine erste Abfrage | 👉 DU BIST HIER! |
| 6 | Filtern und Sortieren | 🔜 Kommt als nächstes |
| 7 | Gruppieren und Auswerten | 🔒 Noch nicht freigeschaltet |
| 8 | JOINs – Tabellen verbinden | 🔒 Noch nicht freigeschaltet |
| 9 | Subqueries und Views | 🔒 Noch nicht freigeschaltet |
| 10 | Zusammenfassung & Projekt | 🔒 Noch nicht freigeschaltet |
Modul: SQL Basic
Gesamt-Dauer: 10 Kurstage
Dein Ziel: Daten aus Tabellen abfragen und gezielt auswählen
📋 Voraussetzungen für diesen Tag
Du brauchst:
- ✅ Tag 1-4 abgeschlossen
- ✅ XAMPP läuft, phpMyAdmin ist offen
- ✅ Die
adressen-Datenbank ist importiert - ✅ Die
versandhandel-Datenbank ist importiert
Heute wird’s praktisch! Ab jetzt tippst du in jedem Abschnitt echtes SQL.
Fragen?
Schreib uns: elyndra.valen@java-developer.online
🔄 Kurzwiederholung: Lösung der Challenge von Tag 4
Erinnerst du dich an die 5 SQL-Befehle?
1. Neuen Kunden einfügen:
INSERT INTO kunden (name, vorname, stadt, plz)
VALUES ('Neumann', 'Felix', 'Köln', '50667');
2. Neues Produkt einfügen:
INSERT INTO produkte (name, preis, lagerbestand)
VALUES ('USB-Kabel', 9.99, 200);
3. Lagerbestand um 50 erhöhen:
UPDATE produkte SET lagerbestand = lagerbestand + 50 WHERE produkte_id = 3;
4. Kundenstadt ändern:
UPDATE kunden SET stadt = 'Frankfurt' WHERE kunden_id = 5;
5. Produkt löschen:
DELETE FROM produkte WHERE produkte_id = 10;
Wichtig: Bei UPDATE und DELETE immer WHERE nicht vergessen!
⚡ Das Wichtigste in 30 Sekunden
Heute lernst du:
- ✅ SELECT – der wichtigste SQL-Befehl überhaupt
- ✅ Alle Spalten oder nur bestimmte auswählen
- ✅ Spalten umbenennen mit AS (Alias)
- ✅ Berechnungen direkt in der Abfrage
Am Ende des Tages kannst du: Daten aus jeder Tabelle abfragen und genau die Spalten auswählen, die du brauchst.
Schwierigkeitsgrad: 🟢 Einsteiger
Hi! 👋
Heute ist DER Tag! 🎉
Die letzten vier Tage waren Vorbereitung. Ab heute arbeitest du richtig mit SQL. Und wir starten mit dem wichtigsten Befehl überhaupt: SELECT.
SELECT ist das Schweizer Taschenmesser von SQL. Du wirst ihn in 90% aller Datenbankarbeiten nutzen. Egal ob du Kundenlisten brauchst, Umsätze analysierst oder Berichte erstellst – alles beginnt mit SELECT.
Die gute Nachricht: SELECT ist logisch aufgebaut und leicht zu lernen.
Los geht’s! 🚀
🟢 GRUNDLAGEN: Der SELECT-Befehl
Die Grundstruktur

SELECT was_du_sehen_willst FROM welche_tabelle;
Das war’s. Ernsthaft. So einfach ist die Basis.
Alles anzeigen: SELECT *
Das Sternchen * bedeutet „alle Spalten“:
SELECT * FROM person;
Probier es aus! Du bekommst alle ~600 Personen mit allen Spalten (PERSID, AGE, FIRSTNAME, LASTNAME).
Wann nutzt du *?
- Zum schnellen Überblick: „Was ist überhaupt in dieser Tabelle?“
- Beim Entwickeln und Testen
- Bei kleinen Tabellen
Wann NICHT?
- In Produktivsystemen (Performance!)
- Wenn du nur 2 von 50 Spalten brauchst
- In Berichten und Exporten
Bestimmte Spalten auswählen
Meist brauchst du nicht alle Spalten. Dann listest du auf, was du willst:
SELECT FIRSTNAME, LASTNAME FROM person;
Nur Vorname und Nachname – übersichtlicher!
SELECT FIRSTNAME, LASTNAME, AGE FROM person;
Jetzt auch mit Alter. Die Reihenfolge in deiner Abfrage bestimmt die Reihenfolge im Ergebnis.
Spalten umbenennen mit AS (Alias)
Die Spaltennamen in der Datenbank sind oft technisch. Für Berichte willst du schönere Namen:
SELECT
FIRSTNAME AS Vorname,
LASTNAME AS Nachname,
AGE AS Alter
FROM person;
Jetzt heißen die Spalten im Ergebnis „Vorname“, „Nachname“, „Alter“ statt „FIRSTNAME“, „LASTNAME“, „AGE“.
Tipp: Bei Alias-Namen mit Leerzeichen brauchst du Anführungszeichen:
SELECT FIRSTNAME AS "Vor Name" FROM person;
Aber besser: Vermeide Leerzeichen in Namen.
🟡 PROFESSIONALS: Mehr aus SELECT rausholen
Berechnungen in der Abfrage
Du kannst direkt in SELECT rechnen:
SELECT
name,
preis,
preis * 1.19 AS preis_brutto
FROM produkte;
Das zeigt den Nettopreis UND den berechneten Bruttopreis (mit 19% MwSt).
Weitere Beispiele:
-- Rabatt berechnen SELECT name, preis, preis * 0.9 AS preis_mit_10_prozent_rabatt FROM produkte; -- Alter in Monaten (ungefähr) SELECT FIRSTNAME, AGE, AGE * 12 AS alter_in_monaten FROM person;
Texte verbinden (Konkatenation)
In MariaDB/MySQL nutzt du CONCAT():
SELECT CONCAT(FIRSTNAME, ' ', LASTNAME) AS vollstaendiger_name FROM person;
Ergebnis: „Bruno Hoffmann“, „Roman Rabenstein“, usw.
Praktisches Beispiel – Adresszeile:
SELECT CONCAT(STREET, ', ', stadt) AS adresse FROM adressen;
Ergebnis: „Röntgenstr. 32c, Neu Yannik“
Feste Werte und Texte hinzufügen
Du kannst auch feste Werte ins Ergebnis einbauen:
SELECT
FIRSTNAME,
LASTNAME,
'Jahre alt' AS einheit,
AGE
FROM person;
Oder:
SELECT
name,
preis,
'€' AS waehrung
FROM produkte;
DISTINCT – Nur eindeutige Werte
Manchmal willst du wissen: „Welche verschiedenen Werte gibt es?“

SELECT DISTINCT stadt FROM adressen;
Das zeigt jede Stadt nur EINMAL – egal wie oft sie vorkommt.
Ohne DISTINCT:
Neu Yannik Ricoscheid Knorrstadt Neu Yannik <-- Duplikat! Bad Milla ...
Mit DISTINCT:
Neu Yannik Ricoscheid Knorrstadt Bad Milla ...
Praktische Anwendung: „In welchen Städten haben wir Kunden?“
SELECT DISTINCT stadt FROM kunden;
🔴 BONUS: Profi-Tipps
Kommentare im SQL
Du kannst deine Abfragen kommentieren:
-- Das ist ein einzeiliger Kommentar SELECT FIRSTNAME, LASTNAME FROM person; /* Das ist ein mehrzeiliger Kommentar */ SELECT * FROM adressen;
Warum Kommentare?
- Du verstehst in 3 Monaten noch, was die Abfrage tut
- Kollegen verstehen deinen Code
- Du kannst Teile „auskommentieren“ zum Testen
Zeilenumbrüche und Formatierung
SQL ist es egal, wie du formatierst. Diese Abfragen sind identisch:
-- Alles in einer Zeile (unübersichtlich bei komplexen Abfragen)
SELECT FIRSTNAME, LASTNAME, AGE FROM person;
-- Schön formatiert (empfohlen)
SELECT
FIRSTNAME,
LASTNAME,
AGE
FROM person;
Best Practice: Bei mehr als 2-3 Spalten → neue Zeilen nutzen.
LIMIT – Nur die ersten X Zeilen
Bei großen Tabellen willst du nicht immer alles sehen:
SELECT * FROM person LIMIT 10;
Zeigt nur die ersten 10 Zeilen. Super zum Testen!
SELECT * FROM adressen LIMIT 5;
Nur die ersten 5 Adressen.
💬 Real Talk: Die Kursplanung für Tag 5
Java Fleet Büro, Schulungsraum. Das Team plant den fünften Kurstag.
Franz-Martin: „Tag 5 – SELECT. Das ist der Durchbruch-Tag.“
Kat: „Endlich tippen sie echtes SQL. Die letzten vier Tage waren viel Theorie.“
Tom: „Ich erinnere mich noch an mein erstes SELECT. Das Gefühl, wenn plötzlich Daten auf dem Bildschirm erscheinen…“
Nova: „Honestly? Das war auch für mich der Moment, wo es klick gemacht hat. Vorher war alles abstrakt.“
Elyndra: „Genau deshalb fangen wir einfach an. SELECT *, dann gezielt Spalten, dann Alias, dann DISTINCT.“
Franz-Martin: „Berechnungen auch?“
Elyndra: „Ja, aber nur einfache. Preis mal 1.19 für Brutto. Nichts Kompliziertes.“
Kat: „CONCAT für Adresszeilen wäre praktisch. Das braucht man ständig.“
Tom: „Und LIMIT! Bei 600 Personen will keiner endlos scrollen.“
Nova: „Was ist mit WHERE? Filtern?“
Elyndra: „Das kommt morgen. Heute nur: Daten rausholen, Spalten auswählen, ein bisschen formatieren. Nicht zu viel auf einmal.“
Franz-Martin: „Also: SELECT als Schweizer Taschenmesser etablieren. Die Basis, auf der alles aufbaut.“
Elyndra: „Genau. Wer SELECT versteht, versteht SQL.“
✅ Checkpoint: Hast du es verstanden?
Bevor du weitermachst, teste dein Wissen:
Quiz:
Frage 1: Was bedeutet SELECT * FROM person;?
Frage 2: Wie fragst du nur die Spalten FIRSTNAME und AGE aus der Tabelle person ab?
Frage 3: Was macht das Schlüsselwort AS in einer SELECT-Abfrage?
Frage 4: Wie zeigst du jeden Städtenamen nur einmal an, auch wenn er mehrfach in der Tabelle vorkommt?
Frage 5: Du willst den Preis eines Produkts mit 20% Aufschlag anzeigen. Wie sieht die Berechnung in SELECT aus?
Mini-Challenge:
Aufgabe:
Arbeite mit der person– und adressen-Datenbank in phpMyAdmin:
- Zeige alle Personen an, aber nur Vorname und Nachname.
- Zeige alle Personen mit Vorname, Nachname und Alter an. Benenne die Spalten auf Deutsch um (Vorname, Nachname, Alter).
- Erstelle eine Abfrage, die den vollständigen Namen als EINE Spalte zeigt (Vorname + Leerzeichen + Nachname). Nenne die Spalte „Name“.
- Finde heraus: Wie viele verschiedene Städte gibt es in der adressen-Tabelle? (Tipp: DISTINCT + zählen)
- Zeige die ersten 20 Personen, sortiert nach ihrer ID.
Lösung:
Wir besprechen die Lösung am Anfang von Tag 6!
❓ Häufig gestellte Fragen
Frage 1: Ist die Groß-/Kleinschreibung bei SQL wichtig?
Nein, SELECT, select und SeLeCt sind identisch. Konvention: SQL-Schlüsselwörter GROSS, Tabellen-/Spaltennamen klein. Aber das ist nur Lesbarkeit, kein Muss.
Frage 2: Muss ich das Semikolon am Ende schreiben?
In phpMyAdmin: Meistens nicht nötig bei einzelnen Befehlen. Aber: Gewöhn es dir an! Sobald du mehrere Befehle hintereinander schreibst, MUSS das Semikolon da sein.
Frage 3: Warum SELECT * vermeiden?
Performance: Die Datenbank muss alle Spalten laden, auch wenn du nur 2 brauchst. Bei großen Tabellen mit vielen Spalten macht das einen Unterschied. Außerdem: Dein Code ist klarer, wenn du explizit sagst, was du willst.
Frage 4: Kann ich Spalten mehrfach auswählen?
Ja! SELECT name, name, name FROM produkte; zeigt die Spalte dreimal. Sinnlos, aber möglich.
Frage 5: Was passiert, wenn ich eine Spalte abfrage, die nicht existiert?
Fehlermeldung: „Unknown column ‚xyz‘ in ‚field list'“. Die Datenbank sagt dir genau, welche Spalte sie nicht kennt.
Frage 6: Kann ich Spalten aus verschiedenen Tabellen mischen?
Ja, aber dafür brauchst du JOIN – kommt an Tag 8. Heute bleiben wir bei einer Tabelle pro Abfrage.
Frage 7: Nova sagte, SELECT war ihr „Klick-Moment“. Was meint sie damit?
Real talk: Für viele ist SELECT der Moment, wo Datenbanken aufhören, abstrakt zu sein. Du tippst was ein, drückst Enter, und BOOM – Daten erscheinen. Das ist der Unterschied zwischen „ich lerne Theorie“ und „ich arbeite mit echten Daten“. Dieser Moment ist wichtig. Genieß ihn!
📚 Quiz-Lösungen
Hier sind die Antworten zum Quiz von oben:
Frage 1: Was bedeutet SELECT * FROM person;?
Antwort:
Zeige alle Spalten (*) aus der Tabelle person an. Das Ergebnis enthält PERSID, AGE, FIRSTNAME und LASTNAME für alle Zeilen.
Frage 2: Wie fragst du nur die Spalten FIRSTNAME und AGE aus der Tabelle person ab?
Antwort:
SELECT FIRSTNAME, AGE FROM person;
Einfach die gewünschten Spalten mit Komma getrennt auflisten.
Frage 3: Was macht das Schlüsselwort AS in einer SELECT-Abfrage?
Antwort:
AS erstellt einen Alias (Alternativnamen) für eine Spalte. Der Alias erscheint als Spaltenüberschrift im Ergebnis.
Beispiel: SELECT FIRSTNAME AS Vorname zeigt die Spalte mit der Überschrift „Vorname“ statt „FIRSTNAME“.
Frage 4: Wie zeigst du jeden Städtenamen nur einmal an?
Antwort:
SELECT DISTINCT stadt FROM adressen;
DISTINCT entfernt Duplikate aus dem Ergebnis.
Frage 5: Preis mit 20% Aufschlag anzeigen?
Antwort:
SELECT name, preis, preis * 1.20 AS preis_mit_aufschlag FROM produkte;
Oder alternativ: preis + (preis * 0.20)
🎉 Tag 5 geschafft!
Herzlichen Glückwunsch! Du hast deinen ersten echten SQL-Befehl gemeistert! 🚀
Das hast du heute gelernt:
- ✅ SELECT * für alle Spalten
- ✅ Gezielte Spaltenauswahl
- ✅ Alias mit AS für schönere Namen
- ✅ Berechnungen direkt in der Abfrage
- ✅ CONCAT für Textverbindungen
- ✅ DISTINCT für eindeutige Werte
- ✅ LIMIT für begrenzte Ergebnisse
Du kannst jetzt: Daten aus jeder Tabelle holen und genau die Spalten auswählen, die du brauchst – mit schönen Namen und Berechnungen!
Das ist die Basis für ALLES, was noch kommt. Ab morgen lernst du, die Daten zu filtern und zu sortieren. 💪
Wie geht’s weiter?
Morgen (Tag 6): Filtern und Sortieren
Was dich erwartet:
- WHERE – nur bestimmte Zeilen anzeigen
- Vergleichsoperatoren (=, <, >, !=, LIKE)
- ORDER BY – Ergebnisse sortieren
- AND, OR, NOT – Bedingungen kombinieren
Brauchst du eine Pause?
Mach sie! Aber vorher: Spiel noch ein bisschen mit SELECT. Probiere verschiedene Spalten, verschiedene Tabellen. Je mehr du tippst, desto natürlicher wird es.
🛠️ Troubleshooting
Problem: „Unknown column ‚xyz‘ in ‚field list'“
Lösung: Tippfehler im Spaltennamen. Prüfe die genaue Schreibweise. In phpMyAdmin kannst du links die Tabellenstruktur sehen.
Problem: „Table ‚xyz‘ doesn’t exist“
Lösung: Falsche Datenbank ausgewählt? Oben links in phpMyAdmin steht die aktive Datenbank. Klicke auf die richtige.
Problem: Ergebnis ist leer, obwohl Daten da sein sollten.
Lösung: Heute noch kein Problem (wir filtern noch nicht). Aber prüfe: Richtige Tabelle? Richtige Datenbank?
📖 Im Buch nachlesen
Mehr Details zu den heutigen Themen findest du in:
Kapitel 4: Einfache Datenauswahl
- 4.1 Der SELECT-Befehl
- 4.2 Spalten auswählen
- 4.3 Spalten-Aliase
- 4.4 Berechnete Spalten
- 4.5 DISTINCT
SQL Ressourcen & Weiterführende Links
Elyndra’s Schatzkiste – Alles, was du für deinen SQL-Lernweg brauchst
🎮 Interaktive Übungsplattformen
Übung macht den Meister. Diese Plattformen lassen dich SQL direkt im Browser ausprobieren – ohne Installation, ohne Risiko.
SQLBolt – Der Klassiker für Einsteiger
- Interaktive Lektionen mit sofortigem Feedback
- Perfekt strukturiert: SELECT → JOINs → Subqueries
- Keine Registrierung nötig
- Empfohlen für: Tag 5-8 unseres Kurses
SQLZoo – Echte Daten, echte Herausforderungen
- Seit über 20 Jahren der Goldstandard
- Übungen mit echten Datensätzen (Nobel-Preise, Fußball-WM, etc.)
- Progressiv schwieriger werdende Aufgaben
- Empfohlen für: Tag 9-10 und danach
W3Schools SQL Tutorial
- „Try it Yourself“ Editor bei jedem Beispiel
- Komplette Referenz aller SQL-Befehle
- Gut zum Nachschlagen
- Empfohlen für: Schnelles Nachschlagen während des Kurses
SQL Easy – Minimalistisch & Effektiv
- Reduziert auf das Wesentliche
- Sofort loslegen ohne Ablenkung
- Über 200.000 Lernende seit 2017
- Empfohlen für: Schnelle Wiederholung
Learn SQL Online
- Komplett kostenlos
- Interaktive Code-Beispiele
- Community-getrieben
- Empfohlen für: Zusätzliche Übungen
📚 Offizielle Dokumentation
Wenn du es genau wissen willst, führt kein Weg an der offiziellen Doku vorbei.
MariaDB Knowledge Base (Deutsch)
- Offizielle Dokumentation auf Deutsch
- Alle Befehle, Datentypen, Konfigurationen
- Das Nachschlagewerk für unseren Kurs
MariaDB.org Documentation
- Hauptdokumentation der MariaDB Foundation
- PDF-Download verfügbar
- Release Notes für alle Versionen
- Kostenlose Video-Kurse zu fortgeschrittenen Themen
MySQL Referenz
- Gilt zu 95% auch für MariaDB
- Sehr detailliert und umfangreich
- Englisch, aber sehr präzise
🛠️ Setup & Installation
Alles, was du brauchst, um SQL auf deinem Rechner zum Laufen zu bringen.
XAMPP – Das Rundum-Sorglos-Paket
- Apache + MariaDB + PHP in einem Paket
- Windows, Mac, Linux
- Unsere Empfehlung für den Kurs!
- Ein Klick → Datenbank läuft
MariaDB Standalone
🔗 mariadb.com/get-started-with-mariadb
- Offizielle Installationsanleitung
- Für alle Betriebssysteme
- Docker-Variante verfügbar
HeidiSQL – Der komfortable Client
- Kostenloser SQL-Client für Windows
- Grafische Oberfläche statt Kommandozeile
- Perfekt für Einsteiger
- Export/Import von Daten
DBeaver – Der Alleskönner
- Universeller Datenbank-Client
- Windows, Mac, Linux
- Unterstützt MySQL, MariaDB, PostgreSQL, Oracle, …
- Community Edition kostenlos
🇩🇪 Tutorials auf Deutsch
Nicht jeder mag englische Tutorials. Hier die besten deutschen Ressourcen.
IONOS Digital Guide
🔗 ionos.de – MySQL/MariaDB installieren
- Schritt-für-Schritt Installationsanleitung
- Screenshots für jeden Schritt
- Linux, Windows, Mac abgedeckt
Guru99 MariaDB Tutorial
🔗 guru99.com/de/mariadb-tutorial-install.html
- Übersetztes Tutorial
- Viele Screenshots
- Grundlagen gut erklärt
GeeksforGeeks SQL Tutorial
🔗 geeksforgeeks.org/sql-tutorial
- Sehr umfangreich
- Von Basics bis Advanced
- Viele Code-Beispiele
🎬 Video-Kurse (kostenlos)
Manchmal ist Zuschauen einfacher als Lesen.
freeCodeCamp – SQL Full Course
- Kompletter SQL-Kurs in einem Video
- 4+ Stunden Inhalt
- Sehr beliebt (Millionen Views)
- Englisch mit guter Aussprache
Bro Code – SQL Playlist
Gut für Pausen zwischendurch
Viral gegangen 2024
Kurze, knackige Videos
Schritt für Schritt
💬 Feedback?
Hat SELECT bei dir auch „klick“ gemacht?
Schreib uns: elyndra.valen@java-developer.online
Bis morgen – dann filtern wir! 👋
Elyndra
SQL Basic – Tag 5 von 10
© Java Fleet Systems Consulting
www.java-developer.online

