MYSQL – ÄNDRA, SLÄPP, BYT NAMN, ÄNDRA
Vad är ALTER-kommandot?
Som man brukar säga Förändring är det enda konstanta
Med tiden förändras också affärskraven. När affärskraven förändras behöver även databasdesigner förändras.
MySQL ger ÄNDRA funktion som hjälper oss införliva ändringarna i den redan befintliga databasdesignen.
Kommandot alter används för att modifiera en befintlig databas, tabell, vy eller andra databasobjekt som kan behöva ändras under en databas livscykel.
Låt oss anta att vi har slutfört vår databasdesign och den har implementerats. Våra databasanvändare använder den och sedan inser de att en del av den viktiga informationen utelämnades i designfasen. De vill inte förlora den befintliga informationen utan vill bara införliva den nya informationen. Kommandot alter kommer väl till pass i sådana situationer. Vi kan använda kommandot alter för att ändra datatypen för ett fält från säg sträng till numerisk, ändra fältnamnet till ett nytt namn eller till och med lägga till en ny kolumn i en tabell.
Alter – syntax
Den grundläggande syntaxen som används för att lägga till en kolumn i en redan befintlig tabell visas nedan
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
HÄR
- "ÄNDRA TABELL `tabellnamn`" är kommandot som berättar MySQL server för att ändra tabellen med namnet `tabellnamn`.
- "ADD COLUMN `column_name` `data_type`" är kommandot som berättar MySQL server för att lägga till en ny kolumn med namnet "kolumnnamn" med datatypen "data_typ".
Låt oss anta att Myflix har introducerat onlinefakturering och betalningar. Mot det syftet har vi blivit ombedda att lägga till ett fält för kreditkortsnumret i vår medlemstabell. Vi kan använda kommandot ALTER för att göra det. Låt oss först titta på strukturen för medlemstabellen innan vi gör några ändringar. Skriptet som visas nedan hjälper oss att göra det.
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 |
Vi kan använda skriptet som visas nedan för att lägga till ett nytt fält i medlemstabellen.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Exekvera skriptet ovan i MySQL mot Myflixdb lägger till en ny kolumn med namnet kreditkortsnummer till medlemstabellen med VARCHAR som datatyp. Att köra skriptet visa kolumner ger oss följande resultat.
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 |
Som du kan se av de returnerade resultaten har kreditkortsnummer lagts till i medlemstabellen. Uppgifterna i medlemmarnas data påverkas inte av tillägget av den nya kolumnen.
VAD ÄR DROP-KOMMANDOET?
Kommandot DROP används för att
- Ta bort en databas från MySQL server
- Ta bort ett objekt (som Tabell , Kolumn) från en databas.
Låt oss nu titta på praktiska exempel som använder kommandot DROP.
I vårt tidigare exempel på Alter-kommandot lade vi till en kolumn med namnet kreditkortsnummer i medlemstabellen.
Anta att onlinefaktureringsfunktionen kommer att ta lite tid och vi vill ta bort kreditkortskolumnen
Vi kan använda följande skript
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Genom att köra ovanstående skript tas kolumnen kreditkortsnummer bort från medlemstabellen
Låt oss nu titta på kolumnerna i medlemstabellen för att bekräfta om vår kolumn har tagits bort.
SHOW COLUMNS FROM `members`;
Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger oss följande resultat.
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 |
Observera att kreditkortsnumret har tagits bort från fältlistan.
SLÄPP BORD
Syntaxen för att DROPPA en tabell från databasen är följande –
DROP TABLE `sample_table`;
Låt oss titta på ett exempel
DROP TABLE `categories_archive`;
Genom att köra skriptet ovan raderas tabellen med namnet ` categories_archive ` från vår databas.
VAD ÄR KOMMANDOET ÄNDRA NAMN?
Kommandot Rename används för att ändra namnet på ett befintligt databasobjekt (som Tabell, Kolumn) till ett nytt namn.
Att byta namn på en tabell gör att den inte förlorar någon data som finns i den.
Syntax:-
Kommandot Rename har följande grundläggande syntax.
RENAME TABLE `current_table_name` TO `new_table_name`;
Låt oss anta att vi vill byta namn på movierentals-tabellen till movie_rentals, vi kan använda skriptet som visas nedan för att uppnå det.
RENAME TABLE `movierentals` TO `movie_rentals`;
Att köra ovanstående skript byter namn på tabellen "movierentals" till "movie_rentals".
Vi kommer nu att döpa filmen_rentals-tabellen tillbaka till dess ursprungliga namn.
RENAME TABLE `movie_rentals` TO `movierentals`;
ÄNDRA SÖKORD
Ändra nyckelord kan du
- Ändra namn på kolumn
- Ändra kolumndatatyp
- Ändra kolumnbegränsningar
Låt oss titta på ett exempel. Fältet för fullständiga namn i medlemstabellen är av varchar-datatyp och har en bredd på 150.
SHOW COLUMNS FROM `members`;
Exekvera skriptet ovan i MySQL arbetsbänk mot myflixdb ger oss följande resultat.
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 |
Antag att vi vill
- Ändra fältnamnet från "full_names" till "fullname
- Ändra den till char-datatyp med en bredd på 250
- Lägg till en NOT NULL-begränsning
Vi kan åstadkomma detta med hjälp av ändringskommandot enligt följande –
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Exekvera skriptet ovan i MySQL workbench mot myflixdb och sedan exekvera show columns-skriptet ovan ger följande resultat.
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 |
ÄNDRA SÖKORD
Nyckelordet MODIFIERA låter dig
- Ändra kolumndatatyp
- Ändra kolumnbegränsningar
I CHANGE-exemplet ovan var vi tvungna att ändra fältnamnet samt andra detaljer. Om du utelämnar fältnamnet från CHANGE-satsen genereras ett fel. Anta att vi bara är intresserade av att ändra datatypen och begränsningarna på fältet utan att påverka fältnamnet, vi kan använda nyckelordet MODIFY för att åstadkomma det.
Skriptet nedan ändrar bredden på fältet "fullständigt namn" från 250 till 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Exekvera skriptet ovan i MySQL workbench mot myflixdb och sedan exekvera show columns-skriptet ovan ger följande resultat som visas nedan.
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 |
EFTER SÖKORD
Antag att vi vill lägga till en ny kolumn på en specifik position i tabellen.
Vi kan använda kommandot alter tillsammans med nyckelordet AFTER.
Skriptet nedan lägger till "date_of_registration" precis efter födelsedatumet i medlemstabellen.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Exekvera skriptet ovan i MySQL workbench mot myflixdb och sedan exekvera show columns-skriptet ovan ger följande resultat som visas nedan.
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 |
Sammanfattning
- Kommandot alter används när vi vill modifiera en databas eller något objekt som finns i databasen.
- Drop-kommandot används för att ta bort databaser från MySQL server eller objekt i en databas.
- Kommandot Rename används för att ändra namnet på en tabell till ett nytt tabellnamn.
- Nyckelordet Ändra låter dig ändra ett kolumnnamn, datatyp och begränsningar
- Med Ändra nyckelord kan du ändra en kolumndatatyp och begränsningar
- Nyckelordet After används för att ange positionen för en kolumn i en tabell