WAS IST DER ALTER-BEFEHL?
Wie das Sprichwort sagt, ist Veränderung die einzige Konstante
Mit der Zeit ändern sich auch die Geschäftsanforderungen. Da sich die Geschäftsanforderungen ändern, müssen sich auch die Datenbankdesigns ändern.
MySQL bietet die ALTER- Funktion, mit der wir die Änderungen am bereits vorhandenen Datenbankdesign übernehmen können .
Der Befehl alter wird verwendet, um eine vorhandene Datenbank, Tabelle, Ansicht oder andere Datenbankobjekte zu ändern, die möglicherweise während des Lebenszyklus einer Datenbank geändert werden müssen.
Nehmen wir an, wir haben unser Datenbankdesign fertiggestellt und es wurde implementiert. Unsere Datenbankbenutzer verwenden es und stellen dann fest, dass einige der wichtigen Informationen in der Entwurfsphase ausgelassen wurden. Sie möchten die vorhandenen Daten nicht verlieren, sondern nur die neuen Informationen einbeziehen. Der Befehl alter ist in solchen Situationen nützlich. Mit dem Befehl alter können wir den Datentyp eines Felds von beispielsweise string in numerisch ändern, den Feldnamen in einen neuen Namen ändern oder sogar eine neue Spalte in eine Tabelle einfügen.
Syntax ändern
Die grundlegende Syntax zum Hinzufügen einer Spalte zu einer bereits vorhandenen Tabelle ist unten dargestellt
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
HIER
- "ALTER TABLE` table_name` " ist der Befehl, der den MySQL-Server anweist, die Tabelle mit dem Namen` table_name` zu ändern.
- "ADD COLUMN` column_name` `data_type`" ist der Befehl, der den MySQL-Server anweist, eine neue Spalte mit dem Namen `column_name` mit dem Datentyp` data_type 'hinzuzufügen.
Nehmen wir an, Myflix hat Online-Abrechnungen und -Zahlungen eingeführt. Zu diesem Zweck wurden wir gebeten, ein Feld für die Kreditkartennummer in unsere Mitgliedertabelle aufzunehmen. Wir können den Befehl ALTER verwenden, um dies zu tun. Schauen wir uns zunächst die Struktur der Mitgliedertabelle an, bevor wir Änderungen vornehmen. Das unten gezeigte Skript hilft uns dabei.
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 |
Wir können das unten gezeigte Skript verwenden, um der Mitgliedertabelle ein neues Feld hinzuzufügen.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Durch Ausführen des obigen Skripts in MySQL für Myflixdb wird der Mitgliedertabelle eine neue Spalte mit dem Namen Kreditkartennummer mit VARCHAR als Datentyp hinzugefügt. Durch Ausführen des Skripts "Spalten anzeigen" erhalten Sie die folgenden Ergebnisse.
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 |
Wie Sie den zurückgegebenen Ergebnissen entnehmen können, wurde der Mitgliedertabelle eine Kreditkartennummer hinzugefügt. Die in den Mitgliederdaten enthaltenen Daten werden durch das Hinzufügen der neuen Spalte nicht beeinflusst.
WAS IST DER TROPFENBEFEHL?
Der Befehl DROP wird verwendet, um
- Löschen Sie eine Datenbank vom MySQL-Server
- Löschen Sie ein Objekt (wie Tabelle, Spalte) aus einer Datenbank.
Schauen wir uns nun praktische Beispiele an, die den Befehl DROP verwenden.
In unserem vorherigen Beispiel für den Befehl "Ändern" haben wir der Mitgliedertabelle eine Spalte mit dem Namen "Kreditkartennummer" hinzugefügt.
Angenommen, die Online-Abrechnungsfunktion wird einige Zeit in Anspruch nehmen und wir möchten die Kreditkartenspalte fallen lassen
Wir können das folgende Skript verwenden
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Durch Ausführen des obigen Skripts wird die Spalte credit_card_number aus der Mitgliedertabelle gelöscht
Schauen wir uns nun die Spalten in der Mitgliedertabelle an, um zu bestätigen, ob unsere Spalte gelöscht wurde.
SHOW COLUMNS FROM `members`;
Wenn Sie das obige Skript in der MySQL-Workbench gegen die myflixdb ausführen, erhalten Sie die folgenden Ergebnisse.
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 |
Beachten Sie, dass die Kreditkartennummer aus der Feldliste entfernt wurde.
TROPFENTABELLE
Die Syntax zum DROP einer Tabelle aus der Datenbank lautet wie folgt:
DROP TABLE `sample_table`;
Schauen wir uns ein Beispiel an
DROP TABLE `categories_archive`;
Durch Ausführen des obigen Skripts wird die Tabelle mit dem Namen "category_archive" aus unserer Datenbank gelöscht.
WAS IST DER RENAME-BEFEHL?
Mit dem Befehl zum Umbenennen wird der Name eines vorhandenen Datenbankobjekts (z. B. Tabelle, Spalte) in einen neuen Namen geändert .
Durch das Umbenennen einer Tabelle werden keine Daten verloren, die darin enthalten sind.
Syntax:-
Der Befehl zum Umbenennen hat die folgende grundlegende Syntax.
RENAME TABLE `current_table_name` TO `new_table_name`;
Nehmen wir an, wir möchten die movierentals-Tabelle in movie_rentals umbenennen. Dazu können wir das unten gezeigte Skript verwenden.
RENAME TABLE `movierentals` TO `movie_rentals`;
Durch Ausführen des obigen Skripts wird die Tabelle "movierentals" in "movie_rentals" umbenannt.
Wir werden nun die Tabelle movie_rentals wieder in ihren ursprünglichen Namen umbenennen.
RENAME TABLE `movie_rentals` TO `movierentals`;
SCHLÜSSELWORT ÄNDERN
Mit Schlüsselwörtern ändern können Sie
- Ändern Sie den Namen der Spalte
- Spaltendatentyp ändern
- Spaltenbeschränkungen ändern
Schauen wir uns ein Beispiel an. Das vollständige Namensfeld in der Mitgliedertabelle ist vom Datentyp varchar und hat eine Breite von 150.
SHOW COLUMNS FROM `members`;
Wenn Sie das obige Skript in der MySQL-Workbench gegen die myflixdb ausführen, erhalten Sie die folgenden Ergebnisse.
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 |
Angenommen, wir wollen
- Ändern Sie den Feldnamen von "full_names" in "fullname"
- Ändern Sie ihn in den Datentyp char mit einer Breite von 250
- Fügen Sie eine NOT NULL-Einschränkung hinzu
Wir können dies mit dem Befehl change wie folgt erreichen:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Das Ausführen des obigen Skripts in der MySQL-Workbench gegen myflixdb und das anschließende Ausführen des oben angegebenen Skripts zum Anzeigen von Spalten führt zu den folgenden Ergebnissen.
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 |
SCHLÜSSELWORT ÄNDERN
Mit dem Schlüsselwort MODIFY können Sie
- Ändern Sie den Spaltendatentyp
- Spaltenbeschränkungen ändern
Im obigen CHANGE-Beispiel mussten wir den Feldnamen sowie andere Details ändern. Wenn Sie den Feldnamen in der CHANGE-Anweisung weglassen, wird ein Fehler generiert. Angenommen, wir möchten nur den Datentyp und die Einschränkungen für das Feld ändern, ohne den Feldnamen zu beeinflussen. Dazu können wir das Schlüsselwort MODIFY verwenden.
Das folgende Skript ändert die Breite des Felds "vollständiger Name" von 250 auf 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Das Ausführen des obigen Skripts in der MySQL-Workbench gegen myflixdb und das anschließende Ausführen des oben angegebenen Skripts zum Anzeigen von Spalten führt zu den folgenden Ergebnissen.
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 |
NACH SCHLÜSSELWORT
Angenommen, wir möchten an einer bestimmten Position in der Tabelle eine neue Spalte hinzufügen.
Wir können den Befehl alter zusammen mit dem Schlüsselwort AFTER verwenden.
Das folgende Skript fügt "date_of_registration" direkt nach dem Geburtsdatum in die Mitgliedertabelle ein.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Das Ausführen des obigen Skripts in der MySQL-Workbench gegen myflixdb und das anschließende Ausführen des oben angegebenen Skripts zum Anzeigen von Spalten führt zu den folgenden Ergebnissen.
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 |
Zusammenfassung
- Der Befehl alter wird verwendet, wenn eine Datenbank oder ein in der Datenbank enthaltenes Objekt geändert werden soll.
- Der Befehl drop wird verwendet, um Datenbanken von MySQL-Servern oder Objekten in einer Datenbank zu löschen.
- Mit dem Befehl zum Umbenennen wird der Name einer Tabelle in einen neuen Tabellennamen geändert.
- Mit dem Schlüsselwort Ändern können Sie einen Spaltennamen, einen Datentyp und Einschränkungen ändern
- Mit dem Schlüsselwort Ändern können Sie einen Spaltendatentyp und Einschränkungen ändern
- Das Schlüsselwort After wird verwendet, um die Position einer Spalte in einer Tabelle anzugeben