Direkt zum Inhalt

BPE 6 · J1

Tabellen anlegen und Daten einfügen

Aus einem relationalen Modell wird eine lauffähige Datenbank. Du legst Tabellen mit Schlüsseln an und speicherst vollständige, widerspruchsfreie Datensätze.

Bildungsplanbezug: BPE 6.3 · interne Lerneinheit 6.2.1

Geschätzte Lernzeit: 60 Minuten

Noch nicht begonnen

Das kannst du danach

  • CREATE TABLE und INSERT INTO unterscheiden
  • passende Datentypen und Pflichtfelder festlegen
  • Primär- und Fremdschlüssel in SQL umsetzen
  • mehrere Datensätze mit expliziter Spaltenliste einfügen

Verständlich erklärt

CREATE TABLE definiert die Struktur, INSERT INTO fügt Zeilen ein. INTEGER steht hier für ganze Zahlen, TEXT für Zeichenketten. PRIMARY KEY identifiziert Datensätze; REFERENCES verweist auf einen existierenden Schlüssel einer anderen Tabelle. NOT NULL macht eine Angabe verpflichtend. Schreibe bei INSERT die Spalten explizit auf: Die Werte werden in genau dieser Reihenfolge zugeordnet. Text steht in einfachen Anführungszeichen, SQL-NULL ohne Anführungszeichen. Im lokalen SQLite-Trainer erzeugt INTEGER PRIMARY KEY bei einer weggelassenen oder als NULL angegebenen ID automatisch eine ID; das ist eine SQLite-Besonderheit. Zusammengesetzte Primärschlüssel werden hier zusätzlich mit NOT NULL abgesichert. Fremdschlüsselprüfung ist eingeschaltet.

  • DDL
  • DML
  • CREATE TABLE
  • INSERT INTO
  • PRIMARY KEY
  • FOREIGN KEY
  • NOT NULL
  • DEFAULT

Beispiel

CREATE TABLE team (
  id INTEGER PRIMARY KEY,
  name TEXT NOT NULL
);
INSERT INTO team (id, name) VALUES (1, 'Lernwerkstatt');

Typische Fehler

  • Tabellenname und Spaltenliste bei INSERT nicht passend zuordnen
  • NULL als Text in Anführungszeichen speichern
  • Einen Fremdschlüssel auf einen noch nicht vorhandenen Datensatz verweisen lassen

Kurz zusammengefasst

Zuerst Struktur und Integritätsregeln anlegen, danach passende Daten einfügen. Schlüssel verbinden Tabellen; NOT NULL und DEFAULT regeln fehlende Angaben.

Abi-Bezug

Überführe ein gegebenes relationales Modell in SQL-DDL und begründe, welche Integritätsbedingungen durch Schlüssel und Pflichtfelder gesichert werden.

Jetzt selbst ausprobieren

Prüfe deine Lösung automatisch. Bei Bedarf helfen dir ein Tipp und anschließend die Musterlösung.

BPE 6J11 Punkteleicht

Struktur oder Inhalt?

Noch nicht begonnen

Aufgabenstellung

Eine Tabelle medium ist noch nicht vorhanden. Welche Reihenfolge legt sie an und speichert danach ein Buch?

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Eine Zeile benötigt eine Tabelle, in der sie gespeichert wird.
  2. CREATE verändert die Struktur, INSERT ergänzt den Inhalt.
Lösung anzeigen
CREATE TABLE definiert zuerst die Tabelle. INSERT INTO kann danach Zeilen in diese vorhandene Struktur einfügen.
BPE 6J11 Punkteleicht

Eine erste Medientabelle

Noch nicht begonnen

Aufgabenstellung

Lege die leere Tabelle katalog an. Sie hat genau zwei Spalten in dieser Reihenfolge: id INTEGER PRIMARY KEY und titel TEXT NOT NULL. Füge selbst noch keine Zeilen ein.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

Die Übungsdatenbank enthält anfangs keine Tabellen und keine Zeilen. Lege die in der Aufgabe beschriebene Tabelle an.

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Trenne die beiden Spaltendefinitionen durch ein Komma.
  2. Der Schlüssel wird an id, die Pflichtangabe an titel festgelegt.
Lösung anzeigen
CREATE TABLE katalog (id INTEGER PRIMARY KEY, titel TEXT NOT NULL);
BPE 6J11 Punkteleicht

Ein Medium mit Spaltenliste einfügen

Noch nicht begonnen

Aufgabenstellung

Ergänze in medium genau den Datensatz id = 3, titel = Netzwerk kompakt, standort = B2. Die vorhandenen Zeilen bleiben unverändert. Verwende eine explizite Spaltenliste.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE medium (id INTEGER PRIMARY KEY, titel TEXT NOT NULL, standort TEXT);
Startdaten: medium
idtitelstandort
1Daten entdeckenA1
2Python im AlltagNULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Die drei Werte stehen in der Reihenfolge der angegebenen Spalten.
  2. Schreibe Titel und Standort in einfache Anführungszeichen; die ID bleibt eine Zahl.
Lösung anzeigen
INSERT INTO medium (id, titel, standort) VALUES (3, 'Netzwerk kompakt', 'B2');
BPE 6J12 Punktemittel

Zwei Datensätze und ein unbekannter Standort

Noch nicht begonnen

Aufgabenstellung

Füge zwei Medien ein: (3, Algorithmenlabor, C1) und (4, Robotikstart, unbekannter Standort). Speichere den unbekannten Standort als SQL-NULL, nicht als Text. Verändere die bisherigen Daten nicht.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE medium (id INTEGER PRIMARY KEY, titel TEXT NOT NULL, standort TEXT);
Startdaten: medium
idtitelstandort
1Daten entdeckenA1
2Python im AlltagNULL

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Nach VALUES darfst du mehrere geklammerte Wertelisten durch Kommas trennen.
  2. NULL ist ein SQL-Schlüsselwort und steht ohne Anführungszeichen.
Lösung anzeigen
INSERT INTO medium (id, titel, standort) VALUES (3, 'Algorithmenlabor', 'C1'), (4, 'Robotikstart', NULL);
BPE 6J12 Punktemittel

Welche INSERT-Aussagen stimmen?

Noch nicht begonnen

Aufgabenstellung

Wähle alle richtigen Aussagen über INSERT INTO medium (id, titel, standort) VALUES (5, 'SQL-Werkstatt', NULL);.

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Vergleiche NULL ohne Anführungszeichen mit dem Text 'NULL'.
  2. INSERT ergänzt Zeilen; für eine neue Tabelle wäre CREATE TABLE nötig.
Lösung anzeigen
Die explizite Spaltenliste steuert die Wertzuordnung. NULL ohne Anführungszeichen bedeutet fehlender Wert. INSERT setzt die Tabelle voraus.
BPE 6J12 Punktemittel

Pflichtfeld und Standardwert

Noch nicht begonnen

Aufgabenstellung

Lege die leere Tabelle lager mit genau diesen Spalten an: id INTEGER PRIMARY KEY, name TEXT NOT NULL, menge INTEGER NOT NULL DEFAULT 0. Ohne angegebene Menge soll 0 gespeichert werden. Die Anwendung darf später positive Mengen speichern.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

Die Übungsdatenbank enthält anfangs keine Tabellen und keine Zeilen. Lege die in der Aufgabe beschriebene Tabelle an.

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. DEFAULT 0 greift, wenn menge beim INSERT weggelassen wird.
  2. NOT NULL ist trotzdem nötig: Ein ausdrücklich eingefügtes NULL ist kein weggelassener Wert.
Lösung anzeigen
CREATE TABLE lager (id INTEGER PRIMARY KEY, name TEXT NOT NULL, menge INTEGER NOT NULL DEFAULT 0);
BPE 6J13 Punkteanspruchsvoll

Eine n:m-Warteliste anlegen

Noch nicht begonnen

Aufgabenstellung

Ergänze die leere Tabelle warteliste mit genau person_id INTEGER NOT NULL und kurs_id INTEGER NOT NULL. Das Paar bildet den Primärschlüssel in dieser Reihenfolge. person_id verweist auf person(id), kurs_id auf kurs(id). Eine Person darf auf mehrere Kurse warten, ein Paar darf nur einmal vorkommen. Vorhandene Tabellen bleiben erhalten.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT NOT NULL, ort TEXT NOT NULL);
Startdaten: person
idnameort
1AylinUlm
2BenUlm
3CemBaden
4DanaBaden
CREATE TABLE kurs (id INTEGER PRIMARY KEY, titel TEXT NOT NULL);
Startdaten: kurs
idtitel
1SQL
2Python
3Datenmodell
CREATE TABLE anmeldung (person_id INTEGER NOT NULL REFERENCES person(id), kurs_id INTEGER NOT NULL REFERENCES kurs(id), punkte INTEGER, PRIMARY KEY (person_id, kurs_id));
Startdaten: anmeldung
person_idkurs_idpunkte
1112
129
21NULL
3215
3112

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Der zusammengesetzte Schlüssel wird als PRIMARY KEY (person_id, kurs_id) angegeben.
  2. Jede der zwei Spalten braucht einen eigenen Verweis auf den passenden Primärschlüssel.
Lösung anzeigen
CREATE TABLE warteliste (
  person_id INTEGER NOT NULL REFERENCES person(id),
  kurs_id INTEGER NOT NULL REFERENCES kurs(id),
  PRIMARY KEY (person_id, kurs_id)
);
BPE 6J13 Punkteanspruchsvoll

Eine Anmeldung ergänzen

Noch nicht begonnen

Aufgabenstellung

Dana (Person-ID 4) meldet sich für SQL (Kurs-ID 1) an; es liegen noch keine Punkte vor. Ergänze genau diese Anmeldung in anmeldung. Erhalte alle fünf vorhandenen Anmeldungen und speichere fehlende Punkte als NULL.

Eine SELECT-Ausgabe ist nicht nötig. Die Prüfung untersucht anschließend die Tabellenstruktur beziehungsweise die gespeicherten Daten in deiner isolierten Übungsdatenbank.

Datenbankschema und vollständige Startdaten anzeigen

Fiktive Übungsdaten. Jeder Test startet neu mit genau diesen Daten. NULL bedeutet: kein Wert gespeichert. Preise und Beträge sind ganze Euro; das Datum hat das Format JJJJ-MM-TT.

CREATE TABLE person (id INTEGER PRIMARY KEY, name TEXT NOT NULL, ort TEXT NOT NULL);
Startdaten: person
idnameort
1AylinUlm
2BenUlm
3CemBaden
4DanaBaden
CREATE TABLE kurs (id INTEGER PRIMARY KEY, titel TEXT NOT NULL);
Startdaten: kurs
idtitel
1SQL
2Python
3Datenmodell
CREATE TABLE anmeldung (person_id INTEGER NOT NULL REFERENCES person(id), kurs_id INTEGER NOT NULL REFERENCES kurs(id), punkte INTEGER, PRIMARY KEY (person_id, kurs_id));
Startdaten: anmeldung
person_idkurs_idpunkte
1112
129
21NULL
3215
3112

Ausgabe bzw. Vorschau

Noch nicht ausgeführt.
2 Tipps anzeigen
  1. Die Namen helfen beim Lesen; gespeichert werden in der Zuordnungstabelle die IDs.
  2. Nicht bewertet bedeutet NULL, nicht 0 Punkte.
Lösung anzeigen
INSERT INTO anmeldung (person_id, kurs_id, punkte) VALUES (4, 1, NULL);

Lektionsabschluss

Bearbeite Aufgaben, um deine Auswertung zu sehen.