Einfaches Adressbuch

Geschätzte Lektüre: 9 Minuten 120 Ansichten

Ein kleiner Verein möchte eine einfache Liste seiner Mitglieder in einer Datenbank speichern.

Folgende Infos sollen gespeichert werden:
— Vorname
— Nachname
— Anschrift
— E-Mail-Adresse
— Telefonnummer


Aufgabenstellung:

  1. Entwerfe die Datenbank: Zeichne ein ER-Diagramm und zeichne die Tabelle (mit fiktiven Daten).
  2. Bestimme einen Primärschlüssel für die Tabelle.
  3. Schreibe den SQL-CREATE-Befehl für die Tabelle.

Beispiel für einen Eintrag:
Max Mustermann, Musterstraße 5 50667 Köln, m.mutermann@test.de, +49 171 123456


Zeichne eine Tabelle mit den Spaltennamen

Eine Tabelle in einer Datenbank ist wie eine Excel-Tabelle:

SpaltennameWas kommt da rein?
idNummer für jedes Mitglied (eindeutig)
vornameVorname
nachnameNachname
anschriftStraße, Hausnummer, PLZ, Ort
emailE-Mail-Adresse
telefonTelefonnummer

Die Spalte id ist der Primärschlüssel.

Spalten eingeben

SpaltennameTypLänge/WerteAUTO_INCREMENT?Primärschlüssel?
idINTleer lassen✔ ankreuzen✔ ankreuzen
vornameVARCHAR50neinnein
nachnameVARCHAR50neinnein
anschriftVARCHAR100neinnein
emailVARCHAR100neinnein
telefonVARCHAR20neinnein

Bei vorname, nachname, anschrift rechts unter „Null“ → NOT NULL auswählen (das Häkchen bei „Null“ entfernen).

SQL-CREATE-Befehl

CREATE TABLE mitglieder (
    id INT AUTO_INCREMENT PRIMARY KEY,
    vorname VARCHAR(50) NOT NULL,
    nachname VARCHAR(50) NOT NULL,
    anschrift VARCHAR(100) NOT NULL,
    email VARCHAR(100),
    telefon VARCHAR(20)
);

Vollständige SQL-Quellcode

-- ============================================================
-- EINFACHES ADRESSBUCH FÜR EINEN VEREIN
-- ============================================================
-- Datenbank: verein (falls sie nicht existiert, wird sie erstellt)
-- Tabelle: mitglieder
-- ============================================================

-- 1. Datenbank erstellen (falls noch nicht vorhanden)
-- --------------------------------------------------------
CREATE DATABASE IF NOT EXISTS verein
DEFAULT CHARACTER SET utf8mb4   -- utf8mb4 unterstützt alle Sonderzeichen und Emojis
COLLATE utf8mb4_unicode_ci;     -- "ci" steht für "case insensitive" (Groß-/Kleinschreibung egal)

-- 2. Datenbank verwenden (aktivieren)
-- --------------------------------------------------------
USE verein;

-- 3. Tabelle "mitglieder" erstellen
-- --------------------------------------------------------
-- Eine Tabelle ist wie ein Arbeitsblatt in Excel mit festen Spalten
CREATE TABLE IF NOT EXISTS mitglieder (
    -- Spalte 1: Eindeutige ID (Primärschlüssel)
    -- INT = Ganzzahl (1, 2, 3, ...)
    -- AUTO_INCREMENT = MySQL zählt automatisch hoch (1,2,3,...)
    -- PRIMARY KEY = Identifiziert jeden Datensatz eindeutig
    id INT AUTO_INCREMENT PRIMARY KEY,
    
    -- Spalte 2: Vorname
    -- VARCHAR(50) = Text mit maximal 50 Zeichen
    -- NOT NULL = Dieses Feld darf nicht leer sein
    vorname VARCHAR(50) NOT NULL,
    
    -- Spalte 3: Nachname
    nachname VARCHAR(50) NOT NULL,
    
    -- Spalte 4: Anschrift (Straße, Hausnummer, PLZ, Ort)
    anschrift VARCHAR(100) NOT NULL,
    
    -- Spalte 5: E-Mail-Adresse
    -- Kein NOT NULL, weil nicht jedes Mitglied eine E-Mail haben muss
    email VARCHAR(100),
    
    -- Spalte 6: Telefonnummer
    -- Kein NOT NULL, weil nicht jedes Mitglied ein Telefon haben muss
    telefon VARCHAR(20)
);

-- 4. Beispiel-Datensätze einfügen (INSERT)
-- --------------------------------------------------------
-- INSERT INTO = Fügt neue Zeilen in die Tabelle ein
-- Die id wird automatisch vergeben (1,2,3...), deshalb lassen wir sie weg

-- Mitglied 1: Max Mustermann (Vorstand)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Max',                      -- Vorname
    'Mustermann',               -- Nachname
    'Musterstraße 5, 50667 Köln',  -- Anschrift
    'max.mustermann@test.de',   -- E-Mail
    '+49 171 123456'            -- Telefon
);

-- Mitglied 2: Erika Musterfrau (Kassiererin)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Erika',
    'Musterfrau',
    'Hauptstraße 12, 10115 Berlin',
    'erika.musterfrau@web.de',
    '+49 30 1234567'
);

-- Mitglied 3: Hans Dampf (Schriftführer)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Hans',
    'Dampf',
    'Bergweg 7, 80331 München',
    'hans.dampf@gmx.de',
    '+49 89 7654321'
);

-- Mitglied 4: Anna Licht (Beisitzerin, keine E-Mail)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Anna',
    'Licht',
    'Sonnenallee 23, 40213 Düsseldorf',
    NULL,                       -- NULL bedeutet: keine E-Mail vorhanden
    '+49 211 9876543'
);

-- Mitglied 5: Peter Lustig (Beisitzer, kein Telefon)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Peter',
    'Lustig',
    'Waldstraße 42, 60313 Frankfurt',
    'peter.lustig@online.de',
    NULL                        -- NULL bedeutet: keine Telefonnummer vorhanden
);

-- Mitglied 6: Sabine Klein (Mitglied ohne E-Mail und Telefon)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Sabine',
    'Klein',
    'Gartenweg 9, 70173 Stuttgart',
    NULL,
    NULL
);

-- Mitglied 7: Thomas Groß (Ehrenmitglied)
INSERT INTO mitglieder (vorname, nachname, anschrift, email, telefon)
VALUES (
    'Thomas',
    'Groß',
    'Schlossplatz 1, 04109 Leipzig',
    'thomas.gross@ehrenmail.de',
    '+49 341 1122334'
);

-- ============================================================
-- ZUSÄTZLICHE NÜTZLICHE BEFEHLE ZUM AUSPROBIEREN
-- (Diese sind nur zum Testen, nicht zum Ausführen notwendig)
-- ============================================================

-- Alle Mitglieder anzeigen (wie ein Blick in die Tabelle)
SELECT * FROM mitglieder;

-- Nur bestimmte Spalten anzeigen
SELECT vorname, nachname, email FROM mitglieder;

-- Nach einem bestimmten Mitglied suchen (z.B. alle mit Nachname "Lustig")
SELECT * FROM mitglieder WHERE nachname = 'Lustig';

-- Mitglieder nach Nachname sortieren (A-Z)
SELECT * FROM mitglieder ORDER BY nachname ASC;

-- Ein Mitglied ändern (z.B. neue E-Mail für Max Mustermann)
UPDATE mitglieder SET email = 'max.neu@test.de' WHERE id = 1;

-- Ein Mitglied löschen (Vorsicht! z.B. Mitglied mit id=6)
DELETE FROM mitglieder WHERE id = 6;

-- Tabelle komplett löschen (Achtung! alle Daten weg)
DROP TABLE mitglieder;

-- Datenbank komplett löschen (Achtung! alles weg)
DROP DATABASE verein;
Dieses Dokument teilen

Einfaches Adressbuch

Oder Link kopieren

INHALT

Abonnieren

×
Cancel