Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

CSV-Datei mit SQL abfragen

Nach dieser Lektion: Ich kann eine CSV-Datei über ihren Namen mit SQL abfragen.

Lektion, 45 Min.Keine Befehle

Wie fragt man eine CSV-Datei mit SQL ab?

Eine CSV-Datei (englisch comma-separated values, Werte durch Kommas getrennt) enthält eine Tabelle als reinen Text. Mit DuckDB fragen Sie sie über ihren Namen ab, ohne sie vorher in eine Datenbank zu laden.

Das spart den Import, wenn Daten als Export einer Kasse oder einer Umfrage ankommen.

Am Ende dieser Lektion

Notiz

Ich kann eine CSV-Datei über ihren Namen mit SQL abfragen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
CSV-Dateieine Textdatei, in der jede Zeile eine Tabellenzeile ist
Kopfzeiledie erste Zeile mit den Namen der Spalten
read_csvliest eine CSV-Datei wie eine Tabelleread_csv('bestellungen.csv')
TyperkennungDuckDB schließt aus den Werten auf den Typ jeder Spalte
Spaltentypsagt, ob eine Spalte Zahlen, Text oder Daten hältBIGINT

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Datei verhält sich wie eine Tabelle

Die Funktion read_csv liest eine CSV-Datei und gibt sie als Tabelle zurück. Die Kopfzeile liefert die Spaltennamen.

Danach nutzen Sie die Datei in from wie jede Tabelle: mit where, group by und Fensterfunktionen.

In der Spielwiese laden Sie dazu eine eigene CSV-, TSV- oder JSON-Lines-Datei bis 64 KB hoch. Parquet-Dateien gibt es dort nicht.

So sieht die Datei aus

Code: duckdb
id,tag,kundin,produkt,menge,preis_cent
1,2026-06-01,Lena,Heft,3,250
2,2026-06-01,Murat,Stift,10,80
3,2026-06-02,Lena,Ordner,2,420
4,2026-06-03,Sofia,Heft,5,250
5,2026-06-03,Murat,Ordner,1,420

So fragen Sie sie ab

Code: duckdb
-- So fragen Sie die Datei ab (mit hochgeladener Datei).
select produkt, sum(menge) as stueck
from read_csv('bestellungen.csv')
group by produkt
order by produkt;

DuckDB rät den Typ jeder Spalte

Eine CSV-Datei hat keine Typen, nur Text. DuckDB liest die ersten Zeilen und rät: ganze Zahlen werden BIGINT, Daten wie 2026-06-01 werden DATE, alles andere VARCHAR, also Text.

describe select * from read_csv(...) zeigt, was geraten wurde. Prüfen Sie das, bevor Sie rechnen.

Was DuckDB für unsere Datei rät

SpalteBeispielwertGeratener Typ
id1BIGINT
tag2026-06-01DATE
kundinLenaVARCHAR
menge3BIGINT
preis_cent250BIGINT

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Probieren Sie es: ein Wert, der nicht passt

Code: duckdb
-- try_cast gibt NULL, wenn ein Wert nicht passt.
select try_cast('2026-06-01' as date) as gueltig,
       try_cast('morgen' as date) as ungueltig;
-- Probieren Sie try_cast('12' as integer).

Dieselbe Abfrage läuft auf einer Tabelle

In den Blöcken dieser Seite gibt es keine hochgeladene Datei. Darum steht hier eine Tabelle bestellungen, die der Datei entspricht.

Die Abfrage ändert sich nur in einem Wort: from bestellungen statt from read_csv('bestellungen.csv'). Alles andere bleibt gleich.

Probieren Sie es: die Abfrage auf der Tabelle

Code: duckdb
-- Dieselbe Abfrage, auf der nachgebauten Tabelle.
select produkt, sum(menge) as stueck
from bestellungen
group by produkt
order by produkt;
-- Zählen Sie statt der Stücke die Bestellungen je Kundin.

Ein häufiger Fehler

Warnung

Viele glauben, der Dateiname in der Abfrage genüge. Die Datei muss in der Spielwiese erst hochgeladen sein, und sie darf höchstens 64 KB haben. Ohne Datei meldet DuckDB, dass es sie nicht findet.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.