Eine Tabelle erstellen
Bisher hast du mit Tabellen gearbeitet, die schon da waren. In dieser Lektion erstellst du eigene Tabellen und siehst nebenbei, wie die Tabellen von Pixel Shop entstanden sind. Eine neue Tabelle erstellst du mit der Anweisung CREATE TABLE, gefolgt vom Namen der Tabelle und, in Klammern, ihren Spalten:
CREATE TABLE plattformen (
name TEXT,
hersteller TEXT,
jahr INTEGER
) STRICT;Jede Spalte hat einen Namen und einen Typ, der sagt, welche Art von Werten sie aufnimmt: TEXT für Text, INTEGER für Ganzzahlen. Die anderen Typen lernst du in der nächsten Übung kennen. Kommas trennen die Spalten, und nach der schließenden Klammer folgen das Wort STRICT und ein Semikolon. Jede Spalte in eine eigene Zeile zu schreiben ist nicht nötig, macht die Tabelle aber leicht lesbar.
Namen von Tabellen und Spalten schreibt man meist klein, mit einem Unterstrich zwischen den Wörtern, wie bestellt_am oder geworben_von. Eine Tabelle bekommt meist einen Namen im Plural, da sie viele Zeilen enthält: spiele, kunden.
CREATE TABLE sucht keine Zeilen, also zeigt es kein Ergebnis, und die neue Tabelle ist leer. Du füllst sie mit INSERT, das du aus der letzten Lektion kennst, und siehst sie dir mit SELECT an:
INSERT INTO plattformen (name, hersteller, jahr)
VALUES ('PlayStation 5', 'Sony', 2020),
('Switch', 'Nintendo', 2017),
('Xbox Series X', 'Microsoft', 2020);
SELECT * FROM plattformen;| name | hersteller | jahr |
|---|---|---|
| PlayStation 5 | Sony | 2020 |
| Switch | Nintendo | 2017 |
| Xbox Series X | Microsoft | 2020 |
Diese Übung beginnt mit einer leeren Datenbank, der Tab Tabellen hat also nichts zu zeigen. Er würde deine Tabelle auch sonst nicht zeigen: Er zeigt nur die Tabellen, mit denen eine Übung beginnt. Um zu sehen, was in deiner Tabelle steht, fragst du sie ab. Und da jedes Ausführen mit einer frischen Datenbank beginnt, erstellt deine Datei die Tabelle jedes Mal neu. In einer echten Datenbank wird eine Tabelle einmal erstellt und bleibt dann bestehen; dasselbe CREATE TABLE noch einmal auszuführen, würde mit dem Fehler table plattformen already exists enden.
Wofür ist STRICT da? Ohne es lässt SQLite jeden Wert in jede Spalte, sogar einen Text in eine Spalte für Ganzzahlen. SQLite ist darin ungewöhnlich: Andere Datenbanken wie PostgreSQL oder MySQL prüfen die Typen immer. STRICT lässt auch SQLite sie prüfen, sodass ein Wert vom falschen Typ abgelehnt wird:
INSERT INTO plattformen (name, hersteller, jahr)
VALUES ('Steam Deck', 'Valve', 'im Jahr 2022');Error on line 1: cannot store TEXT value in INTEGER column plattformen.jahrAlle Tabellen von Pixel Shop sind STRICT, und das gilt auch für jede Tabelle, die du in diesem Kurs erstellst. Ein Fehler in den Daten ist leicht zu beheben, wenn die Datenbank ihn sofort stoppt, und viel schwerer, wenn ihn Monate später jemand findet.
Typischer Fehler: ein Komma nach der letzten Spalte. Kommas stehen nur zwischen den Spalten, also schlägt das hier fehl:
CREATE TABLE plattformen (
name TEXT,
hersteller TEXT,
jahr INTEGER,
) STRICT;Error on line 1: near ")": syntax errorSo schreibst du es:
Anweisungen
- 1
Der Shop möchte eine Liste seiner Mitarbeiter führen. Erstelle eine Tabelle
mitarbeitermit drei Spalten:nameundberuf, beide Text, undgehalt, eine Ganzzahl. VergissSTRICTnicht. Wenn du sie ausführst, gibt es unter Ergebnis noch nichts zu sehen: Die Datei hat keine Abfrage. - 2
Füge darunter diese drei Mitarbeiter ein (Name, Beruf, Gehalt):
'Lena Maier', 'Leitung', 4100'Ben Richter', 'Support', 2800'Zoe Peters', 'Marketing', 3200
Zeige dann die ganze Tabelle, sortiert nach dem Gehalt, das höchste zuerst:
name beruf gehalt Lena Maier Leitung 4100 Zoe Peters Marketing 3200 Ben Richter Support 2800