In SQL sono spesso necessarie modifiche strutturali a un database, come la ridenominazione di tabelle o colonne, l'aggiunta di nuove colonne o la modifica dei tipi di dati. Il comando ALTER TABLE consente di apportare queste modifiche in modo efficiente senza influire sui dati esistenti. Si tratta di un comando essenziale per la gestione e l'aggiornamento degli schemi di database man mano che i requisiti dell'applicazione evolvono.
Esempio: Per prima cosa creiamo una tabella Student di esempio per dimostrare il comando ALTER:
Domanda:
ALTER TABLE students
RENAME TO learners;
Produzione:
Sintassi per il comando ALTER
Di seguito sono riportati i formati di sintassi comuni per l'utilizzo del comando ALTER TABLE:
1. Rinominare una tabella
ALTER TABLE nome_tabella
RINOMINARE IN nuovo_nome_tabella;
2. Rinominare una colonna
ALTER TABLE nome_tabella
RINOMINARE COLONNA vecchio_nome_colonna IN nuovo_nome_colonna;
3. Aggiunta di una nuova colonna
ALTER TABLE nome_tabella
AGGIUNGI tipo di dati nome_colonna;anno mese
ALTER TABLE nome_tabella
MODIFICA COLONNA nome_colonna nuovo_tipodati;
Esempi di comando ALTER in SQL
Di seguito sono riportati esempi pratici per aiutarci a capire come utilizzare il comando ALTER in modo efficace in vari scenari. Questi esempi includono la ridenominazione di tabelle o colonne con l'aggiunta di nuove colonne o cambiando colonna tipi di dati.
1. Creare una tabella di esempio
Per prima cosa creiamo uno Student di esempio tabella per dimostrare l'ALTER comando:
CREATE TABLE Student (
id INT PRIMARY KEY
name VARCHAR(50)
age INT
email VARCHAR(50)
phone VARCHAR(20)
);
Inseriamo alcuni dati e quindi eseguiamo l'operazione ALTER per comprendere meglio il comando alter.
INSERT INTO Student (id name age email phone)
VALUES
(1 'Amit' 20 '[email protected]' '9999999999')
(2 'Rahul' 22 '[email protected]' '8888888888')
(3 'Priya' 21 '[email protected]' '7777777777')
(4 'Sonia' 23 '[email protected]' '6666666666')
(5 'Kiran' 19 '[email protected]' '5555555555');
Produzione
Esempio 1: Rinominare una colonna
Cambia il nome della colonna in FIRST_NAME nella tabella Student. Per modificare il nome della colonna della tabella esistente dobbiamo utilizzare la parola chiave Colonna prima di scrivere il nome della colonna esistente da modificare.
Sintassi
ALTER TABLE Student RENAME COLUMN Column_NAME TO FIRST_NAME;
Domanda:
ALTER TABLE Student RENAME Column name TO FIRST_NAME;Produzione
ProduzioneEsempio 2: Rinominare una tabella
In questo esempio vogliamo rinominare la tabella daStudentAStudent_Detailsutilizzando ilALTER TABLEcomando rendendo il nome più descrittivo e pertinente al suo contenuto.
Domanda:
ALTER TABLE Student RENAME TO Student_Details;Produzione
Esempio 3: aggiungere una nuova colonna
Per aggiungere una nuova colonna alla tabella esistente dobbiamo prima selezionare la tabella con il comando ALTER TABLE nome_tabella e poi scriveremo il nome della nuova colonna e il suo tipo di dati con ADD nome_colonna tipo di dati. Diamo un'occhiata qui sotto per capire meglio.
Sintassi
ALTER TABLE nome_tabella
AGGIUNGI tipo di dati nome_colonna;pitone di inserimento
Domanda:
ALTER TABLE Student ADD marks INT;Produzione
Nell'esempio ilphonela colonna viene aggiornata daVARCHAR(20)ABIGINT per memorizzare i dati numerici in modo più efficiente e garantire integrità dei dati per i numeri di telefono senza caratteri non necessari.
Sintassi
ALTER TABLE nome_tabella
MODIFICA COLONNA nome_colonna nuovo_tipodati;
Domanda:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
Produzione
| id | nome | età | telefono | |
|---|---|---|---|---|
| 1 | Che cosa | 20 | [email protected] | 9999999999 |
| 2 | Rahul | 22 | [email protected] | 8888888888 |
| 3 | Prija | 21 | [email protected] | 7777777777 |
| 4 | Sonia | 23 | [email protected] | 6666666666 |
| 5 | La chiamata | 19 | [email protected] | 5555555555 |
Spiegazione :
- La colonna telefono ora ha un tipo di dati BIGINT adatto alla memorizzazione di valori numerici di grandi dimensioni.
- I dati esistenti rimangono invariati ma vengono archiviati come numeri interi al posto delle stringhe.
Ulteriori casi d'uso del comando ALTER
1. Rimozione di una colonna : In alcuni casi potrebbe essere necessario rimuovere una colonna. Per fare ciò puoi usare la sintassi DROP COLUMN:
ALTER TABLE Student_Dettagli
Segni DROP COLUMN;
Questo comando elimina completamente la colonna dei segni dalla tabella
2. Modifica del valore predefinito di una colonna : Possiamo anche modificare il valore predefinito di una colonna utilizzando la clausola SET DEFAULT:
ALTER TABLE Student_Dettagli
ALTER COLUMN età SET DEFAULT 18;
3. Rinominare una tabella o una colonna in diversi database : Tieni presente che la sintassi SQL può variare tra diversi sistemi di database. Ecco come rinomineremo una tabella o una colonna in MySQL MariaDB e Oracolo :
per ogni Java
- MySQL/MariaDB : La sintassi per rinominare una colonna è simile ma è necessario utilizzare anche il comando CHANGE COLUMN per rinominare una colonna:
ALTERARE TAVOLO Studente
CAMBIA COLONNA vecchio_nome_colonna nuovo_nome_colonna tipo dati;
- Oracolo : Oracle supporta la sintassi RENAME COLUMN ma richiede una sintassi diversa per rinominare una tabella:
Crea quizALTER TABLE Student RENAME COLUMN vecchio_nome_colonna IN nuovo_nome_colonna;