Hauptmenü

Untermenü

Advanced SQL - Einstiegstutorial 2 - Einführung

1. Die Abschnitte

2. Die Voraussetzung

... für dieses Tutorial ist ganz einfach. Ihr müsst nämlich definitiv zuvor das erste Einstiegstutorial durchgearbeitet haben. Und natürlich auch über das dort benötigte Wissen verfügen. Also solltet ihr euch vorher mit diesen beiden Kapitel auseinandersetzen.

Wer also direkt hier gelandet ist, bewege sich dorthin, gehe nicht über "Los" und ziehe nicht 4000 Euro ein.

3. Über dieses Tutorial

Hier werden wir nun die Datenbank füllen, die wir vorher erstellt haben. Es empfiehlt sich daher, dass ihr über ein MySQL-Frontend wie phpMyAdmin oder HeidiSQL verfügen, denn das Arbeiten an der Konsole ist besonders in diesem Fall nicht so prickelnd.

Vorgehensweise

Zuerst spielen wir ein paar "unwichtige" Datensätze in die entsprechenden Tabellen ein und danach kümmern wir uns um die "wichtigen".

4. Die Basisdaten

... sind für unsere vier Standardtabellen gedacht. Also alle diejenigen ohne Fremdschlüssel. Da das zum Grundwissen gehört, gehe ich auf die Details nicht näher ein.

gilde, stufe und wesen


INSERT INTO gilde (nameVALUES('Der Chantalle ihr Stecher seine Freunde');
INSERT INTO gilde (nameVALUES('Die Wutzi-Zwerge');
INSERT INTO gilde (nameVALUES('Wigald und die wilden Wichtelmänner');
INSERT INTO gilde (nameVALUES('De Kölle-Kalk brothaaaz from da hood');

INSERT INTO stufe (stufeVALUES('Blutiger Anfänger');
INSERT INTO stufe (stufeVALUES('Hoffnungsvolles Nachwuchstalent');
INSERT INTO stufe (stufeVALUES('Mittelprächtiger Chancentod');
INSERT INTO stufe (stufeVALUES('Brauchbare Kampfsau');
INSERT INTO stufe (stufeVALUES('Der Blutgrätscher');
INSERT INTO stufe (stufeVALUES('Alleskönner');
INSERT INTO stufe (stufeVALUES('Franz Beckenbauer');

INSERT INTO wesen (wesenVALUES('Kampfzwerg');
INSERT INTO wesen (wesenVALUES('Fluppiwuppi Zauberer');
INSERT INTO wesen (wesenVALUES('Emo-Elfe');
INSERT INTO wesen (wesenVALUES('Hippie Hobbit');
INSERT INTO wesen (wesenVALUES('Subklinischer Psychopatenork');
INSERT INTO wesen (wesenVALUES('Rostiger Recke');
INSERT INTO wesen (wesenVALUES('Sehgestörter Zyklop');
INSERT INTO wesen (wesenVALUES('Dreibein Zentaur');
INSERT INTO wesen (wesenVALUES('Superfieser Oberbösewicht');

Und die Primärschlüssel?

Die sollen uns egal sein. Denn zur referentiellen Integrität einer Datenbank gehört auch, dass man sich um so was nicht kümmern muss. Und wer unbedingt meint, obige SQL-Anweisungen zwei Mal ausführen zu müssen, der ist selber Schuld. Denn gegen Dummheit kämpfen selbst Götter vergeblich. Wer es ganz genau nehmen will, kann vor die einzelnen Blöcke noch ein TRUNCATE TABLE tabellenname setzen. Damit himmelt man eine Tabelle und setzt den PRIMARY KEY gleichzeitig auf Null zurück.

status

Hier dagegen muss man höllisch aufpassen. Denn wir haben ja die Spalte id mit dem Typ ENUM versehen und gleichzeitig festgelegt, dass es einen Default-Wert gibt.


DROP TABLE IF EXISTS status;
CREATE TABLE status
(
  id ENUM('1','2'NOT NULL DEFAULT 2,
  status VARCHAR(128),
  UNIQUE KEY(idstatus)
) ENGINE=INNODB;

Darum muss man hier definitiv auch noch diese Spalte in die Dateneingabe mit einbeziehen.


INSERT INTO status (idstatusVALUES (1'Gildenmitglied');
INSERT INTO status (idstatusVALUES (2'Gildenmeister');

weiter zum nächsten Abschnitt