mysql alter table how add column table mysql
Další informace o příkazu MySQL ALTER Table pro přidání / zrušení sloupce, indexu, omezení, změny názvu tabulky atd. S příklady:
MySQL ALTER příkaz se používá k úpravě existující tabulky přidáním nového sloupce nebo odebráním existujícího sloupce nebo změnou datového typu sloupce.
Jednoduše řečeno, příkaz ALTER se používá k úpravě struktury existující tabulky přidáním / odebráním / aktualizací sloupců, přejmenováním tabulek atd.
Je téměř nemožné, aby všechny požadavky na dané schéma byly k dispozici předem, a proto je nezbytně nutné, aby existoval způsob, jak podle potřeby aktualizovat strukturu tabulky.
Co se naučíte:
MySQL ALTER TABULKA
SYNTAX:
ALTER TABLE table_name (alter_option1, alter_option2...)
Zde table_name je název tabulky, ve které chceme provést akci alter. Spolu s. Lze zadat jednu nebo více alter_options ZMĚNIT TABULKU příkaz.
Podívejme se na různé nejčastěji používané alter_option poskytované MySQL.
Ukázková data a nastavení tabulky
Pro účely pochopení různých způsobů použití STÁŘÍ použijeme 2 ukázkové tabulky - Zaměstnanec a Oddělení se strukturou uvedenou níže.
Přidáváme také fiktivní data do obou tabulek.
Mezi tyto tabulky jsme nepřidali žádná omezení FOREIGN KEY. Naučíme se je přidávat pomocí příkazu ALTER v příkladech uvedených v následujících částech, jak budeme diskutovat.
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');
Různé způsoby použití příkazu ALTER Table
The MySQL ALTER Příkaz lze použít pro více věcí, jako je přidání / zrušení sloupce, přidání / zrušení indexu nebo omezení a aktualizace samotné tabulky. Podívejme se na různé scénáře pomocí příkladů.
PŘIDAT SLOUPEC
S výše uvedenými ukázkovými tabulkami přidejme do tabulky Zaměstnanec nový sloupec s názvem „department_id“ typu INT.
ALTER TABLE employee ADD COLUMN department_id INT
DROP COLUMN
Podobně jako přidání nového sloupce, MySQL ALTER Příkaz lze použít k přetažení existujícího sloupce z tabulky.
Pokuste se odebrat výše přidaný sloupec department_id z tabulky Zaměstnanec.
ALTER TABLE employee DROP COLUMN department_id
Vezměte prosím na vědomí, že při vypouštění Sloupce musíte uvést pouze název sloupce, nikoli jeho datový typ.
Chcete-li ověřit, zda byl příkaz ALTER úspěšný, můžete spustit příkaz ZOBRAZIT Sloupce.
SHOW COLUMNS FROM employee;
Výstup:
Pole | Typ | Nula | Klíč | Výchozí | Další |
---|---|---|---|---|---|
název | varchar (100) | ANO | NULA | ||
id | int | ANO | NULA | ||
adresa | varchar (100) | ANO | NULA |
V tabulce „Zaměstnanec“ nyní vidíte sloupec department_id.
Přidat / Zrušit omezení
Podívejme se nyní, jak lze ALTER použít k přidání omezení.
Příkaz ALTER lze použít k přidání nebo odebrání omezení pro existující tabulku. Podívejme se na příklad omezení FOREIGN KEY, které je třeba přidat mezi 2 tabulky.
Příkaz ALTER použijeme k přidání CONSTRAINT ZAHRANIČNÍHO KLÍČE do tabulky Zaměstnanec pro tabulku employee_department.
Přidejte nový sloupec s názvem department_id v tabulce Zaměstnanec.
ALTER TABLE employee ADD COLUMN department_id INT
Nyní přidejte omezení FOREIGN KEY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
K ověření tohoto omezení můžeme použít příkaz SHOW k zobrazení definice tabulky.
SHOW CREATE TABLE employee;
Stůl | Vytvořit tabulku |
---|---|
zaměstnanec | VYTVOŘIT TABULKU `zaměstnanec` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KLÍČ `department_id` (` department_id`), CONSTRAINT `employee_ibfk_1` ZAHRANIČNÍ KLÍČ (` department_id`) REFERENCE `employee_department` (` id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Zjistíte, že ve sloupci department_id bylo vytvořeno omezení FOREIGN KEY.
Podívejme se, jak můžeme pomocí příkazu ALTER odebrat omezení FOREIGN KEY, které jsme právě přidali.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Pamatujte, že budete muset použít název vytvořeného omezení. Takže ve výše uvedeném výstupu příkazu SHOW vidíte název omezení, které MySQL vytvořilo pro omezení FOREIGN KEY, je „ employee_ibfk_1 “
Spusťte příkaz ZOBRAZIT a zkontrolujte, zda je omezení odstraněno, jak je znázorněno níže:
SHOW CREATE TABLE employee;
Stůl | Vytvořit tabulku |
---|---|
zaměstnanec | VYTVOŘIT TABULKU `zaměstnanec` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KEY `department_id` (` department_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Přidat / Pustit indexy
MySQL ALTER Příkaz table vám také umožňuje vytvořit nebo umístit INDEXY proti tabulce.
Pomocí příkazu ALTER TABLE lze přidat čtyři různé typy indexů.
# 1) Přidat PRIMÁRNÍ KLÍČ: Tento příkaz přidá index PRIMARY KEY proti danému sloupci (nebo sloupcům)
V níže uvedeném příkladu použijte tabulku Zaměstnanec a přidejte index PRIMARY KEY do sloupce Id.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Přidat JEDINEČNÉ: Přidá nebo vytvoří jedinečný index proti daným sloupcům
Předpokládejme, že hypoteticky chceme v tabulce pouze jedinečná jména. Přidejte UNIQUE index do sloupce „name“ v tabulce Zaměstnanec, jak je uvedeno níže.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Přidat INDEX: Přidejte běžný index do libovolného sloupce.
Přidejte normální index do pole „adresa“ v tabulce Zaměstnanec.
ALTER TABLE employee ADD INDEX (name);
# 4) Přidat index FULLTEXT: Jedná se o speciální typ rejstříku, který se používá pro účely vyhledávání textu.
Přidáme index FULLTEXT na hodnoty sloupce „name“ v tabulce Zaměstnanec.
ALTER TABLE employee ADD FULLTEXT(address);
U všech výše uvedených 4 příkladů můžeme spustit ZOBRAZIT VYTVOŘIT TABULKU příkaz k získání podrobností o vytvořených indexech.
SHOW CREATE TABLE employee;
Stůl | Vytvořit tabulku |
---|---|
zaměstnanec | VYTVOŘIT TABULKU `zaměstnanec` ( `name` varchar (100) DEFAULT NULL, `id` int NOT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, PRIMARY KEY (`id`), JEDINEČNÝ KLÍČ `name` (` name`), KLÍČ `name_2` (` name`), KLÍČ FULLTEXT `adresa` (` adresa`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Ve výše uvedeném výstupu uvidíte, že všechny indexy byly vytvořeny podle hodnoty ve sloupci create_table.
Podobně jako při vytváření indexů lze příkaz ALTER také použít k vyřazení existujících indexů z tabulky.
Příklad:
ALTER TABLE employee DROP INDEX address;
Výše uvedený příkaz DROP FULLTEXT Index, který jsme přidali pro pole adresy.
Všimněte si jména 'adresa'. To by mělo odpovídat názvu indexu ve výstupu ZOBRAZIT VYTVOŘIT TABULKU příkaz.
Změnit výchozí hodnotu sloupce
ZMĚNIT TABULKU Příkaz lze také použít k NASTAVENÍ / Změna VÝCHOZÍ hodnoty pro existující sloupec.
otázky týkající se testování softwaru s odpověďmi
Podívejme se na příklad, kde změníme výchozí hodnotu sloupce department_id na „1“. S tímto by jakékoli nové vložky do této tabulky změnily / nastavily hodnotu pro sloupec department_id na 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Přidejte nový záznam do tabulky Zaměstnanec:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
A teď se zeptejme na department_id tohoto záznamu a uvidíme, jaká je nastavená hodnota.
SELECT department_id FROM employee where id=11 //Output department_id 1
Aktualizovat název tabulky
MySQL ALTER Příkaz table lze také použít k aktualizaci názvu existující tabulky. Někdy je nutné aktualizovat strukturu schématu, což může zahrnovat změnu / aktualizaci názvů tabulek.
Příklad - Tabulku `zaměstnanec` přejmenujeme na` Employee_details`.
ALTER TABLE table_name RENAME TO new_table_name;
Často kladené otázky
Otázka č. 1) Jak mohu změnit strukturu tabulky v MySQL?
Odpovědět: MySQL poskytuje příkaz ALTER ke změně struktury existující tabulky v MySQL. Pomocí příkazu ALTER můžete provádět různé operace, například
- Přidání / zrušení sloupce
- Přidání / odebrání indexu nebo omezení
- Přejmenování tabulky
Otázka 2) Zamkne příkaz ALTER stůl?
Odpovědět: Může to záviset na verzích - se staršími verzemi MySQL Uzamknutí tabulky během provádění příkazu ALTER. Obecně by došlo k uzamčení, tj. K jakémukoli čtení a zápisu během ALTER.
Například - Přidání nového sloupce pro existující tabulku by se dotklo všech řádků tabulky, do které se přidává sloupec, a pokud má tabulka počet záznamů v milionech, provedení operace ALTER může nějakou dobu trvat. V tomto případě by uzamčení, které se děje při čtení / zápisu, bylo nákladné, protože databáze by byla nefunkční a nepřístupná.
Otázka č. 3) Můžeme do tabulky ALTER přidat více než jeden sloupec?
Odpovědět: Ano, příkaz ALTER lze použít k přidání více sloupců v rámci jednoho příkazu.
Podívejme se na příklad, kde máme tabulku Zaměstnanec se sloupci id, jménem a adresou a předpokládejme, že chceme přidat další 2 sloupce s názvem - nejvyšší_vzdělání (typ varchar) a telefonní číslo (typ varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Pojďme se podívat na informace o tabulce
SHOW COLUMNS FROM employee;
Výstup:
Pole | Typ | Nula | Klíč | Výchozí | Další |
---|---|---|---|---|---|
název | varchar (100) | ANO | SJEDNOCENÝ | NULA | |
id | int | NEDĚLEJ | PRI | NULA | |
adresa | varchar (100) | ANO | NULA | ||
oddělení_id | int | ANO | 1 | ||
nejvyšší vzdělání | varchar (50) | ANO | NULA | ||
telefonní číslo | varchar (20) | ANO | NULA |
Ve výstupu výše vidíte sloupce, byly přidány nejvyšší_vzdělávání a telefonní_číslo.
Závěr
V tomto tutoriálu jsme se dozvěděli o různých způsobech použití MySQL ALTER Příkaz tabulky. ALTER je důležitý příkaz, protože jej lze použít k různým účelům ke změně struktury existující tabulky v MySQL.
Lze jej použít například pro - přidání / odebrání sloupce, přidání / zrušení indexů nebo omezení a lze jej použít i k přejmenování existující tabulky.
Každý, kdo se učí MySQL, by měl důkladně porozumět příkazu ALTER table, protože se většinou používá během fází údržby databází, kde je nutné změnit stávající schéma tabulky.
Doporučené čtení
- MySQL Vytvoření výukové tabulky s příklady
- MySQL Vložit do tabulky - Vložit syntaxi výpisu a příklady
- MySQL datové typy | Jaké jsou různé datové typy v MySQL
- Základy omezení MySQL FOREIGN KEY s příklady
- Výukový program MySQL JOIN: Vnitřní, Vnější, Křížový, Levý, Pravý a Vlastní
- Vytvořit databázi MySQL - Jak vytvořit databázi v MySQL
- Top 40 nejlepších otázek a odpovědí na rozhovor s MySQL (2021 otázek)
- Hash tabulka v C ++: Programy pro implementaci Hash tabulky a Hash map