MYSQL – VERANDEREN, VERWIJDEREN, HERNOEMEN, WIJZIGEN
Wat is het ALTER-commando?
Zoals het gezegde gaat Verandering is de enige constante
Met de tijd veranderen ook de zakelijke eisen. Naarmate de zakelijke vereisten veranderen, moeten ook de databaseontwerpen veranderen.
MySQL biedt de ALTER functie die ons helpt de wijzigingen in het reeds bestaande databaseontwerp op te nemen.
De opdracht alter wordt gebruikt om een bestaande database, tabel, weergave of andere databaseobjecten te wijzigen die mogelijk moeten worden gewijzigd tijdens de levenscyclus van een database.
Laten we aannemen dat we ons databaseontwerp hebben voltooid en dat het is geïmplementeerd. Onze databasegebruikers gebruiken het en realiseren zich dat een deel van de essentiële informatie in de ontwerpfase is weggelaten. Ze willen de bestaande gegevens niet kwijtraken, maar willen alleen de nieuwe informatie integreren. Het alter-commando komt in dergelijke situaties van pas. We kunnen de opdracht alter gebruiken om het gegevenstype van een veld te wijzigen van zeg string in numeriek, de veldnaam te wijzigen in een nieuwe naam of zelfs een nieuwe kolom aan een tabel toe te voegen.
Alter – syntaxis
De basissyntaxis die wordt gebruikt om een kolom aan een reeds bestaande tabel toe te voegen, wordt hieronder weergegeven
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
HIER
- “ALTER TABEL `tabelnaam`” is het commando dat vertelt MySQL server om de tabel genaamd `table_name` te wijzigen.
- “VOEG KOLOM TOE `kolomnaam` `data_type`” is het commando dat vertelt MySQL server om een nieuwe kolom toe te voegen met de naam `column_name` met datatype `data_type'.
Laten we veronderstellen dat Myflix online facturering en betalingen heeft geïntroduceerd. Om die reden is ons gevraagd om een veld voor het creditcardnummer toe te voegen aan onze ledentabel. We kunnen hiervoor de ALTER-opdracht gebruiken. Laten we eerst naar de structuur van de ledentabel kijken voordat we wijzigingen aanbrengen. Het onderstaande script helpt ons daarbij.
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 |
We kunnen het onderstaande script gebruiken om een nieuw veld aan de ledentabel toe te voegen.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Voer het bovenstaande script uit in MySQL tegen de Myflixdb voegt een nieuwe kolom genaamd creditcardnummer toe aan de ledentabel met VARCHAR als gegevenstype. Het uitvoeren van het script show columns geeft ons de volgende resultaten.
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 |
Zoals u kunt zien aan de geretourneerde resultaten, is het creditcardnummer toegevoegd aan de ledentabel. De gegevens in de ledengegevens worden niet beïnvloed door de toevoeging van de nieuwe kolom.
WAT IS HET DROP-COMMANDO?
Het DROP-commando wordt gebruikt om
- Een database verwijderen uit MySQL server
- Verwijder een object (zoals Tabel, Kolom) uit een database.
Laten we nu eens kijken naar praktische voorbeelden die gebruik maken van de DROP-opdracht.
In ons vorige voorbeeld van het Alter-commando hebben we een kolom met de naam creditcardnummer aan de ledentabel toegevoegd.
Stel dat de online factureringsfunctionaliteit enige tijd in beslag neemt en we de creditcardkolom willen VERWIJDEREN
We kunnen het volgende script gebruiken
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Door het bovenstaande script uit te voeren, wordt de kolom credit_card_number uit de ledentabel verwijderd
Laten we nu naar de kolommen in de ledentabel kijken om te bevestigen of onze kolom is verwijderd.
SHOW COLUMNS FROM `members`;
Voer het bovenstaande script uit in MySQL workbench vergeleken met myflixdb geeft ons de volgende resultaten.
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 |
Merk op dat het creditcardnummer uit de veldenlijst is verwijderd.
DROP TAFEL
De syntaxis om een tabel uit de database te DROP is als volgt:
DROP TABLE `sample_table`;
Laten we eens naar een voorbeeld kijken
DROP TABLE `categories_archive`;
Wanneer u bovenstaand script uitvoert, wordt de tabel met de naam ` categories_archive ` uit onze database verwijderd.
WAT IS HET HERNAMECOMMANDO?
Het commando hernoemen wordt gebruikt verander de naam van een bestaand databaseobject (zoals Tabel, Kolom) in een nieuwe naam.
Het hernoemen van een tabel zorgt er niet voor dat er gegevens in de tabel verloren gaan.
Syntaxis:-
De opdracht hernoemen heeft de volgende basis-syntaxis.
RENAME TABLE `current_table_name` TO `new_table_name`;
Laten we aannemen dat we de movierentals-tabel willen hernoemen naar movie_rentals. We kunnen het onderstaande script gebruiken om dat te bereiken.
RENAME TABLE `movierentals` TO `movie_rentals`;
Door het bovenstaande script uit te voeren, wordt de naam van de tabel `movierentals` gewijzigd in `movie_rentals`.
We zullen nu de tabel movie_rentals hernoemen naar de oorspronkelijke naam.
RENAME TABLE `movie_rentals` TO `movierentals`;
WIJZIG ZOEKWOORD
Met Wijzig trefwoorden kunt u dat doen
- Wijzig de naam van de kolom
- Wijzig het kolomgegevenstype
- Kolombeperkingen wijzigen
Laten we eens kijken naar een voorbeeld. Het veld met volledige namen in de ledentabel is van het gegevenstype Varchar en heeft een breedte van 150.
SHOW COLUMNS FROM `members`;
Voer het bovenstaande script uit in MySQL workbench vergeleken met myflixdb geeft ons de volgende resultaten.
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 |
Stel dat we dat willen
- Wijzig de veldnaam van “full_names” in “fullname
- Wijzig het in een char-gegevenstype met een breedte van 250
- Voeg een NOT NULL-beperking toe
We kunnen dit als volgt bereiken met behulp van de wijzigingsopdracht:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb en vervolgens het show columns script uitvoeren dat hierboven is gegeven, geeft de volgende resultaten.
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 |
WIJZIG ZOEKWOORD
Met het sleutelwoord WIJZIGEN kunt u dat doen
- Wijzig het kolomgegevenstype
- Kolombeperkingen wijzigen
In het bovenstaande WIJZIGINGSvoorbeeld moesten we de veldnaam en andere details wijzigen. Als u de veldnaam uit de CHANGE-instructie weglaat, wordt er een fout gegenereerd. Stel dat we alleen geïnteresseerd zijn in het wijzigen van het gegevenstype en de beperkingen op het veld, zonder de veldnaam te beïnvloeden, dan kunnen we het sleutelwoord MODIFY gebruiken om dat te bereiken.
Het onderstaande script verandert de breedte van het veld "volledige naam" van 250 in 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb en vervolgens het show columns-script uitvoeren dat hierboven is gegeven, geeft de volgende resultaten die hieronder worden weergegeven.
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 |
NA SLEUTELWOORD
Stel dat we een nieuwe kolom op een specifieke positie in de tabel willen toevoegen.
We kunnen het alter-commando samen met het AFTER-trefwoord gebruiken.
Het onderstaande script voegt “datum_van_registratie” toe net na de geboortedatum in de ledentabel.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Voer het bovenstaande script uit in MySQL workbench tegen myflixdb en vervolgens het show columns-script uitvoeren dat hierboven is gegeven, geeft de volgende resultaten die hieronder worden weergegeven.
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 |
Samenvatting
- De opdracht alter wordt gebruikt wanneer we een database of een object in de database willen wijzigen.
- De opdracht drop wordt gebruikt om databases uit te verwijderen MySQL server of objecten in een database.
- Het commando hernoemen wordt gebruikt om de naam van een tabel te wijzigen in een nieuwe tabelnaam.
- Met het sleutelwoord Wijzigen kunt u een kolomnaam, gegevenstype en beperkingen wijzigen
- Met het trefwoord Wijzigen kunt u het gegevenstype en de beperkingen van een kolom wijzigen
- Het trefwoord After wordt gebruikt om de positie van een kolom in een tabel te specificeren