Commenti(0)
Aggiungere una colonna a una tabella MySQL
In MySQL l’aggiunta di una colonna ad una tabella è un operazione che avviene attraverso ALTER TABLE e ADD COLUMN ...
In MySQL l’aggiunta di una colonna ad una tabella è un operazione che avviene attraverso ALTER TABLE e ADD COLUMN, nel mondo reale è facile ossservare che: molti amministratori preferiscono scrivere a mano i comandi SQL, piuttosto che utilizzare un’interfaccia grafica, per effettuare semplici modifiche a un database. Data la complessità dell’istruzione ALTER TABLE, però, a volte semplici operazioni come l’aggiunta di una colonna a una tabella vengono eseguite attraverso una GUI. Peraltro poche GUI permettono realmente di effettuare qualsiasi tipo di modifica, mentre con i programmi prodotti da MySQL/Sun tali operazioni possono risultare complesse o avere effetti collaterali, a causa di bug. Varrebbe la pena di studiare alcune clausole di ALTER TABLE. Alcune operazioni, come l’aggiunta di una colonna, risultano essere relativamente semplici.
La sintassi generale per l’aggiunta di una colonna è questa:
1ALTER TABLE nome_tabella ADD COLUMN [ definizione_colonna ] [ FIRST | AFTER nome_colonna ]
nome_tabella è il nome della tabella a cui si desidera aggiungere una colonna. MySQL presume che essa si trovi nel database selezionato, se così non è si può specificare nella forma: nome_database.nome_colonna.
Definizione della colonna
La definizione include il nome della colonna seguito da altre informazioni. Tra queste, il tipo di dato è l’unica non opzionale.
Tipo di dato e dimensioni
Il tipo di dato da utilizzare va specificato subito dopo il nome della nuova colonna. Subito dopo, senza lasciare alcuno spazio, si può specificare tra parentesi le dimensioni del campo. Esse devono essere comprese tra i limiti consentiti dal tipo di dato scelto, altrimenti verranno modificate da MySQL, nel qual caso si riceverà un warning. Le dimensioni sono espresse in numero di caratteri per i dati di tipo stringa e in byte per i dati di tipo numerico.
Esempi:
Per i tipi interi, è possibile specificare se il dato deve essere con segno (SIGNED) o, come di default, senza segno (UNSIGNED).
1ALTER TABLE t1 ADD COLUMN id UNSIGNED INT(4);
Per i tipi ENUM e SET non bisogna specificare le dimensioni, ma una lista dei valori ammessi.
1ALTER TABLE t1 ADD COLUMN colore ENUM('rosso', 'giallo', 'nero');
Per particolari tipi di dati esistono altre opzioni, che richiedono una spiegazione più approfondita e non possono essere spiegate qui per ragioni di brevità.
NULL e NOT NULL
Se non è specificato diversamente, un campo può contenere il non-valore NULL. Si può inserire questa opzione dopo il tipo di dato, specificando NULL o NOT NULL.
DEFAULT
E’ possibile specificare quale valore deve avere un campo nel caso in cui non venga valorizzato esplicitamente in fase di inserimento. Per fare questo, si utilizza la parola chiave DEFAULT seguita dal valore. Esso deve essere una costante e non un’espressione SQL.
Non è possibile specificare un valore di default se il campo è una chiave primaria autoincrementale. Inoltre non ha senso specificarlo se sul campo esiste un indice UNIQUE. Infine non è consentito specificare un valore non ammesso (per esempio ‘ABC’ per un campo intero o NULL per un campo NOT NULL).
Commenti
E’ possibile registrare un commento associato alla colonna. Esso sarà visibile nella tabella COLUMNS dell’INFORMATION_SCHEMA e verrà visualizzato da tutte le istruzioni che mostrano l’elenco delle colonne presenti in una tabella (SHOW COLUMNS, DESC, SHOW CREATE TABLE). Il commento deve essere preceduto dalla parola chiave COMMENT; deve essere una stringa costante e non un’espressione SQL.
1ALTER TABLE t1 ADD COLUMN qta INT COMMENT 'quantita';
I commenti sulle colonne (o sulla tabella) non devono essere confusi, né sintatticamente né concettualmente, con i commenti SQL:
1ALTER TABLE t1 ADD COLUMN qta INT NULL # voglio sia chiaro che la colonna è NULL
FIRST e AFTER
Le clausole opzionali FIRST e AFTER servono a specificare in quale posizione dovrà trovarsi fisicamente la nuova colonna all’interno del file FRM. Sebbene la posizione dei campi non abbia importanza nella teoria relazionale e nell’SQL, dando un ordine arbitrario è possibile visualizzare i campi dell’entità in maniera più agevole e logica. Se queste clausole non vengono specificate, la colonna viene aggiunta alla fine. Esempi:
Condividi su:
Esprimi un voto:
Argomenti chiave:

MySQL Report un tool di shell per tenere tutto sotto controllo