Die Datenbank mit Tabellen und Daten füllen

Vor uns haben wir nun die leere Datenbank we_sell_sql in der unsere Tabellen aus dem Konzeptentwurf stehen sollen. Der Befehl um eine Tabelle zu erstellen sieht wie folgt aus: 

CREATE TABLE name

(attribut1 DATENTYP,
attribut2 DATENTYP,
attribut3 DATENTYP,
.
.
.
attributN DATENTYP,
CONSTRAINT pk_name PRIMARY KEY (attribut1);

Schlüsseln wir die Anweisung auf um zu verstehen, was wir eingegeben haben. CREATE TABLE name. CREATE TABLE ist der Befehl eine neue Tabelle zu erstellen, die Bezeichnung name, bezeichnet die Tabelle, hier kann der Name beliebig gewählt werden, solange er keinem Schlüsselwort von SQL entspricht, nicht mit einer Zahl beginnt und nicht mit einem Leerzeichen. Auf die Schlüsselwörter gehen wir später noch genauer ein. Als Beispiel sei aufgeführt, CREATE TABLE select führt zu einer Fehlermeldung, da “select” ein Schlüsselwort von SQL ist.
Anschließend, werden die Attribute aufgeführt, die die Tabelle enthalten soll sowie die Datentypen deklariert, die für die Attribute gelten sollen. Am Ende der Anweisung wird mit “CONSTRAINT pk_name PRIMARY KEY (attribut1); ” der Primärschlüssel festgelegt.
Die Anweisung im einzelnen : CONSTRAINT pk_name (erstelle einen Primärschlüssel auf der Tabelle name) PRIMARY KEY (attribut1) (verwende als Primärschlüssel das attribut1).

Mit diesem Schema können wir also eine Tabelle erstellen. Am besten übt man das ganze einmal in Ruhe anhand der Kundentabelle aus dem Konzeptentwurf. Sollten Fehler auftreten, könnt ihr eure Eingabe mit dem Code auf der Codeseite vergleichen.

Habt ihr alles eingegeben wie beschrieben, bekommt ihr die übliche Rückmeldung, Query OK, 0 rows affected …
Mit dem Befehl

DESC kunden;

liefert folgendes Ergebnis zurück: DESC_kunden

Die Funktion DESC ist sehr nützlich, sollte man einmal nicht wissen wie eine Tabelle aufgebaut ist, liefert diese Tabelle die Attribute und die zugehörigen Datentypen zurück, sowie den Primärschlüssel. Nun können wir die restlichen Tabellen anlegen. Auf der Codeseite findet ihr die Codebeispiele.

Wenn es euch so geht wie mir, werdet ihr bei den ersten Versuchen, Tabellen zu erstellen Fehlermeldungen erhalten die ihr euch nicht erklären könnt. Das kann daran liegen, dass Tippfehler im SQL-Code vorhanden sind die ihr auf Anhieb nicht als solche identifizieren könnt. Dazu kann es auch gehören, dass ein Komma am Ende einer Zeile fehlt.

Beispiel:
CREATE TABLE test
(id SMALLINT UNSIGNED,
name VARCHAR(50)
ort VARCHAR(35)
);

Führt zu einem Fehler. Warum? Weil das Komma nach der Definition des Attribut “name” fehlt. Der SQL-Server weiß nicht, dass durch den Zeilenumbruch ein neues Attribut gemeint ist.

Ähnlich verhält es sich in folgendem Beispiel:

CREATE TABLE test
(id SMALLINT UNSIGNED,
name VARCHAR(50),
ort VARCHAR(35)
CONSTRAINT PK_test PRIMARY KEY (id)
);

Auch wenn nach “ort” eine neue Anweisung steht, muss diese durch ein Komma abgegrenzt werden.

CREATE TABLE test
(id SMALLINT UNSIGNED,
name VARCHAR(50),
ort VARCHAR(35),
CONSTRAINT PK_test PRIMARY KEY (id)
);

Diese Eingabe führt zum gewünschten Ergebnis. So jetzt haben wir eine Tabelle in unserer Datenbank, die wir nicht brauchen und die keinen Nutzen hatte als den eines Beispiels. Mit dem Befehl: 

DROP TABLE test;

löschen wir die Tabelle aus der Datenbank und haben die Datenbank wieder so vor uns, wie wir sie geplant haben.

Um zu überprüfen ob wir wirklich alle Tabellen so vor uns haben wie wir es wollten, kann man den Befehl

SHOW TABLES;

ausführen. Dann sehen wir, welche Tabellen unsere Datenbank umfasst und können die Tabellen mit

DESC tabellenname;

noch einmal genau überprüfen.DESC-Anweisung

Wir sehen die Attribute noch einmal in der Übersicht mit den zugehörigen Datentypen. Interessant ist die dritte Spalte “NULL”. Darauf gehen wir zu einem späteren Zeitpunkt noch einmal genauer ein, hier sei dazu folgendes gesagt. Bei Attributen, bei denen NULL erlaubt ist, also auf YES steht, ist es möglich, keine Angabe zu machen, so kann beispielsweise ein Kunde erfasst werden, ohne Angabe von Vorname oder Nachname, jedoch darf die Kundennummer NICHT leer sein.

 

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>