Zum Hauptinhalt springen

Tabellen Erstellen

Datenbank erstellen​

CREATE DATABASE​

Mit dem Befehl CREATE DATABASE kann eine neue Datenbank erstellt werden.

CREATE DATABASE ef_reto;

DROP DATABASE​

Die Datenbank kann mit dem Befehl DROP DATABASE auch wieder gelöscht werden:

DROP DATABASE ef_reto;
Wichtig

Bitte löschen Sie nur Datenbanken, die Sie selber erstellt haben!
Der Einfachheit halber haben Sie auf der Kursdatenbank EDU-DBs EF alle Rechte...

1. Datenbank erstellen

Erstellen Sie eine eigene Datenbank mit nach folgendem Schema ef_name, wobei Sie natĂĽrlich Ihren eigenen Namen verwenden. Wenn der Befehl erfolgreich ausgefĂĽhrt wurde, sollte Ihre Datenbank nach dem Aktualisieren der Verbindungen angezeigt werden.

Tabellen erstellen​

CREATE TABLE​

Tabellen werden mit dem Befehl CREATE TABLE erstellt. Die Spalten werden mit dem Namen und dem Datentyp definiert.

CREATE TABLE persons (
id INT,
name TEXT,
alter INT,
beschreibung TEXT
)

Konvention Der Name der Tabelle wird immer im Plural geschrieben.

Datensätze einfügen​

INSERT INTO​

Mit dem Befehl INSERT INTO können Datensätze in die Tabelle eingefügt werden.

INSERT INTO persons 
(id, name, alter, beschreibung)
VALUES
(1, 'Maria Muster', 42, 'Ein ganz normaler Mensch'),
(2, 'Hans Monster', 55, 'Ein ganz monströser Mensch');
2. Datensätze einfügen

Datenbank

mit der eigenen Datenbank verbinden!

👉 https://db-sql.ch/connections/d68ea3c2-eb9f-4454-aa19-9c00764757b5

Erstellen Sie eine Personen-Tabelle mit einigen selbst gewählten Attributen und fügen Sie einige Datensätze ein. Halten Sie das Query unten fest.

Was passiert, wenn Sie nun nochmals die gleichen Datensätze einfügen?

Tabellen löschen​

DROP TABLE​

Um eine Tabelle zu löschen, wird der Befehl DROP TABLE verwendet.

DROP TABLE persons;

Constraints​

Constraints sind Regeln, die auf die Daten angewendet werden. Sie können auf die Spalten oder auf die ganze Tabelle angewendet werden. So wird sichergestellt, dass die Daten in der Tabelle immer korrekt sind.

Damit kann bspw. auch verhindert werden, dass wie oben geschehen, die gleichen Datensätze mehrmals eingefügt werden.

PRIMARY KEY

Primärschlüssel - Die Datenbank stellt sicher, dass der verwendete Schlüssel eindeutig ist und nicht NULL ist.

NOT NULL

Die Spalte darf nicht NULL sein.

UNIQUE

Der Wert in der Spalte muss eindeutig sein.

DEFAULT

Der Standardwert, der verwendet wird, wenn kein Wert angegeben wird.

SERIAL

Automatisch generierter Wert, der bei jedem neuen Datensatz um 1 erhöht wird. Beim Primärschlüssel muss dadurch beim Erstellen eines Datensatzes kein Wert angegeben werden.

DEFAULT CURRENT_TIMESTAMP

Der aktuelle Zeitstempel wird als Standardwert verwendet.

Obige Tabelle könnte also auch wie folgt definiert werden:

CREATE TABLE persons (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
alter INT,
beschreibung TEXT DEFAULT 'Keine Beschreibung vorhanden',
erstellt_am TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)

Die Eingabe wird wegen der automatischen ID's etwas einfacher. Bemerken Sie zudem, dass automatisch von der Datenbank ein Zeitstempel gesetzt wird.

INSERT INTO persons 
(name, alter, beschreibung)
VALUES
('Maria Muster', 42, 'Ein ganz normaler Mensch'),
('Hans Monster', 55, 'Ein ganz monströser Mensch');
3. Tabelle mit Constraints

Datenbank

mit der eigenen Datenbank verbinden!

👉 https://db-sql.ch/connections/d68ea3c2-eb9f-4454-aa19-9c00764757b5

Erstellen Sie Ihre Personen-Tabelle erneut (zuerst Löschen...)

  • verwenden Sie einen seriellen PrimärschlĂĽssel

  • stellen Sie sicher, dass benötigte Felder gesetzt werden mĂĽssen

  • FĂĽgen Sie fĂĽr mindestens ein Attribut einen Standardwert

  • FĂĽgen Sie ein erstellt_am (oder created_at) Feld hinzu, welches automatisch mit dem aktuellen Zeitstempel gefĂĽllt wird.

  • FĂĽgen Sie einige Datensätze ein - passen Sie am besten das Query von oben an.

Was passiert nun, wenn Sie die Restriktionen verletzen? Probieren Sie es aus und halten Sie einige Fehlermeldungen fest.