Skip to content

Kapitel 4: SQL Grundlagen

4.1 Was ist SQL?

SQL (Structured Query Language) ist die Standardsprache für relationale Datenbanken. Mit SQL kannst du:

  • Datenbanken und Tabellen erstellen
  • Daten einfügen, ändern, löschen
  • Daten abfragen
  • Berechtigungen verwalten
SQL ist wie eine "Sprache", die MySQL versteht.
Du gibst Befehle in SQL, und MySQL führt sie aus.

SQL-Standards:

  • SQL-86, SQL-89, SQL-92, SQL:1999, SQL:2003, SQL:2016
  • MySQL basiert auf SQL-92-Standard mit eigenen Erweiterungen

4.2 SQL-Syntaxregeln (Einsteiger müssen diese beachten!)

1. Groß-/Kleinschreibung

sql
-- ✅ Richtig (empfohlen: Großschreibung für Schlüsselwörter)
SELECT * FROM users;

-- ✅ Auch richtig (funktioniert, ist aber schwer zu lesen)
select * from users;

-- ✅ Auch möglich
SeLeCt * FrOm users;

Empfehlung: Schlüsselwörter großschreiben (SELECT, FROM, WHERE), um den Code lesbar zu halten.

2. Semikolon am Ende

sql
-- ✅ Richtig: Mit Semikolon
SELECT * FROM users;

-- ❌ Falsch: Ohne Semikolon (manche Tools erlauben es, aber nicht empfohlen)
SELECT * FROM users

Hinweis: In der MySQL-Kommandozeile muss jedes Statement mit ; enden.

3. Kommentare

sql
-- Dies ist ein einzeiliger Kommentar (MySQL-Style)

# Auch ein einzeiliger Kommentar (Shell-Style)

/*
   Dies ist ein
   mehrzeiliger Kommentar
*/

4. Leerzeichen und Einrückung

sql
-- ✅ Schwer zu lesen
SELECT id,name,email FROM users WHERE age>18;

-- ✅ Gut zu lesen (empfohlen)
SELECT 
    id,
    name,
    email
FROM 
    users
WHERE 
    age > 18;

4.3 Kern-SQL-Klassifizierung

SQL wird in 4 Hauptkategorien unterteilt:

┌─────────────────────────────────────┐
│            SQL-Befehle              │
├─────────────────────────────────────┤
│ DDL - Daten definieren (CREATE)    │ ← Kapitel 5
├─────────────────────────────────────┤
│ DML - Daten bearbeiten (INSERT)   │ ← Kapitel 6
├─────────────────────────────────────┤
│ DQL - Daten abfragen (SELECT)     │ ← Kapitel 7
├─────────────────────────────────────┤
│ DCL - Berechtigungen (GRANT)      │ ← Nur erwähnen
└─────────────────────────────────────┘

DDL (Data Definition Language) - Datendefinitionssprache

Zweck: Datenbanken und Tabellen erstellen, ändern, löschen

sql
-- Datenbank erstellen
CREATE DATABASE shop_db;

-- Tabelle erstellen
CREATE TABLE products (
    id INT PRIMARY KEY,
    name VARCHAR(100)
);

-- Tabelle ändern
ALTER TABLE products ADD COLUMN preis DECIMAL(10,2);

-- Tabelle löschen
DROP TABLE products;

Wann verwenden? Wenn du die Struktur der Datenbank ändern willst.

DML (Data Manipulation Language) - Datenmanipulationssprache

Zweck: Daten in Tabellen einfügen, ändern, löschen

sql
-- Daten einfügen
INSERT INTO products (id, name, preis) 
VALUES (1, 'T-Shirt', 19.99);

-- Daten ändern
UPDATE products SET preis = 24.99 WHERE id = 1;

-- Daten löschen
DELETE FROM products WHERE id = 1;

Wann verwenden? Wenn du Inhalte der Tabellen ändern willst.

DQL (Data Query Language) - Datenabfragesprache

Zweck: Daten aus Tabellen abfragen (nur lesen!)

sql
-- Alle Daten abfragen
SELECT * FROM products;

-- Bestimmte Felder abfragen
SELECT name, preis FROM products;

-- Mit Bedingung abfragen
SELECT * FROM products WHERE preis < 50;

Wann verwenden? Wenn du Daten ansehen (aber nicht ändern) willst.

DCL (Data Control Language) - Datensicherungssprache

Zweck: Benutzerberechtigungen verwalten

sql
-- Benutzer erstellen
CREATE USER 'app_user'@'localhost' IDENTIFIED BY 'passwort123';

-- Berechtigung gewähren
GRANT SELECT, INSERT ON shop_db.* TO 'app_user'@'localhost';

-- Berechtigung entziehen
REVOKE INSERT ON shop_db.* FROM 'app_user'@'localhost';

Hinweis: Für Einsteiger nicht dringend erforderlich, aber wichtig für Sicherheit.

4.4 Praxisbeispiel: Einfache SQL-Anweisungen schreiben

Szenario: Erstelle eine Datenbank für eine Bibliothek und führe grundlegende Operationen durch.

Schritt 1: Datenbank und Tabelle erstellen (DDL)

sql
-- Datenbank erstellen
CREATE DATABASE bibliothek_db 
CHARACTER SET utf8mb4 
COLLATE utf8mb4_unicode_ci;

USE bibliothek_db;

-- Tabelle "books" erstellen
CREATE TABLE books (
    buch_id INT PRIMARY KEY AUTO_INCREMENT,
    titel VARCHAR(200) NOT NULL,
    autor VARCHAR(100),
    erscheinungsjahr INT,
    anzahl_exemplare INT DEFAULT 1
);

Schritt 2: Daten einfügen (DML)

sql
INSERT INTO books (titel, autor, erscheinungsjahr, anzahl_exemplare)
VALUES 
    ('Der Herr der Ringe', 'J.R.R. Tolkien', 1954, 5),
    ('Harry Potter', 'J.K. Rowling', 1997, 8),
    ('Der kleine Prinz', 'Antoine de Saint-Exupéry', 1943, 3);

Schritt 3: Daten abfragen (DQL)

sql
-- Alle Bücher anzeigen
SELECT * FROM books;

-- Nur Titel und Autor anzeigen
SELECT titel, autor FROM books;

-- Bücher nach Erscheinungsjahr sortieren
SELECT titel, erscheinungsjahr 
FROM books 
ORDER BY erscheinungsjahr;

Ergebnis:

+---------------------+-------------------------+--------------------+
| titel               | autor                   | erscheinungsjahr   |
+---------------------+-------------------------+--------------------+
| Der kleine Prinz    | Antoine de Saint-Exupéry|              1943 |
| Der Herr der Ringe | J.R.R. Tolkien         |              1954 |
| Harry Potter        | J.K. Rowling           |              1997 |
+---------------------+-------------------------+--------------------+

Häufige Fehler für Einsteiger

Fehler 1: Semikolon vergessen

sql
-- ❌ Falsch
SELECT * FROM books

-- ✅ Richtig
SELECT * FROM books;

Fehler 2: Schlüsselwort falsch geschrieben

sql
-- ❌ Falsch
SLEECT * FROM books;

-- ✅ Richtig
SELECT * FROM books;

Fehler 3: Kommentar falsch geschrieben

sql
-- ❌ Falsch (nur ein Minus)
- Dies ist ein Kommentar

-- ✅ Richtig
-- Dies ist ein Kommentar

Zusammenfassung

In diesem Kapitel hast du gelernt:

  • ✅ Was SQL ist und wofür es verwendet wird
  • ✅ Die wichtigsten Syntaxregeln (Großschreibung, Semikolon, Kommentare)
  • ✅ Die 4 SQL-Kategorien (DDL, DML, DQL, DCL)
  • ✅ Einfache SQL-Anweisungen zu schreiben
  • ✅ Häufige Anfängerfehler zu vermeiden

Übungen

  1. Theorie: Was ist der Unterschied zwischen DDL und DML?
  2. Praxis: Schreibe SQL-Anweisungen für eine users Tabelle:
    • DDL: Erstelle die Tabelle mit Feldern id, username, email
    • DML: Füge 3 Benutzer ein
    • DQL: Frage alle Benutzer ab
  3. Fehlerbehebung: Finde den Fehler in diesem SQL:
    sql
    selekt * von users

Nächstes Kapitel

Im nächsten Kapitel lernen wir DDL (Data Definition Language) im Detail - wie man Datenbanken und Tabellen erstellt, ändert und löscht.

Frei für alle Anfänger