PHP crea database MySQL

Il database contiene una o più tabelle.

Creazione di database

La statement CREATE DATABASE viene utilizzata per creare database in MySQL.

Sintassi

CREATE DATABASE database_name

Per far eseguire PHP agli sopra riportati comandi, dobbiamo utilizzare la funzione mysql_query(). Questa funzione viene utilizzata per inviare query o comandi a una connessione MySQL.

Esempio

Nell'esempio seguente, abbiamo creato un database chiamato "my_db":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Non è possibile connettersi: ' . mysql_error());
  }
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
mysql_close($con);
?>

Creazione di tabelle

CREATE TABLE viene utilizzato per creare tabelle di database in MySQL.

Sintassi

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

Per eseguire questo comando, devo aggiungere la statement CREATE TABLE alla funzione mysql_query().

Esempio

Esempio seguente mostra come creare una tabella chiamata "Persons", che ha tre colonne. I nomi delle colonne sono "FirstName", "LastName" e "Age":

<?php
$con = mysql_connect("localhost","peter","abc123");
if (!$con)
  {
  die('Non è possibile connettersi: ' . mysql_error());
  }
// Creare database
if (mysql_query("CREATE DATABASE my_db",$con))
  {
  echo "Database created";
  }
else
  {
  echo "Error creating database: " . mysql_error();
  }
// Create table in my_db database
mysql_select_db("my_db", $con);
$sql = "CREATE TABLE Persons" 
(
FirstName varchar(15),
LastName varchar(15),
Age int
);
mysql_query($sql,$con);
mysql_close($con);
?>

importante:prima di creare una tabella, è necessario selezionare il database. Utilizzare la funzione mysql_select_db() per selezionare il database.

nota:quando si crea un campo del database di tipo varchar, è necessario specificare la lunghezza massima del campo, ad esempio: varchar(15).

tipologia di dati MySQL

le diverse tipologie di dati MySQL disponibili:

tipologia di dati numerici Descrizione
  • int(size)
  • smallint(size)
  • tinyint(size)
  • mediumint(size)
  • bigint(size)
solo interi. La massima valore numerico è specificato nel parametro size.
  • decimal(size,d)
  • double(size,d)
  • float(size,d)

supporta numeri con decimale.

la massima valore numerico è specificato nel parametro size. La massima numero di cifre decimali è specificato nel parametro d.

tipologia di dati di testo Descrizione
char(size)

supporta stringhe di lunghezza fissa. (può contenere lettere, numeri e simboli speciali).

la lunghezza fissa è specificata nel parametro size.

varchar(size)

supporta stringhe di lunghezza variabile. (può contenere lettere, numeri e simboli speciali).

la lunghezza massima è specificata nel parametro size.

tinytext supporta stringhe di lunghezza variabile, la lunghezza massima è di 255 caratteri.
  • text
  • blob
supporta stringhe di lunghezza variabile, la lunghezza massima è di 65535 caratteri.
  • mediumtext
  • mediumblob
supporta stringhe di lunghezza variabile, la lunghezza massima è di 16777215 caratteri.
  • longtext
  • longblob
supporta stringhe di lunghezza variabile, la lunghezza massima è di 4294967295 caratteri.
tipologia di dati di data Descrizione
  • data(yyyy-mm-dd)
  • datetime(yyyy-mm-dd hh:mm:ss)
  • timestamp(yyyymmddhhmmss)
  • tempo(hh:mm:ss)
Supporta date o ora
Tipi di dati vari Descrizione
enum(value1,value2,ect) ENUM è l'abbreviazione di ENUMERATED list. Può contenere fino a 65535 valori tra parentesi.
set SET è simile a ENUM. Tuttavia, SET può avere fino a 64 elementi nella lista e può contenere più di una scelta

Campo primario e campo auto-incrementale

Ogni tabella dovrebbe avere un campo primario.

Il campo primario viene utilizzato per identificare univocamente le righe nella tabella. Ogni valore del campo primario deve essere unico nella tabella. Inoltre, il campo primario non può essere vuoto poiché il motore del database ha bisogno di un valore per localizzare i record.

Il campo primario deve sempre essere inserito nell'indice. Questa regola non ha eccezioni. Dovrai creare un indice per il campo primario in modo che il motore del database possa localizzare rapidamente le righe con il valore del chiave specificato.

Esempio seguente imposta il campo personID come campo primario. Il campo primario di solito è l'ID e di solito viene impostato AUTO_INCREMENT. AUTO_INCREMENT aumenterà il valore del campo per ciascun nuovo record aggiunto. Per garantire che il campo primario non sia vuoto, dobbiamo aggiungere la impostazione NOT NULL a questo campo.

Esempio

$sql = "CREATE TABLE Persons" 
(
personID int NOT NULL AUTO_INCREMENT, 
PRIMARY KEY(personID),
FirstName varchar(15),
LastName varchar(15),
Age int
);
mysql_query($sql,$con);