{}const=>[]async()letfn</>var
Entwicklung

SQL für Anfänger: Die ersten Abfragen, die Ergebnisse liefern

Von Grund auf neu: 12 vorgefertigte Rezepte für SELECT-Abfragen, Filter, Sortieren, Gruppieren und einfaches JOIN. In diesem Artikel werden Sie den ersten Nutzen von SQL sehen.

К

Kodik

Autor

4 Min. Lesezeit

Was ist SQL in zwei Worten?

SQL (Structured Query Language) — eine Sprache, um die Datenbank nach Fakten zu fragen: „Wie viele Bestellungen?“, „Welche Produkte kosten mehr als 50?“, „Wer hat keinen einzigen Einkauf getätigt?“

Grundlegende Befehle zum Lesen:

  • SELECT — welche Spalten zu nehmen sind;

  • FROM — aus welcher Tabelle;

  • WHERE — welche Zeilen sollen bleiben;

  • ORDER BY — wie man sortiert;

  • LIMIT — wie viele Zeilen zurückgegeben werden sollen;

  • JOIN — wie man Tabellen zusammenklebt;

  • GROUP BY + Aggregate (COUNT, SUM, AVG, MIN, MAX) — gruppieren und zählen.

🔥 100.000+ Schüler sind bereits bei uns

Genug Theorie gelesen?
Zeit zu coden!

Kodik — eine App, in der du durch Praxis programmieren lernst. KI-Mentor, interaktive Lektionen, echte Projekte.

🤖 KI 24/7
🎓 Zertifikate
💰 Kostenlos
🚀 Jetzt starten
Heute beigetreten

Unsere Mini-Basis für Beispiele

Tabelle users

id

name

email

city

1

Anna Ivanova

anna@example.com

Moscow

2

Ivan Petrov

ivan@company.ru

Saint-P

3

Lee Kim

lee.kim@example.com

Tabelle products

id

title

price

1

Keyboard

39.9

2

Mouse

19.9

3

Monitor 24"

149.0

Tabelle orders

id

user_id

product_id

qty

created_at

1

1

1

1

2025-09-01

2

1

3

1

2025-09-03

3

2

2

2

2025-09-05

Die allererste Anfrage:

SELECT * 
FROM users;

SELECT name, city 
FROM users;

Filterung: WHERE

SELECT name, email
FROM users
WHERE city = 'Moscow';

SELECT title, price
FROM products
WHERE price > 20;

SELECT title, price
FROM products
WHERE price BETWEEN 20 AND 150;

SELECT name, city
FROM users
WHERE city IN ('Moscow', 'Saint-P');

SELECT email
FROM users
WHERE email LIKE '%@example.com';

SELECT name
FROM users
WHERE city IS NULL;

Sortieren und Einschränken: ORDER BY + LIMIT

SELECT title, price
FROM products
ORDER BY price ASC
LIMIT 2;

SELECT id, user_id, created_at
FROM orders
ORDER BY created_at DESC
LIMIT 5;

Eindeutige Werte: DISTINCT

SELECT DISTINCT city
FROM users
WHERE city IS NOT NULL;

Gruppen und Aggregate: GROUP BY

SELECT user_id, COUNT(*) AS orders_count
FROM orders
GROUP BY user_id;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY total_revenue DESC;

SELECT p.title, SUM(o.qty * p.price) AS total_revenue
FROM orders o
JOIN products p ON p.id = o.product_id
GROUP BY p.title
HAVING SUM(o.qty * p.price) > 100;

Einfache JOINs ohne Schmerzen

SELECT u.name, p.title, o.qty, o.created_at
FROM orders o
JOIN users u    ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
ORDER BY o.created_at DESC;

SELECT u.name, MAX(o.created_at) AS last_order
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.name
ORDER BY last_order DESC NULLS LAST;

12 schnelle Rezepte für die Arbeit

-- 1. Последние 5 заказов
SELECT * FROM orders ORDER BY created_at DESC LIMIT 5;

-- 2. Пользователи с доменом example.com
SELECT name, email FROM users WHERE email LIKE '%@example.com';

-- 3. Топ-3 товара по выручке
SELECT p.title, SUM(o.qty * p.price) AS revenue
FROM orders o JOIN products p ON p.id = o.product_id
GROUP BY p.title
ORDER BY revenue DESC
LIMIT 3;

-- 4. Пользователи без города
SELECT * FROM users WHERE city IS NULL;

-- 5. Товары в ценовом коридоре
SELECT * FROM products WHERE price BETWEEN 20 AND 150;

-- 6. Количество заказов по дням
SELECT DATE(created_at) AS day, COUNT(*) AS cnt
FROM orders
GROUP BY DATE(created_at)
ORDER BY day;

-- 7. Сколько разных городов
SELECT COUNT(DISTINCT city) FROM users WHERE city IS NOT NULL;

-- 8. Сумма корзины конкретного заказа
SELECT SUM(o.qty * p.price) AS total
FROM orders o JOIN products p ON p.id = o.product_id
WHERE o.id = :id;

-- 9. Все товары, которые покупал Иван
SELECT p.title
FROM orders o
JOIN users u ON u.id = o.user_id
JOIN products p ON p.id = o.product_id
WHERE u.name = 'Ivan Petrov';

-- 10. Заказы за последние 7 дней
SELECT * FROM orders
WHERE created_at >= CURRENT_DATE - INTERVAL '7 DAY';

-- 11. Первые N строк для быстрой проверки
SELECT * FROM users LIMIT 10;

-- 12. Уникальные домены email
SELECT DISTINCT SUBSTRING(email FROM POSITION('@' IN email) + 1) AS domain
FROM users;

Wenn Sie Übungen und kurze Erklärungen wünschen, finden Sie diese in Kodik Wir analysieren SQL anhand von Live-Aufgaben, von einfachen Stichproben bis hin zu Analysen mit Aggregationen. Ohne Wasser, mit Interaktivität.

Wir haben auch einen aktiven Telegram-Kanal, wo wir coole Ideen diskutieren, Erfahrungen teilen und Aufgaben gemeinsam analysieren — Lernen wird nicht nur nützlich, sondern auch unterhaltsam.

Die Frage an Sie: Welcher Teil von SQL ist am beängstigendsten: JOIN, GROUP BY oder der mysteriöse NULL? Schreiben Sie, was Sie im nächsten Artikel analysieren möchten.

🎯Hör auf zu zögern

Artikel gefallen?
Zeit zum Üben!

Bei Kodik liest du nicht nur — du schreibst sofort Code. Theorie + Praxis = echte Skills.

Sofortige Praxis
🧠KI erklärt Code
🏆Zertifikat

Keine Registrierung • Keine Karte