COS'È IL COMANDO ALTER?
Come dice il proverbio Il cambiamento è l'unica costante
Con il tempo cambiano anche le esigenze aziendali. Man mano che i requisiti aziendali cambiano, anche i progetti di database devono cambiare.
MySQL fornisce la funzione ALTER che ci aiuta a incorporare le modifiche al design del database già esistente .
Il comando alter viene utilizzato per modificare un database, una tabella, una vista o altri oggetti di database esistenti 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 stanno utilizzando 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 solo 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 dire stringa a numerico, cambiare il nome del campo con un nuovo nome o anche aggiungere una nuova colonna in una tabella.
Alter- sintassi
La sintassi di base utilizzata per aggiungere una colonna a una tabella già esistente è mostrata di seguito
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
QUI
- "ALTER TABLE` table_name` " è il comando che dice al server MySQL di modificare la tabella denominata` table_name`.
- "ADD COLUMN` column_name` `data_type`" è il comando che dice al server MySQL di aggiungere una nuova colonna denominata `column_name` con il 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 della 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 eventuali 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 usare lo script mostrato di seguito per aggiungere un nuovo campo alla tabella dei membri.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
L'esecuzione dello script precedente in MySQL su Myflixdb aggiunge una nuova colonna denominata numero di carta di credito alla tabella dei membri con VARCHAR come tipo di dati. L'esecuzione dello script mostra colonne ci dà 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 della carta di credito è stato aggiunto alla tabella dei membri. I dati contenuti nei dati dei membri non sono influenzati dall'aggiunta della nuova colonna.
COS'È IL COMANDO DROP?
Il comando DROP viene utilizzato per
- Elimina un database dal server MySQL
- Elimina un oggetto (come tabella, colonna) da un database.
Vediamo ora esempi pratici che fanno uso del comando DROP.
Nel nostro esempio precedente sul comando Alter, abbiamo aggiunto una colonna denominata numero di carta di credito alla tabella dei membri.
Supponiamo che la funzionalità di fatturazione online richieda un po 'di tempo e desideriamo 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
Esaminiamo ora le colonne nella tabella dei membri per confermare se la nostra colonna è stata eliminata.
SHOW COLUMNS FROM `members`;
L'esecuzione dello script precedente nel workbench MySQL su myflixdb ci dà 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 |
Notare che il numero della carta di credito è stato eliminato dall'elenco dei campi.
TABELLA DI CADUTA
La sintassi per ELIMINARE una tabella dal database è la seguente:
DROP TABLE `sample_table`;
Vediamo un esempio
DROP TABLE `categories_archive`;
L'esecuzione dello script precedente elimina la tabella denominata "categories_archive" dal nostro database.
CHE COS'È IL COMANDO RINOMINARE?
Il comando rename viene utilizzato per modificare il nome di un oggetto database esistente (come tabella, colonna) con un nuovo nome .
Rinominare una tabella non fa perdere alcun dato contenuto al suo interno.
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 usare lo script mostrato di seguito per ottenere ciò.
RENAME TABLE `movierentals` TO `movie_rentals`;
L'esecuzione dello script precedente rinomina la tabella `movierentals` in` movie_rentals`.
Ora rinomineremo la tabella movie_rentals con il suo nome originale.
RENAME TABLE `movie_rentals` TO `movierentals`;
CAMBIA PAROLA CHIAVE
Modificare le parole chiave ti consente di farlo
- Cambia nome della colonna
- Cambia il tipo di dati della colonna
- Cambia vincoli di colonna
Diamo un'occhiata a un esempio. Il campo dei nomi completi nella tabella dei membri è di tipo di dati varchar e ha una larghezza di 150.
SHOW COLUMNS FROM `members`;
L'esecuzione dello script precedente nel workbench MySQL su myflixdb ci dà 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
- Modificalo in un tipo di dati char con una larghezza di 250
- Aggiungi un vincolo NOT NULL
Possiamo farlo usando il comando change come segue:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
L'esecuzione dello script sopra in MySQL workbench su myflixdb e quindi l'esecuzione dello script delle colonne dello spettacolo sopra riportato fornisce 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 vincoli di colonna
Nell'esempio CAMBIA sopra, abbiamo dovuto modificare il nome del campo e altri dettagli. L'omissione del nome del campo dall'istruzione CHANGE genererà un errore. Supponiamo di essere 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 farlo.
Lo script seguente cambia la larghezza del campo "fullname" da 250 a 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
L'esecuzione dello script precedente nel workbench MySQL su myflixdb e quindi l'esecuzione dello script delle colonne dello spettacolo fornito sopra fornisce 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`;
L'esecuzione dello script precedente nel workbench MySQL su myflixdb e quindi l'esecuzione dello script delle colonne dello spettacolo fornito sopra fornisce 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 si desidera modificare un database o qualsiasi oggetto contenuto nel database.
- Il comando drop viene utilizzato per eliminare i database dal server MySQL o gli 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 un tipo di dati di colonna e vincoli
- La parola chiave After viene utilizzata per specificare la posizione di una colonna in una tabella