Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 7 di 58
  • livello intermedio
Indice lezioni

Modificare le tabelle

Imparare a modificare il nome e la struttura di una tabella con MySQL, utilizzando la direttiva ALTER TABLE ed analizzandone le peculiarità.
Imparare a modificare il nome e la struttura di una tabella con MySQL, utilizzando la direttiva ALTER TABLE ed analizzandone le peculiarità.
Link copiato negli appunti

Abbiamo imparato a creare le tabelle del database. Può però capitare di dovere cambiare la struttura della tabella: le modifiche possono riguardare ogni aspetto, ma quelli di cui ci occuperemo in questa lezione riguardano per lo più il nome della tabella stessa o i suoi campi (numero, tipo, denominazione).

Il principale costrutto che utilizzeremo sarà ALTER TABLE. In generale viene seguito dal nome della tabella oggetto di modifica, e da un elemento che specifica il tipo di azione che verrà eseguita. Quelli che ci interesseranno maggiormente in questa lezione sono:

  • RENAME per rinominare la tabella;
  • ADD e DROP, rispettivamente, per aggiungere e rimuovere un campo;
  • CHANGE per modificare il nome, il tipo di dato o altri parametri di un campo.

Considerato che tratteremo la modifica di tabelle, dovremo avere un database a disposizione. Immaginiamo quindi di crearne uno con il seguente script:

CREATE DATABASE Biblioteca;
USE Biblioteca;
CREATE TABLE `Libri` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `Titolo` VARCHAR(45) NULL,
  `Autore` VARCHAR(45) NULL,
  PRIMARY KEY (`id`))
ENGINE = InnoDB;

Prima di continuare, specifichiamo che il risultato degli esempi che saranno mostrati nel seguito di questa lezione può essere verificato con il comando seguente:

SHOW TABLES;

Ciò è vero se la modifica riguarda il nome di una tabella. Se invece essa ha effetto su un elemento interno alla tabello, potremo utilizzare:

DESCRIBE Libri;

Cambiare nome ad una tabella

La prima casistica analizzata è il cambio del nome di una tabella, circostanza che può verificarsi anche per un semplice errore di digitazione durante la progettazione del database.

Immaginiamo di voler modificare il nome della tabella, cambiandolo da Libri in Opere. A tal fine dovremo far seguire il comando ALTER TABLE dall'azione RENAME:

ALTER TABLE Libri RENAME Opere;

La correttezza della modifica apportata potrà essere verificata, in questo caso, con SHOW TABLES: se tutto è andato bene, sarà infatti visualizzato il nuovo nome della tabella.

Modifica di nome e tipo di dato dei campi

Utilizzando il comando CHANGE in aggiunta ad ALTER TABLE è possibile richiedere la modifica di una colonna già esistente.

Ad esempio:

ALTER TABLE Libri CHANGE Titolo Titolo varchar(100);

La modifica richiesta comporterà la variazione della dimensione del campo. Le stringhe contenute potranno arrivare ora a 100 caratteri anziché 45.

Analizziamo meglio il comando appena impartito:

  • ALTER TABLE Libri: specifica quale tabella sarà modificata;
  • CHANGE Titolo: specifica che sarà modificato un elemento esistente (il campo Titolo);
  • Titolo varchar(100): sono i nuovi attributi assegnati.

Alla stessa maniera sarà possibile modificare il nome di un campo:

ALTER TABLE Libri CHANGE Titolo Opera varchar(100);

Come si vede, il comando è analogo al precedente. La differenza è rappresentata dalla nuova descrizione che viene assegnata al campo interessato.

Come presumibile, le modifiche ad un campo – qui mostrate in due esempi separati – possono essere apportate con la medesima direttiva.

Aggiunta o rimozione di campi

Il comando ALTER TABLE può essere utilizzato per aggiungere o rimuovere i campi di una tabella. Considerando la versione non ancora modificata della tabella Libri, il comando:

ALTER TABLE Libri ADD NumeroPagine INT;

aggiungerà un nuovo campo alla tabella. È stato sufficiente indicare ADD come azione, e fare seguire tale direttiva dalla descrizione del nuovo campo, che in questo caso è un intero denominato NumeroPagine.

Analogamente, il comando DROP in congiunzione con ALTER TABLE permetterà di eliminare un campo:

ALTER TABLE Libri DROP NumeroPagine;

DROP dovrà semplicemente essere seguito dal nome del campo da cancellare.

Ti consigliamo anche