Benutzer-Werkzeuge

2. Erste Tabelle erstellen

Aufgabe 1

Stellen Sie nochmals sicher, dass Sie sich in der korrekten Datenbank befinden (kundendb).

Wie lautete dieser Befehl noch mal? 😂

Alle Tabellen anzeigen

Es kann sich durchaus lohnen, zuerst mal alle Tabellen aufzulisten, die in der Datenbank vorhanden sind:

SHOW TABLES;

In meiner Datenbank "saklila" (diese Datenbank können Sie bei der Installation von MySQL installieren lassen) befinden sich offensichtlich folgende Tabellen:

Aufgabe 2

Kontrollieren Sie, welche Tabellen Sie in der neu erstellen Datenbank "kundendb" drin haben.

Lösung

Unsere erste Tabelle erstellen

Man kann nicht einfach eine leere Tabelle erstellen, sondern muss auch mindestens ein Attribut aufweisen beim Erstellen.

Der folgende Befehl schlägt also fehl:

CREATE TABLE tblkunden;

Es erscheint eine Fehlermeldung:

Korrekterweise müsste es so aussehen (warten Sie noch mit Erstellen, das kommt später):

CREATE TABLE tblKunden
(
Vorname VARCHAR(20)
);

Sie können auch alles in einer Zeile schreiben, aber das wird sehr unleserlich.

Obiges Code-Beispiel erstellt eine Tabelle "tblKunden" mit einem einzigen Attribut "Ort", welches max. 20 Zeichen enthalten kann. In der Praxis nicht sonderlich sinnvoll…

Apropos Praxis: in der Praxis erstellen Sie fast nie eine Tabelle mit nur einem Attribut. Klar können Sie die Tabelle nachträglich anpassen und neue Attribute hinzufügen. Aber in der Regel schalten Sie vorgängig Ihr Hirn ein (Datenbank-Design erstellen😉) und erstellen gerade alle Attribute, die Sie voraussichtlich benötigen.

Gross- und Kleinschreibung können Sie sich auch bei den Tabellennamen sparen; MySQL ändert die Namen immer auf lowercase.

Bei den Attributen wird es aber anders sein.

Eigenschaften von Attributen

Beim Erstellen von Tabellen und dem Angeben der Attribute können resp. müssen Sie gleich ein paar Eigenschaften der Attribute angeben:

  • Jedes Attribut braucht einen Datentypen (wie oben beispielsweise: VARCHAR())
  • Sie können definieren, dass die Eingabe eines Attributs zwingend ist (man darf es nicht leer lassen)
  • Sie können einen Standardwert pro Attribut angeben, der beim Einfügen eines neuen Datensatzes automatisch eingefügt wird
  • Sie können in einem Attribut automatisch nummerieren. Dies wird meist für das Attribut benötigt, das Primärschlüssel ist
  • Und Sie können eben angeben, welches Attribut resp. welche Attribute Primärschlüssel sein sollen

Datentypen

Datentypen können in die folgenden Gruppen eingeteilt werden:

  • Datentypen für Zahlen
  • Datentypen für Text
  • Datentypen für Datumswerte (das kann SQLite nicht)

Aufgabe 3

Suchen Sie im Internet nach einer schlauen Seite, auf der Sie eine Auflistung von möglichen Datentypen in MySQL finden.

Gehen Sie diese für sich durch und klären Sie, ob diese einigermassen klar sind. Gibt es Datentypen, die Sie nicht verstehen?

Datentypen für Zahlen

Diese sind ähnlich wie bei Programmiersprachen:

  • z.B. INT für Ganzzahlen
  • FLOAT für Gleitkommazahlen

Aufgabe 4

Finden Sie heraus, wie sich die beiden Datentypen NUMERIC und DECIMAL unterscheiden.

Datentypen für Text

Aufgabe 5

Um Texte in der Datenbank zu speichern, haben Sie eine Vielzahl von Datentypen zur Auswahl.

Finden Sie heraus, was der Unterschied zwischen den beiden folgenden Datentypen ist:

  • VARCHAR(65535)
  • TEXT

Aufgabe 6

In der Regel wird empfohlen, für kurze Texte nicht VARCHAR, sondern CHAR zu verwenden.

Finden Sie heraus, weshalb das so ist.

Datentypen für Datums- und Zeitwerte

Aufgabe 7

Es gibt einen speziellen Datentyp YEAR. Das ist auf den ersten Blick ein wenig schräg, weil es ja genügend Datentypen gibt, welche Ganzzahlen speichern können.

Haben Sie eine Ahnung, weshalb es diesen Datentypen gibt?

Eingaben erzwingen

Es kann sein, dass Sie erzwingen wollen, dass die Anwender*in in einem Attribut auch wirklich etwas eingibt. Das kann beispielsweise bei einem Nachnamen der Fall sein (ausser, sie erstellen eine Tabelle, um Kolleg*innen zu erfassen, deren Nachnamen Sie gar nicht kennen).

Sie schreiben dazu hinter der Attribut-Definition noch ein NOT NULL hin:

CREATE TABLE tblKunden
(
Vorname VARCHAR(40) NOT NULL,
Nachname VARCHAR(40) NOT NULL,
Strasse VARCHAR(80)
);

Standardwerte

Sie können definieren, dass bei der Eingabe eines neuen Datensatzes standardmässig ein bestimmter Wert eingetragen wird.

Führen Sie beispielsweise ein Attribut "Land", welches nur Landeskürzel enthalten soll (CH, D, etc.), aber in 90% aller Fälle haben Sie nur Schweizer Adressen, dann können Sie ein "CH" als Standard vorgeben1).

Das sieht wie folgt aus (das obige Beispiel weitergeführt):

CREATE TABLE tblKunden
(
Vorname VARCHAR(40) NOT NULL,
Nachname VARCHAR(40) NOT NULL,
Strasse VARCHAR(80),
Land VARCHAR(3) DEFAULT "CH"
);

Autoincrement

Das Autoincrement gehört auch zu den Standardwerten, nur dass nicht ein fixer Wert eingefügt wird beim Einfügen eines neuen Datensatzes, sondern eine automatisch hochzählende Zahl.

CREATE TABLE tblKunden
(
KundenNr SMALLINT AUTO_INCREMENT,
Vorname VARCHAR(40) NOT NULL,
Nachname VARCHAR(40) NOT NULL,
Strasse VARCHAR(80),
Land VARCHAR(3) DEFAULT "CH"
);

Primärschlüssel definieren

Am besten geben Sie gleich beim Erstellen der Tabelle auch an, welches Attribut der Primärschlüssel sein soll.

Zuerst definieren Sie alle Attribute, danach kommt der Primärschlüssel:

CREATE TABLE tblKunden
(
KundenNr SMALLINT AUTO_INCREMENT,
Vorname VARCHAR(40) NOT NULL,
Nachname VARCHAR(40) NOT NULL,
Strasse VARCHAR(80),
Land VARCHAR(3) DEFAULT "CH",
PRIMARY KEY (KundenNr)
);

Aufgabe 8

Erstellen Sie eine Tabelle aufgrund des folgenden Datenmodells:

Namenskonventionen

Wir haben bereits im Einführungsmodul zu Datenbanken darüber gesprochen: es macht Sinn, dass Tabellenname und Attributnamen sinnvoll vergeben werden.

Häufig wählt man als Präfix den Kleinbuchstaben "t", um anzugeben, dass es sich um ein Tabellenfeld handelt. Tabellen selbst kriegen häufig als Präfix "tbl".

Ebenfalls üblich ist es, eine ID, welche ein Primärschlüssel oder Fremdschlüssel angibt und als Zahl vorkommt, auch als ID zu benennen. Bewährt hat sich allerdings nicht ein Attribut mit dem Namen "ID", sondern zusätzlich mit der Angabe, worum es geht. Also "tKundenID" und eben nicht nur "ID".

In den Erklärungs-Beispielen auf dieser Seite wird das nicht konsequent durchgezogen, in den Übungen aber schon.

Das Land soll vorerst als Kurzzeichen gespeichert werden können, also beispilsweise als "CH", "D", "A", etc.

Überlegen Sie selbst, welche Datentypen Sie verwenden und weshalb.

Zeigen Sie Ihre Lösung der Lehrperson.

Entwurf einer bestehenden Tabelle anzeigen

Nach dem Erstellen der Tabelle wollen Sie auch gleich schauen, ob diese nun wirklich existiert.

Aufgabe 9

Machen Sie gleich mit und geben Sie den folgenden Befehl ein:

SHOW COLUMNS IN tblkunden;

Das sollte die folgende Darstellung zeigen:

Lösung

Also, meine Tabellenstruktur sollte nun auch etwa so aussehen wie Ihrer:

Sehr gut! Somit sind wir bereit, um unsere ersten Datensätze, sprich Kund*innen, zu erfassen.

1)
Ein der Theorie und in einem perfekten Datenbank-Leben in dritter Normalform müssten wir hier eine zweite Tabelle "tblLaender" haben und in der Tabelle "tblKunden" nur den Fremdschlüssel führen. Aber in der Praxis kann man sich dagegen entscheiden

This website uses cookies. By using the website, you agree with storing cookies on your computer. Also, you acknowledge that you have read and understand our Privacy Policy. If you do not agree, please leave the website.

Mehr Info