MYSQL – ALTERARE, RIMUOVERE, RINOMARE, MODIFICARE
Cos'è il comando ALTER?
Come dice il proverbio Il cambiamento è la sola costante
Con il tempo cambiano anche le esigenze aziendali. Man mano che i requisiti aziendali cambiano, anche la progettazione dei database deve cambiare.
MySQL fornisce il ETÀ funzione che ci aiuta incorporare le modifiche alla progettazione del database già esistente.
Il comando alter viene utilizzato per modificare un database, una tabella, una vista esistente o altri oggetti di database che potrebbero dover essere modificati durante il ciclo di vita di un database.
Supponiamo di aver completato la progettazione del nostro database e che sia stato implementato. Gli utenti del nostro database lo utilizzano e poi si rendono conto che alcune delle informazioni vitali sono state tralasciate nella fase di progettazione. Non vogliono perdere i dati esistenti ma vogliono semplicemente incorporare le nuove informazioni. Il comando alter è utile in tali situazioni. Possiamo usare il comando alter per cambiare il tipo di dati di un campo da, ad esempio, stringa a numerico, cambiare il nome del campo con un nuovo nome o anche aggiungere una nuova colonna in una tabella.
Alter – sintassi
Di seguito è mostrata la sintassi di base utilizzata per aggiungere una colonna a una tabella già esistente
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
QUI
- “ALTERA TABELLA `nome_tabella`” è il comando che dice MySQL server per modificare la tabella denominata "nome_tabella".
- “AGGIUNGI COLONNA `nome_colonna` `tipo_dati`” è il comando che dice MySQL server per aggiungere una nuova colonna denominata "column_name" con tipo di dati "data_type".
Supponiamo che Myflix abbia introdotto la fatturazione e i pagamenti online. A tal fine, ci è stato chiesto di aggiungere un campo per il numero di carta di credito nella nostra tabella dei membri. Possiamo usare il comando ALTER per farlo. Diamo prima un'occhiata alla struttura della tabella dei membri prima di apportare modifiche. Lo script mostrato di seguito ci aiuta a farlo.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Possiamo utilizzare lo script mostrato di seguito per aggiungere un nuovo campo alla tabella dei membri.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Eseguendo lo script precedente in MySQL contro Myflixdb aggiunge una nuova colonna denominata numero carta di credito alla tabella membri con VARCHAR come tipo di dati. L'esecuzione dello script show columns ci fornisce i seguenti risultati.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
Come puoi vedere dai risultati restituiti, il numero di carta di credito è stato aggiunto alla tabella dei membri. I dati contenuti nei dati dei membri non sono interessati dall'aggiunta della nuova colonna.
COS'È IL COMANDO DI RILASCIO?
Viene utilizzato il comando DROP
- Elimina un database da MySQL server
- Elimina un oggetto (come Tabella, Colonna) da un database.
Vediamo ora degli esempi pratici che fanno uso del comando DROP.
Nel nostro esempio precedente sull'Alter Command, abbiamo aggiunto una colonna denominata numero di carta di credito alla tabella dei membri.
Supponiamo che la funzionalità di fatturazione online richiederà del tempo e vogliamo ELIMINARE la colonna della carta di credito
Possiamo usare il seguente script
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
L'esecuzione dello script precedente elimina la colonna credit_card_number dalla tabella dei membri
Diamo ora un'occhiata alle colonne nella tabella dei membri per confermare se la nostra colonna è stata eliminata.
SHOW COLUMNS FROM `members`;
Eseguendo lo script precedente in MySQL workbench su myflixdb ci fornisce i seguenti risultati.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Si noti che il numero della carta di credito è stato eliminato dall'elenco dei campi.
TABELLA DI GOCCIA
La sintassi per DROP una tabella dal database è la seguente:
DROP TABLE `sample_table`;
Diamo un'occhiata a un esempio
DROP TABLE `categories_archive`;
L'esecuzione dello script soprastante elimina la tabella denominata `categories_archive` dal nostro database.
COS'È IL COMANDO DI RINOMINAZIONE?
Viene utilizzato il comando rinomina cambiare il nome di un oggetto di database esistente (come Tabella, Colonna) con un nuovo nome.
Rinominare una tabella non fa perdere i dati in essa contenuti.
Sintassi:-
Il comando rename ha la seguente sintassi di base.
RENAME TABLE `current_table_name` TO `new_table_name`;
Supponiamo di voler rinominare la tabella movierentals in movie_rentals, possiamo utilizzare lo script mostrato di seguito per raggiungere questo obiettivo.
RENAME TABLE `movierentals` TO `movie_rentals`;
L'esecuzione dello script precedente rinomina la tabella "movierentals" in "movie_rentals".
Ora rinominiamo la tabella movie_rentals con il suo nome originale.
RENAME TABLE `movie_rentals` TO `movierentals`;
CAMBIA PAROLA CHIAVE
Cambia parole chiave ti consente di farlo
- Cambia nome della colonna
- Modifica il tipo di dati della colonna
- Modificare i vincoli della colonna
Diamo un'occhiata a un esempio. Il campo dei nomi completi nella tabella dei membri è di tipo dati varchar e ha una larghezza di 150.
SHOW COLUMNS FROM `members`;
Eseguendo lo script precedente in MySQL workbench su myflixdb ci fornisce i seguenti risultati.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Supponiamo di volerlo
- Cambia il nome del campo da "full_names" a "fullname
- Cambialo nel tipo di dati char con una larghezza di 250
- Aggiungi un vincolo NOT NULL
Possiamo ottenere questo risultato utilizzando il comando change come segue:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Eseguendo lo script precedente in MySQL workbench su myflixdb e quindi eseguendo lo script show columns fornito sopra si ottengono i seguenti risultati.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
MODIFICA PAROLA CHIAVE
La parola chiave MODIFICA ti consente di farlo
- Modifica il tipo di dati della colonna
- Modifica i vincoli delle colonne
Nell'esempio CHANGE sopra, abbiamo dovuto modificare il nome del campo e altri dettagli. L'omissione del nome del campo dall'istruzione CHANGE genererà un errore. Supponiamo che siamo interessati solo a modificare il tipo di dati e i vincoli sul campo senza influire sul nome del campo, possiamo utilizzare la parola chiave MODIFY per ottenere ciò.
Lo script seguente modifica la larghezza del campo "nome completo" da 250 a 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Eseguendo lo script precedente in MySQL workbench su myflixdb e quindi eseguendo lo script show columns fornito sopra si ottengono i seguenti risultati, mostrati di seguito.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
DOPO LA PAROLA CHIAVE
Supponiamo di voler aggiungere una nuova colonna in una posizione specifica nella tabella.
Possiamo usare il comando alter insieme alla parola chiave AFTER.
Lo script seguente aggiunge "date_of_registration" subito dopo la data di nascita nella tabella dei membri.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Eseguendo lo script precedente in MySQL workbench su myflixdb e quindi eseguendo lo script show columns fornito sopra si ottengono i seguenti risultati, mostrati di seguito.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Sommario
- Il comando alter viene utilizzato quando vogliamo modificare un database o qualsiasi oggetto contenuto nel database.
- Il comando drop viene utilizzato per eliminare i database da MySQL server o oggetti all'interno di un database.
- Il comando rename viene utilizzato per modificare il nome di una tabella in un nuovo nome di tabella.
- La parola chiave Change consente di modificare il nome di una colonna, il tipo di dati e i vincoli
- La parola chiave Modifica consente di modificare il tipo di dati e i vincoli di una colonna
- La parola chiave After viene utilizzata per specificare la posizione di una colonna in una tabella