PHP MySQL-Datenbank erstellen

Eine Datenbank enthält eine oder mehrere Tabellen.

Datenbank erstellen

Die CREATE DATABASE -Anweisung wird verwendet, um Datenbanken in MySQL zu erstellen.

Syntax

CREATE DATABASE database_name

Um die obigen Anweisungen von PHP aus auszuführen, müssen wir die mysql_query() -Funktion verwenden. Diese Funktion wird verwendet, um Abfragen oder Befehle an eine MySQL-Verbindung zu senden.

Beispiel

Im folgenden Beispiel wird eine Datenbank namens "my_db" erstellt:

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  else
  die('Verbindung konnte nicht hergestellt werden: ' . mysql_error());
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
if (mysql_query("CREATE DATABASE my_db",$con))
  else
  echo "Database created";
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
echo "Datenbank erstellt";
  else
  {
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
mysql_select_db("my_db", $con);
mysql_close($con);

Tabellen erstellen

CREATE TABLE wird verwendet, um Datenbanktabellen in MySQL zu erstellen.

Syntax

CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
.......
)

Um diesen Befehl auszuführen, muss ich dem mysql_query() -Funktion CREATE TABLE -Anweisung hinzufügen.

Beispiel

Nachfolgender Beispiel zeigt, wie man eine Tabelle namens "Persons" erstellt, die drei Spalten hat. Die Spaltennamen sind "FirstName", "LastName" und "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  else
  die('Verbindung konnte nicht hergestellt werden: ' . mysql_error());
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
// Datenbank erstellen
if (mysql_query("CREATE DATABASE my_db",$con))
  else
  echo "Database created";
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
echo "Datenbank erstellt";
  else
  {
  echo "Fehler beim Erstellen der Datenbank: " . mysql_error();
}
// Tabelle in Datenbank my_db erstellen
$sql = "CREATE TABLE Personen", 
(
Vorname varchar(15),
Nachname varchar(15),
Alter int
);
mysql_query($sql,$con);
mysql_select_db("my_db", $con);
mysql_close($con);

?>Wichtig:

Anmerkung:Wenn Sie ein Feld vom Typ varchar in der Datenbank erstellen, müssen Sie die maximale Länge des Felds angeben, z.B.: varchar(15).

MySQL-Datentypen

Verfügbare MySQL-Datentypen:

Numerischer Datentyp Beschreibung
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
Nur Ganzzahlen unterstützt. Maximaler Wert der Zahl wird im size-Parameter festgelegt.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

Unterstützt Zahlen mit Dezimalteilen.

Maximaler Wert der Zahl wird im size-Parameter festgelegt. Maximale Anzahl der Dezimalstellen wird im d-Parameter festgelegt.

Datentyp für Text Beschreibung
char(size)

Unterstützt Zeichenfolgen mit festen Längen. (Kann Buchstaben, Ziffern und Sonderzeichen enthalten).

Feste Länge wird im size-Parameter festgelegt.

varchar(size)

Unterstützt Zeichenfolgen mit variabler Länge. (Kann Buchstaben, Ziffern und Sonderzeichen enthalten).

Maximale Länge wird in der size-Parameter festgelegt.

tinytext Unterstützt Zeichenfolgen mit variabler Länge, maximal 255 Zeichen.
  • text
  • blob
Unterstützt Zeichenfolgen mit variabler Länge, maximal 65535 Zeichen.
  • mediumtext
  • mediumblob
Unterstützt Zeichenfolgen mit variabler Länge, maximal 16777215 Zeichen.
  • longtext
  • longblob
Unterstützt Zeichenfolgen mit variabler Länge, maximal 4294967295 Zeichen.
Datentyp für Datum Beschreibung
  • Datum(yyyy-mm-dd)
  • Datum und Uhrzeit(yyyy-mm-dd hh:mm:ss)
  • Zeitstempel(yyyymmddhhmmss)
  • Zeit(hh:mm:ss)
Unterstützt Datum oder Zeit
Miscellaneous Datenarten Beschreibung
enum(value1,value2,ect) ENUM ist die Abkürzung für ENUMERATED Liste. Bis zu 65535 Werte können in Klammern aufgeführt werden.
set SET ist ähnlich wie ENUM. Aber SET kann bis zu 64 Listeinträge haben und kann mehr als eine Auswahl speichern

Primärschlüssel und automatische Inkrementierungsfelder

Jede Tabelle sollte einen Primärschlüssel haben.

Primärschlüssel werden verwendet, um Zeilen in einer Tabelle eindeutig zu kennzeichnen. Jeder Primärschlüsselwert muss in der Tabelle einzigartig sein. Außerdem darf das Primärschlüssel-Feld nicht leer sein, da der Datenbankmotor einen Wert benötigt, um die Aufzeichnung zu lokalisieren.

Primärschlüssel müssen immer in einen Index eingetragen werden. Diese Regel hat keine Ausnahmen. Sie müssen den Primärschlüssel indizieren, damit der Datenbankmotor die Zeilen mit dem entsprechenden Schlüsselwert schnell finden kann.

Der folgende Beispiel setzt das Feld personID als Primärschlüssel. Primärschlüssel sind in der Regel ID-Nummern und werden normalerweise mit AUTO_INCREMENT eingerichtet. AUTO_INCREMENT erhöht den Wert des Felds bei jeder neuen Zeile. Um sicherzustellen, dass das Primärschlüssel-Feld nicht leer ist, müssen wir NOT NULL hinzufügen.

Beispiel

$sql = "CREATE TABLE Personen", 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
Vorname varchar(15),
Nachname varchar(15),
Alter int
);
mysql_query($sql,$con);