PHP maakt een MySQL-database

Een database bevat een of meerdere tabellen.

Database maken

Het CREATE DATABASE-statement wordt gebruikt om een database te maken in MySQL.

Syntax

CREATE DATABASE database_name

Om de bovenstaande statement uit te voeren, moeten we de mysql_query() functie gebruiken. Deze functie wordt gebruikt om een query of opdracht naar een MySQL-verbinding te sturen.

Voorbeeld

In het volgende voorbeeld maken we een database genaamd "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database gemaakt";
  }
else
  {
  echo "Fout bij maken van database: " . mysql_error();
  }
mysql_close($con);
?>

Tabel maken

CREATE TABLE wordt gebruikt om een database tabel te maken in MySQL.

Syntax

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

Om deze opdracht uit te voeren, moet ik de CREATE TABLE-statement toevoegen aan de mysql_query() functie.

Voorbeeld

Hier is een voorbeeld van hoe je een tabel genaamd "Persons" kunt maken, deze tabel heeft drie kolommen. De kolomnamen zijn "FirstName", "LastName" en "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }
// Create database
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database gemaakt";
  }
else
  {
  echo "Fout bij maken van database: " . mysql_error();
  }
// Maak tabel in database my_db
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons" 
(
Voornaam varchar(15),
Achternaam varchar(15),
Leeftijd int
);
mysql_query($sql,$con);
mysql_close($con);
?>

Belangrijk:Voor het maken van een tabel moet u eerst een database kiezen. Gebruik de mysql_select_db() functie om een database te kiezen.

Opmerking:Wanneer u een databaseveld van type varchar maakt, moet u de maximale lengte van dat veld aangeven, bijvoorbeeld: varchar(15).

MySQL datatypes

de verschillende MySQL datatypes die beschikbaar zijn:

getaltype Beschrijving
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
ondersteunt alleen integers. De maximale waarde van het getal wordt gedefinieerd in het size parameter.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

ondersteunt getallen met decimalen.

defineert de maximale waarde van het getal in het size parameter. In het d parameter wordt de maximale waarde van de cijfers na de komma gedefinieerd.

tekstgegevens-type Beschrijving
char(size)

ondersteunt strings met vaste lengte. (Kan letters, cijfers en speciale symbolen bevatten).

defineert een vaste lengte in het size parameter.

varchar(size)

ondersteunt strings met variabele lengte. (Kan letters, cijfers en speciale symbolen bevatten).

defineert de maximale lengte in het size parameter.

tinytext ondersteunt strings met variabele lengte, met een maximale lengte van 255 karakters.
  • text
  • blob
ondersteunt strings met variabele lengte, met een maximale lengte van 65535 karakters.
  • mediumtext
  • mediumblob
ondersteunt strings met variabele lengte, met een maximale lengte van 16777215 karakters.
  • longtext
  • longblob
ondersteunt strings met variabele lengte, met een maximale lengte van 4294967295 karakters.
datumgegevens-type Beschrijving
  • datum(yyyy-mm-dd)
  • datumtijd(yyyy-mm-dd hh:mm:ss)
  • timestempel(yyyymmddhhmmss)
  • tijd(hh:mm:ss)
Ondersteunt datum of tijd
Algemene datatypes Beschrijving
enum(value1,value2,ect) ENUM is een afkorting voor ENUMERATED lijst. Tot 65535 waarden kunnen in haakjes worden opgenomen.
set SET is vergelijkbaar met ENUM. Maar SET kan maximaal 64 lijstitems hebben en kan meer dan één keuze bevatten

Hoofdindex en Auto Increment velden

Elke tabel moet een hoofdindexveld hebben.

Hoofdindexen worden gebruikt om rijen in een tabel uniek te identificeren. Elke waarde van de hoofdindex moet in de tabel uniek zijn. Bovendien kan het hoofdindexveld niet leeg zijn, omdat de database-engine een waarde nodig heeft om de records te lokaliseren.

Hoofdindexvelden moeten altijd worden geïndexeerd. Deze regel heeft geen uitzonderingen. Je moet het hoofdindexveld indexeren, zodat de database-engine snel de rijen met de bijbehorende sleutelwaarden kan lokaliseren.

Het volgende voorbeeld stelt het personID-veld in als hoofdindexveld. Hoofdindexvelden zijn meestal ID-nummers en worden meestal ingesteld op AUTO_INCREMENT. AUTO_INCREMENT zal de waarde van dit veld één voor één verhogen bij het toevoegen van nieuwe records. Om ervoor te zorgen dat het hoofdindexveld niet leeg kan zijn, moeten we NOT NULL instellen op dit veld.

Voorbeeld

$sql = "CREATE TABLE Persons" 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
Voornaam varchar(15),
Achternaam varchar(15),
Leeftijd int
);
mysql_query($sql,$con);