mysql alter table how add column table mysql
Weitere Informationen zum Befehl MySQL ALTER Table zum Hinzufügen / Löschen einer Spalte, eines Index, einer Einschränkung, zum Ändern des Tabellennamens usw. mit Beispielen:
MySQL ALTER Mit dem Befehl können Sie eine vorhandene Tabelle ändern, indem Sie eine neue Spalte hinzufügen oder eine vorhandene Spalte entfernen oder den Datentyp der Spalte ändern.
Mit dem Befehl ALTER können Sie einfach die Struktur einer vorhandenen Tabelle ändern, indem Sie Spalten hinzufügen / entfernen / aktualisieren, Tabellen umbenennen usw.
Es ist fast unmöglich, dass alle Anforderungen für ein bestimmtes Schema im Voraus verfügbar sind. Daher ist es unbedingt erforderlich, dass die Tabellenstruktur nach Bedarf aktualisiert werden kann.
Was du lernen wirst:
MySQL ALTER TABLE
SYNTAX:
ALTER TABLE table_name (alter_option1, alter_option2...)
Hier ist Tabellenname der Name der Tabelle, für die wir die Änderungsaktion ausführen möchten. Eine oder mehrere alter_options können zusammen mit dem angegeben werden ALTER TABLE Befehl.
Schauen wir uns verschiedene häufig verwendete alter_options an, die von MySQL bereitgestellt werden.
Beispieldaten und Tabelleneinrichtung
Zum Zwecke des Verständnisses verschiedener Verwendungen der ALTER Befehl verwenden wir 2 Beispieltabellen - Mitarbeiter und Abteilung mit der unten genannten Struktur.
Wir fügen beiden Tabellen auch einige Dummy-Daten hinzu.
Wir haben diesen Tabellen keine FOREIGN KEY-Einschränkungen hinzugefügt. Wir werden lernen, sie mit dem Befehl ALTER in den Beispielen hinzuzufügen, die in den folgenden Abschnitten gezeigt werden.
CREATE TABLE IF NOT EXISTS Employee_Department ( id INT, name VARCHAR(100), PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name VARCHAR(100), id INT, address VARCHAR(100), department_id INT, PRIMARY KEY (id) ); INSERT INTO `employee_department`(`name`,`id`) VALUES ('Information Technology',1),('HR',2),('Finance',3),('Accounting',4),('Housekeeping',5 ),('Security',6),('Support',7),('Contract Staff',8),('Sales',9),('Management',10); INSERT INTO `employee` (`id`,`name`,`address`) VALUES (1,'Alyssa Villarreal','Ap #558-3012 Nulla Street'),(2,'Vanna Parks','103-986 Cursus Rd.'),(3,'Quyn Byers','770 Nulla Avenue'),(4,'Kristen Hall','Ap #622-9967 Nullam St.'),(5,'Chelsea Stone','6017 Elementum St.'),(6,'Sacha Sweeney','239-7402 Etiam St.'),(7,'Sophia Charles','799 -745 Tellus. Rd.'),(8,'Jennifer Joyner','5803 Ligula. Avenue'),(9,'Mercedes Head','Ap #375-7999 Facilisis Rd.'),(10,'Reagan Holland','P.O. Box 625, 5744 Proin Avenue');
Verschiedene Möglichkeiten zur Verwendung des ALTER-Tabellenbefehls
Das MySQL ALTER Der Befehl kann für verschiedene Zwecke verwendet werden, z. B. zum Hinzufügen / Löschen einer Spalte, zum Hinzufügen / Löschen eines Index oder einer Einschränkung sowie zum Aktualisieren einer Tabelle. Schauen wir uns anhand von Beispielen verschiedene Szenarien an.
SPALTE HINZUFÜGEN
Fügen Sie mit den obigen Beispieltabellen eine neue Spalte mit dem Namen 'department_id' vom Typ INT in die Tabelle 'Employee' ein.
ALTER TABLE employee ADD COLUMN department_id INT
TROPFENSÄULE
Ähnlich wie beim Hinzufügen einer neuen Spalte wird die MySQL ALTER Mit dem Befehl kann eine vorhandene Spalte aus der Tabelle entfernt werden.
Versuchen Sie, die oben hinzugefügte Spalte department_id aus der Employee-Tabelle zu entfernen.
ALTER TABLE employee DROP COLUMN department_id
Bitte beachten Sie, dass Sie beim Löschen einer SPALTE nur den Spaltennamen und nicht den Datentyp angeben müssen.
Um zu überprüfen, ob der Befehl ALTER erfolgreich war, können Sie den Befehl SHOW COLUMNS ausführen.
SHOW COLUMNS FROM employee;
Ausgabe:
Feld | Art | Null | Schlüssel | Standard | Extra |
---|---|---|---|---|---|
Name | varchar (100) | JA | NULL | ||
Ich würde | int | JA | NULL | ||
Adresse | varchar (100) | JA | NULL |
Sie können sehen, dass in der Tabelle 'Mitarbeiter' jetzt keine Spalte 'department_id' vorhanden ist.
Einschränkungen hinzufügen / löschen
Lassen Sie uns nun sehen, wie mit ALTER eine Einschränkung hinzugefügt werden kann.
Mit dem Befehl ALTER können Einschränkungen für eine vorhandene Tabelle hinzugefügt oder entfernt werden. Sehen wir uns ein Beispiel für eine FOREIGN KEY-Einschränkung an, die zwischen zwei Tabellen hinzugefügt werden muss.
Wir werden den Befehl ALTER verwenden, um FOREIGN KEY CONSTRAINT in der Employee-Tabelle für die employee_department-Tabelle hinzuzufügen.
Fügen Sie der Employee-Tabelle eine neue Spalte mit dem Namen department_id hinzu.
ALTER TABLE employee ADD COLUMN department_id INT
Fügen Sie nun die Einschränkung FOREIGN KEY hinzu.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Um diese Einschränkung zu überprüfen, können Sie den Befehl SHOW verwenden, um die Tabellendefinition anzuzeigen.
SHOW CREATE TABLE employee;
Tabelle | Tabelle erstellen |
---|---|
Mitarbeiter | TABELLE ERSTELLEN `Mitarbeiter` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KEY `department_id` (` department_id`), EINSCHRÄNKUNG `employee_ibfk_1` AUSLÄNDISCHER SCHLÜSSEL (` department_id`) REFERENZEN` employee_department` (`id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Sie werden feststellen, dass in der Spalte department_id eine FOREIGN KEY-Einschränkung erstellt wurde.
Lassen Sie uns nun sehen, wie wir mit dem Befehl ALTER die soeben hinzugefügte Einschränkung FOREIGN KEY entfernen können.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Bitte beachten Sie, dass Sie den Namen der erstellten Einschränkung verwenden müssen. In der obigen Ausgabe des SHOW-Befehls sehen Sie den Einschränkungsnamen, den MySQL für die Einschränkung FOREIGN KEY erstellt hat. employee_ibfk_1 ’
Führen Sie den Befehl SHOW aus, um festzustellen, ob die Einschränkung wie unten gezeigt entfernt wurde:
SHOW CREATE TABLE employee;
Tabelle | Tabelle erstellen |
---|---|
Mitarbeiter | TABELLE ERSTELLEN `Mitarbeiter` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, SCHLÜSSEL `abteilungs_id` (` abteilungs_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Indizes hinzufügen / löschen
MySQL ALTER Mit dem Befehl table können Sie auch INDEXES für eine Tabelle erstellen oder löschen.
Es gibt vier verschiedene Arten von Indizes, die mit dem Befehl ALTER TABLE hinzugefügt werden können.
# 1) PRIMARY KEY hinzufügen: Dieser Befehl fügt einen PRIMARY KEY-Index für eine bestimmte Spalte (oder Spalten) hinzu.
Verwenden Sie im folgenden Beispiel die Employee-Tabelle und fügen Sie den PRIMARY KEY-Index zur Spalte 'Id' hinzu.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Fügen Sie EINZIGARTIG hinzu: Fügt einen eindeutigen Index für bestimmte Spalten hinzu oder erstellt diesen.
Angenommen, wir möchten hypothetisch nur eindeutige Namen in einer Tabelle. Fügen Sie in der Spalte 'Name' in der Tabelle 'Mitarbeiter' einen EINZIGARTIGEN Index hinzu, wie unten gezeigt.
ALTER TABLE employee ADD UNIQUE (name);
# 3) INDEX hinzufügen: Fügen Sie einen normalen Index für eine beliebige Spalte hinzu.
Fügen Sie einen normalen Index für das Feld 'Adresse' in der Employee-Tabelle hinzu.
ALTER TABLE employee ADD INDEX (name);
# 4) FULLTEXT Index hinzufügen: Dies ist eine spezielle Art von Index, der für die Textsuche verwendet wird.
Wir werden einen FULLTEXT-Index für die Spaltenwerte 'Name' in der Employee-Tabelle hinzufügen.
ALTER TABLE employee ADD FULLTEXT(address);
Für alle oben genannten 4 Beispiele können wir die ausführen SHOW CREATE TABLE Befehl, um die Details zu den erstellten Indizes abzurufen.
SHOW CREATE TABLE employee;
Tabelle | Tabelle erstellen |
---|---|
Mitarbeiter | TABELLE ERSTELLEN `Mitarbeiter` ( `name` varchar (100) DEFAULT NULL, `id` int NICHT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, Primärschlüssel (`id`), EINZIGARTIGER SCHLÜSSEL `name` (` name`), SCHLÜSSEL `name_2` (` name`), FULLTEXT KEY `address` (` address`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
In der obigen Ausgabe werden Sie feststellen, dass alle Indizes gemäß dem Wert in der Spalte create_table erstellt wurden.
Ähnlich wie beim Erstellen von Indizes kann der Befehl ALTER auch zum Löschen vorhandener Indizes aus der Tabelle verwendet werden.
Beispiel:
ALTER TABLE employee DROP INDEX address;
Der obige Befehl lässt den FULLTEXT-Index fallen, den wir für das Adressfeld hinzugefügt haben.
Beachten Sie den Namen 'Adresse'. Dies sollte mit dem Indexnamen in der Ausgabe von übereinstimmen SHOW CREATE TABLE Befehl.
Ändern Sie den Standardwert der Spalte
ALTER TABLE Mit dem Befehl kann auch der DEFAULT-Wert für eine vorhandene Spalte festgelegt / geändert werden.
Warum wählen Sie die Frage zum Testen von Softwaretests?
Schauen wir uns ein Beispiel an, in dem wir den Standardwert der Spalte 'department_id' in '1' ändern. Damit würden alle neuen Einfügungen in diese Tabelle den Wert für die Spalte department_id auf 1 ändern / setzen
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Fügen Sie der Employee-Tabelle einen neuen Datensatz hinzu:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
Lassen Sie uns nun die Abteilung_ID nach diesem Datensatz abfragen und sehen, welcher Wert festgelegt wird.
SELECT department_id FROM employee where id=11 //Output department_id 1
Tabellennamen aktualisieren
MySQL ALTER Der Befehl table kann auch verwendet werden, um den Namen einer vorhandenen Tabelle zu aktualisieren. Manchmal ist es erforderlich, die Schemastruktur zu aktualisieren, was das Ändern / Aktualisieren der Tabellennamen beinhalten kann.
Beispiel - Wir werden die Tabelle 'employee' in 'Employee_details' umbenennen.
ALTER TABLE table_name RENAME TO new_table_name;
Häufig gestellte Fragen
F # 1) Wie ändere ich die Tabellenstruktur in MySQL?
Antworten: MySQL bietet den Befehl ALTER, um die Struktur einer vorhandenen Tabelle in MySQL zu ändern. Sie können verschiedene Operationen mit dem Befehl ALTER ausführen, wie z.
- Hinzufügen / Löschen einer Spalte
- Hinzufügen oder Entfernen von Index oder Einschränkung
- Tabelle umbenennen
F # 2) Sperrt der Befehl ALTER eine Tabelle?
Antworten: Dies kann von den Versionen abhängen - bei älteren Versionen von MySQL wird eine Tabelle während der Ausführung der ALTER-Anweisung gesperrt. Im Allgemeinen würde das Sperren passieren, d. H. Jegliches Lesen und Schreiben während ALTER.
Zum Beispiel - Das Hinzufügen einer neuen Spalte für eine vorhandene Tabelle würde alle Zeilen der Tabelle berühren, in der die Spalte hinzugefügt wird. Wenn die Tabelle eine Anzahl von Datensätzen in Millionen enthält, kann die Ausführung des ALTER-Vorgangs einige Zeit dauern. In diesem Fall wäre das Sperren der Lese- / Schreibvorgänge kostspielig, da die Datenbank nicht verfügbar und nicht zugänglich wäre.
F # 3) Können wir der ALTER-Tabelle mehr als eine Spalte hinzufügen?
Antworten: Ja, mit dem Befehl ALTER können mehrere Spalten innerhalb einer einzelnen Anweisung hinzugefügt werden.
Schauen wir uns ein Beispiel an, in dem wir eine Tabelle Employee mit Spalten-ID, Name und Adresse haben, und nehmen wir an, wir möchten zwei weitere Spalten mit dem Namen 'most_education' (Typ varchar) und phone_number (Typ varchar) hinzufügen.
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Werfen wir einen Blick auf die Tabelleninformationen
SHOW COLUMNS FROM employee;
Ausgabe:
Feld | Art | Null | Schlüssel | Standard | Extra |
---|---|---|---|---|---|
Name | varchar (100) | JA | VEREINIGT | NULL | |
Ich würde | int | UNTERLASSEN SIE | PRI | NULL | |
Adresse | varchar (100) | JA | NULL | ||
abteilungs_id | int | JA | 1 | ||
Höchste Ausbildung | varchar (50) | JA | NULL | ||
Telefonnummer | varchar (20) | JA | NULL |
In der obigen Ausgabe sehen Sie die Spalten, die die höchste Bildung und die Telefonnummer hinzugefügt haben.
Fazit
In diesem Tutorial haben wir verschiedene Verwendungszwecke von kennengelernt MySQL ALTER Tabellenbefehl. ALTER ist ein wichtiger Befehl, da er für mehrere Zwecke verwendet werden kann, um die Struktur einer vorhandenen Tabelle in MySQL zu ändern.
Es kann zum Beispiel zum Hinzufügen / Entfernen einer Spalte, Hinzufügen / Löschen von Indizes oder Einschränkungen verwendet werden und kann auch zum Umbenennen einer vorhandenen Tabelle verwendet werden.
Jeder, der MySQL lernt, sollte den Befehl ALTER table genau kennen, da er hauptsächlich in Wartungsphasen von Datenbanken verwendet wird, in denen das vorhandene Tabellenschema geändert werden muss.
Literatur-Empfehlungen
- MySQL Tutorial zum Erstellen von Tabellen mit Beispielen
- MySQL Insert Into Table - Syntax und Beispiele für Insert-Anweisungen
- MySQL-Datentypen | Was sind verschiedene Datentypen in MySQL?
- Grundlagen der MySQL FOREIGN KEY-Einschränkung mit Beispielen
- MySQL JOIN Tutorial: Inner, Außen, Kreuz, Links, Rechts und Selbst
- MySQL-Datenbank erstellen - So erstellen Sie eine Datenbank in MySQL
- Top 40 der besten Fragen und Antworten zu MySQL-Interviews (2021 Fragen)
- Hash-Tabelle in C ++: Programme zum Implementieren von Hash-Tabellen und Hash-Maps