Creazione ed eliminazione di una tabaella
Una volta creato il nostro database ènecessario creare delle tabelle che serviranno per l'inserimento dei dati. La creazione di tabelle si esegue grazie all'istruzione CREATE TABLE che ha una sintassi molto semplice mentre l'eliminazione di un database è possibile con l'istruzione DROP TABLE.
Creazione di una tabella
In questa guida ci riferiremo alle ipotetiche richieste ad un database che ha il compito di tracciare gli eventi di una banca. Ci servono le tabelle clienti, movimenti e tipi_movimento.CREATE TABLE `clienti` ( ID int AUTO_INCREMENT NOT NULL PRIMARY KEY, `nome` varchar(40) NOT NULL, `cognome` varchar(40) NOT NULL, `telefono` varchar(20) NOT NULL, `data_apertura_conto` date NOT NULL, `tipo_conto` varchar(20) UNSIGNED NOT NULL ) ENGINE = MyISAM;
Nella sintassi di creazione della tabella la descrizione dei campi si trova tra parentesi. In particolare subito dopo il nome del campo (ad esempio nome, cognome, telefono,...) si trova la descrizione del tipo di campo che descrive che genere di valori troveranno posto nel campo. Passiamo alla creazione della tabella movimenti:
CREATE TABLE `movimenti` ( ID int AUTO_INCREMENT NOT NULL PRIMARY KEY, `ID_cliente` int(9) NOT NULL, `tipo` int(3) NOT NULL, `data` datetime NOT NULL, `valuta` double(12,3) NOT NULL ) ENGINE = MyISAM;
E per finire la tabella tipi_movimento:
CREATE TABLE `tipi_movimento` (
ID int UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
`tipo` enum ('entrata','uscita'),
`descrizione` varchar(100) NOT NULL
) ENGINE = MyISAM;
A questo puntro abbiamo tre tabelle all'interno del database banca.
Tipi di campo nelle tabelle
MySQL propone numerosi tipi di campo che servono per memorizzare interi, stringhe, numeri decimali ed anche files binari.| Tipo |
Range |
Descrizione |
| bool | 0 / 1 | Valore di tipo booleano dove 0 è pari a false ed 1 è pari a true. |
| tinyint | -128 / + 127 | Il tipo tynint descrive numeri interi relativamente piccoli. |
| int |
-2147483648 / +2147483647 | Il tipo int descrive i numeri interi. |
| float |
-3.402823466E+38 / -1.175494351E-38 oppure 1.175494351E-38 / 3.402823466E+38 | Il tipo di dati float descrive numeri a virgola mobile. |
| double | -1.7976931348623157E+308 / -2.2250738585072014E-308 oppure 2.2250738585072014E-308 / 1.7976931348623157E+308 | Il tipo di dati double serve per memorizzare numeri decimali molto grandi. |
| varchar | 1 / 255 | Il tipo di dati varchar serve a memorizzare piccole stringhe da 1 a 255 caratteri. |
|
text blob |
1 / 65535 | Il tipo di dati text ed il tipo blob memorizzano stringhe fino a 65535 caratteri |
|
mediumtext mediumblob |
1 / 16,777,215 | Il tipo di dati mediumtext ed il tipo blob memorizzano stringhe da 1 a 16,777,215 caratteri. |
|
longtext longblob |
1 / 4,294,967,295 | Il tipo di dati longtext ed il tipo longblob memorizzano stringhe da 1 a 4,294,967,295 caratteri. |
| enum | liste di valori | Il campo enum è molto versatile in quanto permette l'inserimento di un valore preso da una lista predefinita. |
| date | YYYY-MM-DD | Il tipo di dati date serve a memorizzare date nel formato anno-mese-giorno. |
| datetime | YYYY-MM-DD HH:MM:SS | Il tipo di dati datetime è simile al tipo date con la differenza che accetta anche un riferimento al tempo. |
| year | YYYY | Il tipo di dati year memorizza un valore corrispondente ad un anno. |
Differenze tra campi blob e text
I campi blob e text, ed i rispettivi campi associati come longblob e longtext, condividono la stessa capacità di memorizzazione ma vengono trattati da MySQL in modo leggermente differente. I campi blob sono di tipo case sensitive per cui nella ricerca tengono conto delle maiuscole e delle minuscole, mentre i campi text non ne tengono conto.Eliminazione di un database
Per eliminare un database si usa l'istruzione DROP TABLE seguita dal nome della tabella che si vuole eliminare.DROP TABLE banca;
Si deve prestare la massima attenzione ad usare l'istruzione DROP TABELLA in quanto sia la tabella che i dati in essa presenti vengono irrimediabilmente perduti.