Quakenet/#php Tutorial

Hinweis: Wenn sie diese Seite von einer externen URL aufgerufen haben achten sie darauf das alle Kapitel aufeinander aufbauen. Stellen sie daher sicher dass sie alle vorherigen Kapitel gelesen haben, da sie sonst relevante Informationen übersehen.

MySQL / Tabellen

  1. Aufbau von Tabellen in MySQL
  2. Typen von Spalten
  3. Erstellen von MySQL-Tabellen

1. Aufbau von Tabellen in MySQL

In MySQL werden Daten in Tabellen in Form von Datensätzen abgespeichert. Damit eine solche Tabelle identifiziert werden kann besitzen alle Tabellen einen Namen. Des Weiteren gehören zu einer Tabelle eine Anzahl von Spaltennamen und den dazugehörigen Spaltentypen. So kann z.B. die Tabelle News eine Spalte Datum vom Typ DATETIME enthalten. Somit besitzt jeder Datensatz ein Wert für die Spalte Datum der vom Typ DATETIME ist.

Tabelle News
Datum

2. Typen von Spalten

MySQL unterstützt eine Menge von Spaltentypen. Aus dieser großen Menge ist es somit möglich den richtigen Spaltentyp zu wählen der den Anforderungen der Spalte entspricht. Eine Zahl wird daher am besten in einem INT Feld gespeichert, ein längerer Text in einem TEXT Feld. Eine komplette Liste von Spaltentypen ist im MySQL-Handbuch im Kapitel Chapter 9. Data Types zu finden. Hier eine kleine Auswahl von Spaltentypen.

3. Erstellen von MySQL-Tabellen

Um Tabellen in MySQL zu erstellen wird der SQL-Befehl CREATE TABLE verwendet. Dabei wird zuerst ein Tabellenname angegeben. Hierbei darf der Tabellennamen nicht aus einem MySQL Schlüsselwort bestehen. Danach folgt in Klammern eine Aufzählen von Spalten, die untereinander mit einem Kommata getrennt sind. Jede Spaltenangabe besteht dabei aus den Namen und den Typ der Spalte, kann aber auch zusätzliche Optionen wie NOT NULL, PRIMARY KEY und AUTO_INCREMENT besitzen. Wie jeder SQL-Befehl muss auch ein CREATE TABLE mit einem Semikolon abgeschlossen werden. Ein Beispielquery für das erstellen einer Tabelle könnte wie folgt aussehen.

CREATE TABLE News (
    ID INT AUTO_INCREMENT PRIMARY KEY,
    Autor VARCHAR(30) NOT NULL,
    Titel VARCHAR(50) NOT NULL,
    Inhalt TEXT NOT NULL,
    Datum DATETIME NOT NULL
);

Beachtet dass es sich hierbei um einen SQL-Befehl handelt. Er kann so nicht direkt im PHP-Code verwendet werden. Um ein Befehl an eine Datenbank zu senden müssen entsprechende Funktionen wie mysql_query oder mysqli_query verwendet werden.

Die NOT NULL-Angaben bewirken dass ein Datensatz an dieser Stelle ein Wert besitzen muss. Dieser Query erstellt dabei folgende Tabelle.

Tabelle News
ID Autor Titel Inhalt Datum

Da die Tabelle gerade erst erstellt wurde existieren entsprechend auch noch keine Datensätze.

Achtet darauf welche Groß- und Kleinschreibung ihr für eure Tabellen und Spaltennamen verwendet. Das MySQL-Handbuch schreibt dazu folgendes.

Each table within a database corresponds to at least one file within the database directory (and possibly more, depending on the storage engine). Triggers also correspond to files. Consequently, the case sensitivity of the underlying operating system plays a part in the case sensitivity of database and table names. This means database, table, and trigger names are not case sensitive in Windows, but are case sensitive in most varieties of Unix.

Daher empfiehlt das MySQL-Handbuch stehts die gleiche Schreibweise für Tabellen und Spalten in SQL-Queries zu verwenden (wie z.B. immer Kleinbuchstaben).

[...] To avoid problems caused by such differences, it is best to adopt a consistent convention, such as always creating and referring to databases and tables using lowercase names. This convention is recommended for maximum portability and ease of use.

Fragen zum Kapitel

Keine Fragen zum Kapitel vorhanden

Zurück zu Weiter zu
Copyright © bei den OPs von #php.de/QuakeNet Valid XHTML 1.0 Strict Valid CSS!