Lektion 01 - Grundwissen
Was ist eine Datenbank?
Eine Datenbank speichert Daten so, dass man sie geordnet ablegen, suchen, veraendern und auswerten kann. In Webprojekten arbeiten wir sehr oft mit relationalen Datenbanken wie MySQL oder MariaDB.
1. Wofuer braucht man Datenbanken?
Eine App braucht Daten, die dauerhaft erhalten bleiben: User, Kurse, Aufgaben, Bestellungen, Kommentare, Rollen oder Einstellungen. Eine Datenbank ist dafuer stabiler und strukturierter als eine einfache JSON-Datei.
2. Tabelle, Feld, Datensatz
Eine relationale Datenbank besteht aus Tabellen. Eine Tabelle ist wie eine Excel-Tabelle, aber strenger. Jede Spalte beschreibt ein Feld. Jede Zeile ist ein Datensatz.
id, name, email und points sind
Felder. Die Zeile mit Mina ist ein Datensatz.
3. Primaerschluessel
Ein Primaerschluessel identifiziert einen Datensatz eindeutig. Meist nutzt man
dafuer eine Spalte id. Zwei User duerfen denselben Namen haben, aber
nicht dieselbe ID.
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
points INT NOT NULL DEFAULT 0
);
AUTO_INCREMENT bedeutet: Die Datenbank vergibt automatisch die naechste
ID. PRIMARY KEY macht die Spalte zum Primaerschluessel.
4. Fremdschluessel
Ein Fremdschluessel verbindet Tabellen. Wenn eine Aufgabe zu einem Kurs gehoert,
speichert die Aufgabe nicht den ganzen Kurs, sondern nur die course_id.
CREATE TABLE lessons (
id INT AUTO_INCREMENT PRIMARY KEY,
course_id INT NOT NULL,
title VARCHAR(150) NOT NULL,
FOREIGN KEY (course_id) REFERENCES courses(id)
);
Dadurch weiss die Datenbank: Jede Lektion gehoert zu einem existierenden Kurs.
5. Wichtige Datentypen in MySQL
INTGanze Zahl, zum Beispiel Punkte oder IDs.VARCHAR(255)Text mit maximaler Laenge.TEXTLanger Text, zum Beispiel Beschreibung.DATEDatum ohne Uhrzeit.DATETIMEDatum mit Uhrzeit.BOOLEANWahr/Falsch, in MySQL oft als 0/1 gespeichert.6. CRUD: Die vier Grundaktionen
Fast jede Datenbank-App besteht aus CRUD. Wenn du CRUD verstehst, verstehst du den Kern vieler Webanwendungen.
INSERT - neuen Datensatz anlegen.SELECT - Daten lesen.UPDATE - Daten veraendern.DELETE - Daten loeschen.7. Uebungen
- Erklaere den Unterschied zwischen Tabelle, Feld und Datensatz.
- Entwirf eine Tabelle
coursesmit mindestens vier Feldern. - Entwirf eine Tabelle
tasksmit Primaerschluessel. - Markiere, welche Felder
NOT NULLsein sollten. - Erklaere, warum ein Name kein guter Primaerschluessel ist.
- Schreibe je ein Beispiel fuer Create, Read, Update und Delete in eigenen Worten.