Appearance
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 usersHinweis: 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 KommentarZusammenfassung
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
- Theorie: Was ist der Unterschied zwischen DDL und DML?
- Praxis: Schreibe SQL-Anweisungen für eine
usersTabelle:- DDL: Erstelle die Tabelle mit Feldern
id,username,email - DML: Füge 3 Benutzer ein
- DQL: Frage alle Benutzer ab
- DDL: Erstelle die Tabelle mit Feldern
- 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.
