mysql alter table how add column table mysql
Meer informatie over het MySQL ALTER Table-commando om een kolom, index, beperking, tabelnaam etc. toe te voegen / neer te zetten met voorbeelden:
MySQL ALTER commando wordt gebruikt om een bestaande tabel te wijzigen door een nieuwe kolom toe te voegen of een bestaande kolom te verwijderen of het gegevenstype van de kolom te wijzigen.
Simpel gezegd, het ALTER-commando wordt gebruikt om de structuur van een bestaande tabel te wijzigen door kolommen toe te voegen / te verwijderen / bij te werken, tabellen te hernoemen, enz.
Het is bijna onmogelijk dat alle vereisten voor een bepaald schema van tevoren beschikbaar zijn, daarom is het absoluut noodzakelijk dat er een manier is om de tabelstructuur naar behoefte bij te werken.
Wat je leert:
MySQL ALTER TABLE
SYNTAXIS:
Hier is table_name de naam van de tabel waarop we de alter-actie willen uitvoeren. Een of meer alter_options kunnen samen met de ALTER TAFEL opdracht.
Laten we eens kijken naar verschillende veelgebruikte alter_options van MySQL.
Voorbeeldgegevens en tabelopstelling
Met het doel de verschillende toepassingen van het LEEFTIJD commando, zullen we 2 voorbeeldtabellen gebruiken - Medewerker en Afdeling met de structuur zoals hieronder vermeld.
We voegen ook enkele dummy-gegevens toe aan beide tabellen.
We hebben geen beperkingen toegevoegd aan deze tabellen. We zullen leren om ze toe te voegen met behulp van de ALTER-opdracht in de voorbeelden die in de onderstaande secties worden getoond terwijl we bespreken.
Verschillende manieren om ALTER Table Command te gebruiken
De MySQL ALTER Commando kan voor meerdere dingen worden gebruikt, zoals een kolom toevoegen / neerzetten, index of beperking toevoegen / neerzetten en een tabel zelf bijwerken. Laten we aan de hand van voorbeelden naar verschillende scenario's kijken.
KOLOM TOEVOEGEN
Laten we met de bovenstaande voorbeeldtabellen een nieuwe kolom toevoegen met de naam ‘department_id’ van het type INT in de tabel Employee.
DROP KOLOM
Net als bij het toevoegen van een nieuwe kolom, de MySQL ALTER commando kan worden gebruikt om een bestaande kolom uit de tabel te verwijderen.
Probeer de hierboven toegevoegde kolom department_id uit de tabel Werknemer te verwijderen.
Houd er rekening mee dat u bij het neerzetten van een COLUMN alleen de naam van de kolom hoeft te vermelden en niet het gegevenstype.
Om te valideren of het ALTER-commando is geslaagd, kunt u het SHOW COLUMNS-commando uitvoeren.
Uitgang:
Veld | Type | Nul | Sleutel | Standaard | Extra |
---|---|---|---|---|---|
naam | varchar (100) | JA | NUL | ||
ID kaart | int | JA | NUL | ||
adres | varchar (100) | JA | NUL |
U kunt zien dat er nu geen afdelings-id-kolom in de tabel ‘Werknemer’ staat.
Beperkingen toevoegen / verwijderen
Laten we nu eens kijken hoe ALTER kan worden gebruikt om een beperking toe te voegen.
Het ALTER-commando kan worden gebruikt om beperkingen voor een bestaande tabel toe te voegen of te verwijderen. Laten we eens kijken naar een voorbeeld van een FOREIGN KEY-beperking die moet worden toegevoegd tussen twee tabellen.
We zullen het ALTER-commando gebruiken om FOREIGN KEY CONSTRAINT toe te voegen in de Employee-tabel voor de employee_department-tabel.
Voeg een nieuwe kolom toe met de naam department_id in de tabel Werknemer.
Voeg nu de beperking FOREIGN KEY toe.
Om deze beperking te valideren, kunnen we het SHOW commando gebruiken om de tabeldefinitie te zien.
Tafel | Maak een tafel |
---|---|
werknemer | MAAK TABEL `medewerker` ( `naam` varchar (100) STANDAARD NULL, `id` int STANDAARD NULL, `adres` varchar (100) STANDAARD NULL, `department_id` int STANDAARD NULL, KEY `department_id` (` department_id`), BEPERKING `employee_ibfk_1` FOREIGN KEY (` department_id`) REFERENTIES `employee_department` (` id`) ) ENGINE = InnoDB STANDAARD CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
U zult zien dat er een FOREIGN KEY-beperking is gemaakt in de kolom department_id.
Laten we nu eens kijken hoe we de ALTER-opdracht kunnen gebruiken om de FOREIGN KEY-beperking die we zojuist hebben toegevoegd, te verwijderen.
Houd er rekening mee dat u de naam moet gebruiken van de beperking die is gemaakt. Dus in de bovenstaande SHOW-opdrachtuitvoer kunt u de naam van de beperking zien die MySQL heeft gemaakt voor de beperking FOREIGN KEY is ‘ werknemer_ibfk_1 ’
Voer de opdracht SHOW uit om te zien of de beperking is verwijderd, zoals hieronder wordt weergegeven:
Tafel | Maak een tafel |
---|---|
werknemer | MAAK TABEL `medewerker` ( `naam` varchar (100) STANDAARD NULL, `id` int STANDAARD NULL, `adres` varchar (100) STANDAARD NULL, `department_id` int STANDAARD NULL, KEY `department_id` (` department_id`) ) ENGINE = InnoDB STANDAARD CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Indexen toevoegen / neerzetten
MySQL ALTER table laat je ook toe om INDEXES aan te maken of neer te zetten tegen een tafel.
Er kunnen vier verschillende soorten indexen zijn die kunnen worden toegevoegd met het ALTER TABLE-commando.
# 1) PRIMAIRE SLEUTEL toevoegen: Dit commando voegt een PRIMARY KEY-index toe aan een bepaalde kolom (of kolommen)
Gebruik in het onderstaande voorbeeld de tabel Werknemer en voeg de PRIMAIRE SLEUTELindex toe aan de kolom ‘Id’.
# 2) UNIEK toevoegen: Voegt een unieke index toe aan of maakt deze voor bepaalde kolom (men)
Stel dat we hypothetisch alleen unieke namen in een tabel willen. Voeg een UNIEKE index toe aan de kolom ‘naam’ in de tabel Werknemer, zoals hieronder weergegeven.
# 3) INDEX toevoegen: Voeg een gewone index toe aan elke kolom.
Voeg een normale index toe aan het veld ‘adres’ in de tabel Werknemer.
# 4) FULLTEXT Index toevoegen: Dit is een speciaal type index dat wordt gebruikt voor het zoeken naar tekst.
We zullen een FULLTEXT Index toevoegen aan de ‘naam’ kolomwaarden in de Werknemer-tabel.
Voor alle bovenstaande 4 voorbeelden kunnen we het TOON TABEL MAKEN commando om de details over de aangemaakte indexen op te halen.
Tafel | Maak een tafel |
---|---|
werknemer | MAAK TABEL `medewerker` ( `naam` varchar (100) STANDAARD NULL, `id` int NOT NULL, `adres` varchar (100) STANDAARD NULL, `department_id` int STANDAARD NULL, PRIMAIRE SLEUTEL (`id`), UNIEKE SLEUTEL `naam` (` naam`), SLEUTEL `naam_2` (` naam`), FULLTEXT KEY `adres` (` adres`) ) ENGINE = InnoDB STANDAARD CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
In de bovenstaande uitvoer zult u zien dat alle indexen zijn gemaakt volgens de waarde in de kolom create_table.
Net als bij het maken van indexen, kan de opdracht ALTER ook worden gebruikt om bestaande indexen uit de tabel te verwijderen.
Voorbeeld:
Met de bovenstaande opdracht wordt de FULLTEXT-index die we voor het adresveld hebben toegevoegd, VERVALLEN.
Let op de naam 'adres'. Dit moet overeenkomen met de indexnaam in de uitvoer van het TOON TABEL MAKEN opdracht.
Wijzig de standaardwaarde van de kolom
ALTER TAFEL commando kan ook worden gebruikt om de DEFAULT-waarde voor een bestaande kolom in te stellen / te wijzigen.
wat is een json-bestand hoe te openen
Laten we eens kijken naar een voorbeeld waarin we de standaardwaarde van de kolom department_id veranderen in ‘1’. Hiermee zou elke nieuwe invoeging in deze tabel de waarde voor de department_id-kolom veranderen / instellen op 1
Voeg een nieuw record toe aan de tabel Werknemer:
En laten we nu de department_id voor dit record opvragen en kijken wat de waarde is die wordt ingesteld.
Werk de tabelnaam bij
MySQL ALTER table commando kan ook worden gebruikt om de naam van een bestaande tabel bij te werken. Soms is het nodig om de schemastructuur bij te werken, wat kan betekenen dat de tabelnamen moeten worden gewijzigd / bijgewerkt.
Voorbeeld - We zullen de tabel `medewerker` hernoemen naar` Employee_details`.
Veel Gestelde Vragen
V # 1) Hoe verander ik de tabelstructuur in MySQL?
Antwoord: MySQL biedt het ALTER-commando om de structuur van een bestaande tabel in MySQL te wijzigen. U kunt verschillende bewerkingen uitvoeren met het ALTER-commando, zoals,
- Een kolom toevoegen / verwijderen
- Index of beperking toevoegen / verwijderen
- Een tabel hernoemen
Q # 2) Vergrendelt het ALTER-commando een tafel?
Antwoord: Het kan afhankelijk zijn van de versies - met oudere versies van MySQL Een tabel vergrendelen tijdens de uitvoering van de ALTER-instructie. Over het algemeen zou de vergrendeling plaatsvinden, d.w.z. alle lees- en schrijfbewerkingen tijdens ALTER.
Bijvoorbeeld - Als u een nieuwe kolom toevoegt voor een bestaande tabel, raakt u alle rijen van de tabel waarin de kolom wordt toegevoegd, en als de tabel een aantal records in miljoenen heeft, kan het enige tijd duren voordat de ALTER-bewerking is uitgevoerd. In dit geval zou het vergrendelen van de lees- / schrijfbewerkingen duur zijn, omdat de database niet beschikbaar en ontoegankelijk zou zijn.
V # 3) Kunnen we meer dan één kolom toevoegen aan de ALTER-tabel?
Antwoord: Ja, het ALTER-commando kan worden gebruikt om meerdere kolommen binnen een enkele instructie toe te voegen.
Laten we eens kijken naar een voorbeeld waarin we een tabel Medewerker hebben met de kolommen id, naam en adres, en stel dat we nog twee kolommen willen toevoegen met de naam - hoogste_opleiding (type varchar) en telefoonnummer (type varchar)
Laten we de tabelinformatie eens bekijken
Uitgang:
Veld | Type | Nul | Sleutel | Standaard | Extra |
---|---|---|---|---|---|
naam | varchar (100) | JA | VERENIGDE | NUL | |
ID kaart | int | NIET DOEN | PRI | NUL | |
adres | varchar (100) | JA | NUL | ||
department_id | int | JA | 1 | ||
Hoogste Opleiding | varchar (50) | JA | NUL | ||
telefoonnummer | varchar (20) | JA | NUL |
In de uitvoer hierboven kun je zien dat de kolommen, hoogste_opleiding en telefoonnummer_nummer zijn toegevoegd.
Gevolgtrekking
In deze zelfstudie hebben we geleerd over verschillende toepassingen van de MySQL ALTER Tabel Commando. ALTER is een belangrijk commando omdat het voor meerdere doeleinden kan worden gebruikt om de structuur van een bestaande tabel in MySQL te ALTEREN.
Het kan worden gebruikt voor zaken als - het toevoegen / verwijderen van een kolom, het toevoegen / verwijderen van indexen of beperkingen, en kan zelfs worden gebruikt om de naam van een bestaande tabel te wijzigen.
Iedereen die MySQL leert, moet een diepgaand begrip hebben van de ALTER-tabelopdracht, aangezien deze meestal wordt gebruikt tijdens onderhoudsfasen van databases waar het bestaande tabelschema moet worden gewijzigd.
Aanbevolen literatuur
- MySQL Create Table Tutorial met voorbeelden
- MySQL invoegen in tabel - Verklaring syntaxis en voorbeelden invoegen
- MySQL-gegevenstypen | Wat zijn verschillende gegevenstypen in MySQL
- Basisprincipes van MySQL FOREIGN KEY Beperking met voorbeelden
- MySQL JOIN-zelfstudie: binnen, buiten, kruis, links, rechts en zelf
- MySQL Create Database - Hoe maak je een database aan in MySQL
- Top 40 beste MySQL interviewvragen en antwoorden (2021 vragen)
- Hash-tabel in C ++: programma's om hash-tabel en hash-kaarten te implementeren