Home
  • Php
  • PHP MySQL Tutorial di base - Lezione 6 - Create table
re-verse
pubblicato circa un anno fa

PHP MySQL Tutorial di base - Lezione 6 - Create table

Nel seguente articolo illustreremo come creare una tabella MySQL da una pagina PHP e quali sono le cose importanti da sapere del comando "CREATE TABLE". A chiarirci le idee ci saranno alcuni esempi di codice da provare e links di approfondimento.

PHP – MySQL: CREATE TABLE

Una tabella MySQL ha come suo scopo principale quello di raccogliere dati in modo organizzato.
La truttura di una tabella è sostanzialmente data da colonne e righe (o records).
Le colonne raccolgono il tipo di dato che vogliamo immagazzinare, mentre le righe raccolgono il dato effettivo in base al tipo stabilito dalla colonna.

Di seguito riportiamo un esempio di una tabella (C: colonne / R: righe):

Tabella n.1 – impiegati:







Righe\Colonne(C1)nome(C2)livello(C3)salario
(R1)Paolo Rossi31000.00
(R2)Mario Bianchi51400.00
(R3)Michele Verdi41200.00
(R4)Simona Neri31150.00

Per semplificare le cose, abbiamo aggiunto alle colonne ed alle righe un contatore (C1, C2, ... ed R1, R2, ...) in modo da renderci conto a tutti gli effetti quali sono le righe e quali sono le colonne.
In una tabella reale, tuttavia, i dati che vengono salvati sono solo quelli relativi alle colonne e alle righe, non i contatori.
Le nostre tre colonne sono di tre tipi di dati differenti: abbiamo rispettivamente un valore alfanumerico, uno numerico intero e uno numerico con decimali.
Le righe invece sono 4 in questo esempio e contengono una sorta di anagrafica molto semplficata.

PHP - MySQL – Creiamo la nostra prima tabella!

Come si può già capire, prima di inserire i dati in una tabella dobbiamo definire il tipo di dato che vogliamo gestire per ogni colonna. Vediamo subito un esempio di come creare una tabella con PHP:

Esempio – Come creare una tabella MySQL da PHP:

 1<?php
 2//Ci connettiamo al nostro server MySQL sul database "test"
 3mysql_connect("localhost", "root", "") or die(mysql_error());
 4echo "Connesso a MySQL!!<br />";
 5mysql_select_db("test") or die(mysql_error());
 6echo "Connesso al database 'test'!!<br />";
 7
 8// Creiamo una tabella MySQL nel database selezionato
 9mysql_query("CREATE TABLE impiegati(
10 id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(id),
11 nome VARCHAR(255), 
12 livello INT)") or die(mysql_error());  
13
14echo "Tabella Creata!!<br />";
15?>

Risultato:
>>> Connesso a MySQL!!
>>> Connesso al database 'test'!!
>>> Tabella Creata!!

Okey! A questo punto, ci conviene analizzare alcune righe del codice scritto per capire cosa succede in questa pagina PHP: la prima cosa da notare è il comando mysql_query("..."); questo comando chiede a mysql di eseguire la query specificata tra i doppi apici, in questo caso parliamo della "CREATE TABLE ...".
Subito dopo la frase "CREATE TABLE" c'è "impiegati". Questo è il nome che stiamo dando alla tabella. Conviene dare dei nomi esplicativi alle tabelle che stiamo utilizzando, sebbene possa risultare all'inizio più 'laborioso' rispetto a chiamare le tabella 'tabella1', 'tabella2', ecc..., vi renderà sicuramente più facile ricordare cosa contiene ogni tabella dopo uno o più anni dalla loro creazione.

id INT NOT NULL AUTO_INCREMENT
Con questa parte di comando indichiamo a MySQL che la prima colonna della tabella avrà come nome: 'id', che è di tipo numerico intero, che non può contenere valori 'null' e che si incrementa man mano che inseriamo righe nella nostra tabella.

PRIMARY KEY(id)
Questa parte della 'create' indica a MySQL che il campo 'id' è la chiave primaria della tabella. Ciò sta a significare che avremo un valore di 'id' diverso per ogni record della tabella che identificherà l'intera riga. Questo è anche il motivo per cui questo campo si auto incrementa.
Se volessimo provare ad inserire due righe con lo stesso 'id', otterremmo un errore: 'Duplicate entry'.

nome VARCHAR(255)
Qui stiamo indicando che il secondo campo della tabella è 'nome' e che il tipo di questo campo è VARCHAR(255). Per VARCHAR(255) si intende un campo alfanumerico variabile, la cui dimensione massima è di 255 caratteri.

livello INT
Questo è un campo di tipo intero in cui inseriremo il livello di ogni impiegato.

or die(mysql_error());
Qui indichiamo alla nostra pagina PHP cosa fare in caso di errori, come nei comandi visti in precedenza mysql_connect e mysql_select_db.

Per informazioni più dettagliate sulla sintassi MySQL per la creazione, modifica ed eliminazione di tabelle, consigliamo un approfondimento alla nostra sezione dedicata: http://www.mysqlitalia.it/articoli/5-creare-e-modificare-le-tabelle-con-mysql.

Per quanto riguarda i tipi di dati che possiamo utilizzare con le nostre tabelle vi rimandiamo all'approfondimento su questa pagina: http://www.mysqlitalia.it/recipes/58-tipi-di-dati-mysql.

Cosa fare adesso?

Giusto per essere sicuri di aver fatto tutto bene, consiglierei di accedere al vostro database attraverso uno dei tool di amministrazione che abbiamo indicato nelle lezioni precedenti (phpMyAdmin, heidiSQL, ecc...) e controllare che la tabella sia stata effettivamente creata.
Inoltre, potete esercitarvi nella creazione di altre tabelle con tipi di dati diversi a vostro piacimento.

Il mio consiglio personale è che più prove si fanno e prima si prende familiarità, quindi: provare, provare, provare! ... e poi passare alla lezione successiva :)

- Scarica l'esempio Create table 1

Condividi su:

Esprimi un voto:

  • Current rating: 5.0/5
  • 1
  • 2
  • 3
  • 4
  • 5

Argomenti chiave:

Ultimi commenti Ultimi commenti

Esegui il Login oppure registrati per scrivere un commento.
Cerca nel sito...
Ultime recipes

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL MySQL Report un tool di shell per tenere tutto sotto controllo

Un utilissimo tool di shell che effettua un dettagliato e comodo report su MySQL


Vai alla recipe

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL MySQLSniffer sniffare il traffico TCP di MySQL

Un utilissimo tool per sniffare il traffico Client/Server TCP/IP di MySQL


Vai alla recipe

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso myisamchk riparare file MyISAM

Verificare l'integrità, riparare gestire chiavi e memoria di tabelle MyISAM attraverso il file myisamchk


Vai alla recipe

Un tool per comprimere le tabelle MyISAM fino a oltre il 50% myisampack comprimere file MyISAM

Un tool per comprimere le tabelle MyISAM fino a oltre il 50%


Vai alla recipe

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun mysqlshow visualizzare le informazioni sul database MySQL

mysqlshow le info di base sui database, tabelle e colonne senza utilizzare alcun client


Vai alla recipe

Utilizzando UNION / UNION ALL su campi int unsigned zerofill,
ho notato che MysqlUNION / UNION ALL su campi int unsigned zerofill. di DebUsr
Vai al tip

Utilizzo di funzioni come alias di campo tramite l'impiego di prepared statementReport con alias di campo dinamici di john_revelator
Vai al tip

Può capitare che sia necessario eseguire un dump di database in formato Comma SeparatedEsecuzione dump in formato CSV (tabelle in engine MyIsam esportate in formato CSV) di ghigomatto
Vai al tip

E' possibile eseguire le query SQL contenute in un file di testo. Questo è utileEseguire le query da un file di testo di Sante Caserio
Vai al tip

Se vogliamo fare il backup di tutti i database con mysqldump, e ne abbiamo parecchiFare il backup di tutti i database di Sante Caserio
Vai al tip

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve,vorrei chiedervi un aiutino per una query che mi infastidisce un pò.
Ho 4 aiuto per una query! di fighterdorico Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic

Salve a tutti.

Ho una tabella con lettere accentate.
Le lettere vengono visualizzate ordinamento tabelle di ditch Vai al topic