mysql alter table how add column table mysql
Dozviete sa viac o príkaze MySQL ALTER Table na pridanie / zrušenie stĺpca, index, obmedzenie, zmena názvu tabuľky atď. S príkladmi:
MySQL ALTER príkaz sa používa na úpravu existujúcej tabuľky pridaním nového stĺpca alebo odstránením existujúceho stĺpca alebo zmenou dátového typu stĺpca.
Jednoducho povedané, príkaz ALTER sa používa na úpravu štruktúry existujúcej tabuľky pridaním / odstránením / aktualizáciou stĺpcov, premenovaním tabuliek atď.
Je takmer nemožné, aby boli vopred k dispozícii všetky požiadavky na danú schému, a preto je nevyhnutné, aby existoval spôsob, ako podľa potreby aktualizovať štruktúru tabuľky.
Čo sa dozviete:
MySQL ALTER TABUĽKA
SYNTAX:
ALTER TABLE table_name (alter_option1, alter_option2...)
Tu table_name je názov tabuľky, v ktorej chceme vykonať akciu alter. Spolu s. Môžete určiť jednu alebo viac alter_options ZMENIŤ TABUĽKU príkaz.
Pozrime sa na rôzne väčšinou používané alter_option poskytované MySQL.
Ukážka údajov a nastavenie tabuľky
Na účely pochopenia rôznych spôsobov použitia VEK príkaz použijeme 2 vzorové tabuľky - Zamestnanec a Oddelenie so štruktúrou uvedenou nižšie.
Do obidvoch tabuliek tiež pridávame niektoré fiktívne údaje.
Medzi tieto tabuľky sme nepridali žiadne obmedzenia CUDZÍCH KLÍČOV. Naučíme sa ich pridávať pomocou príkazu ALTER v príkladoch, ktoré sú uvedené v nasledujúcich častiach, keď o nich diskutujeme.
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ôzne spôsoby použitia príkazu ALTER Table
The MySQL ALTER Príkaz je možné použiť na viac vecí, ako je pridanie / pustenie stĺpca, pridanie / vypustenie indexu alebo obmedzenia a aktualizácia samotnej tabuľky. Pozrime sa na rôzne scenáre pomocou príkladov.
PRIDAŤ STĹPEC
S vyššie uvedenými vzorovými tabuľkami pridajme do tabuľky Zamestnanec nový stĺpec s názvom ‘department_id‘ typu INT.
ALTER TABLE employee ADD COLUMN department_id INT
DROP COLUMN
Podobne ako pri pridávaní nového stĺpca, aj MySQL ALTER príkazom je možné vypustiť existujúci stĺpec z tabuľky.
Pokúste sa odstrániť vyššie pridaný stĺpec department_id z tabuľky Zamestnanec.
ALTER TABLE employee DROP COLUMN department_id
Upozorňujeme, že pri vypúšťaní STĹPCA musíte uviesť iba názov stĺpca, a nie jeho údajový typ.
Ak chcete overiť, či bol príkaz ALTER úspešný, môžete spustiť príkaz SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Výkon:
Lúka | Typ | Nulový | Kľúč | Predvolené | Extra |
---|---|---|---|---|---|
názov | varchar (100) | ÁNO | NULOVÝ | ||
id | int | ÁNO | NULOVÝ | ||
adresa | varchar (100) | ÁNO | NULOVÝ |
V tabuľke „Zamestnanec“ teraz nie je žiadny stĺpec department_id.
Pridať / pustiť obmedzenia
Pozrime sa teraz, ako je možné použiť ALTER na pridanie obmedzenia.
Príkaz ALTER možno použiť na pridanie alebo odstránenie obmedzení pre existujúcu tabuľku. Pozrime sa na príklad obmedzenia CUDZIEHO KĽÚČA, ktoré je potrebné pridať medzi 2 tabuľky.
Príkazom ALTER pridáme do tabuľky Employee pre tabuľku employee_department FORSTIGN KEY CONSTRAINT.
Pridajte do tabuľky Zamestnanec nový stĺpec s názvom department_id.
ALTER TABLE employee ADD COLUMN department_id INT
Teraz pridajte obmedzenie ZAHRANIČNÝ KĽÚČ.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Na overenie tohto obmedzenia môžeme pomocou príkazu SHOW vidieť definíciu tabuľky.
SHOW CREATE TABLE employee;
Tabuľka | Vytvorte tabuľku |
---|---|
zamestnanec | VYTVORIŤ TABUĽKU `zamestnanec` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KĽÚČ `department_id` (` department_id`), OBMEDZENIE `employee_ibfk_1` ZAHRANIČNÝ KĽÚČ (` department_id`) REFERENCIE `employee_department` (` id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Zistíte, že v stĺpci department_id je vytvorené obmedzenie CUDZÍ KLÍČ.
Pozrime sa teraz, ako môžeme pomocou príkazu ALTER odstrániť obmedzenie FOREIGN KEY, ktoré sme práve pridali.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Upozorňujeme, že budete musieť použiť názov vytvoreného obmedzenia. Takže vo vyššie uvedenom výstupe príkazu SHOW môžete vidieť názov obmedzenia, ktoré vytvorila MySQL pre obmedzenie FOREIGN KEY, „ employee_ibfk_1 ‘
Spustením príkazu SHOW zistíte, či je obmedzenie odstránené, ako je uvedené nižšie:
SHOW CREATE TABLE employee;
Tabuľka | Vytvorte tabuľku |
---|---|
zamestnanec | VYTVORIŤ TABUĽKU `zamestnanec` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KĽÚČ `department_id` (` department_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Pridať / pustiť indexy
MySQL ALTER Príkaz table vám tiež umožňuje vytvoriť alebo pustiť INDEXY oproti tabuľke.
Existujú štyri rôzne typy indexov, ktoré je možné pridať pomocou príkazu ALTER TABLE.
# 1) Pridajte PRIMÁRNY KLÍČ: Tento príkaz pridá index PRIMARY KEY oproti danému stĺpcu (alebo stĺpcom)
V nasledujúcom príklade použite tabuľku Zamestnanci a do stĺpca „ID“ pridajte index PRIMARY KEY.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Pridať JEDINEČNÉ: Pridá alebo vytvorí jedinečný index oproti daným stĺpcom
Predpokladajme, že hypoteticky chceme v tabuľke iba jedinečné mená. Pridajte UNIKÁTNY index do stĺpca „meno“ v tabuľke Zamestnanci, ako je uvedené nižšie.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Pridajte INDEX: Pridajte bežný index do ľubovoľného stĺpca.
Pridajte normálny index do poľa „adresa“ v tabuľke Zamestnanci.
ALTER TABLE employee ADD INDEX (name);
# 4) Pridajte index FULLTEXT: Toto je špeciálny typ indexu, ktorý sa používa na účely hľadania textu.
Pridáme index FULLTEXT k hodnotám stĺpca „name“ v tabuľke Employee.
ALTER TABLE employee ADD FULLTEXT(address);
Pre všetky vyššie uvedené 4 príklady môžeme spustiť ZOBRAZIŤ VYTVORIŤ TABUĽKU príkaz na získanie podrobností o vytvorených indexoch.
SHOW CREATE TABLE employee;
Tabuľka | Vytvorte tabuľku |
---|---|
zamestnanec | VYTVORIŤ TABUĽKU `zamestnanec` ( `name` varchar (100) DEFAULT NULL, `id` int NIE JE NULL, `address` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, PRIMÁRNY KLÍČ (`id`), UNIKÁTNY KLÍČ `name` (` meno`), KĽÚČ `name_2` (` meno`), KĽÚČ FULLTEXT `adresa` (` adresa`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Vo vyššie uvedenom výstupe uvidíte, že všetky indexy boli vytvorené podľa hodnoty v stĺpci create_table.
Podobne ako pri vytváraní indexov, príkaz ALTER možno použiť aj na vypustenie existujúcich indexov z tabuľky.
Príklad:
ALTER TABLE employee DROP INDEX address;
Vyššie uvedený príkaz ZNÍŽI FULLTEXTový index, ktorý sme pridali do poľa adresy.
Všimnite si meno „Adresa“. To by sa malo zhodovať s indexovým názvom na výstupe súboru ZOBRAZIŤ VYTVORIŤ TABUĽKU príkaz.
Zmeniť predvolenú hodnotu stĺpca
ZMENIŤ TABUĽKU Príkaz možno tiež použiť na NASTAVENIE / ZMENU hodnoty VÝCHODISKA pre existujúci stĺpec.
ako napísať testovacie prípady z požiadaviek
Pozrime sa na príklad, kde zmeníme predvolenú hodnotu stĺpca department_id na „1“. S týmto by akékoľvek nové vložky do tejto tabuľky zmenili / nastavili hodnotu pre stĺpec department_id na 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Pridajte nový záznam do tabuľky Zamestnanci:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
A teraz sa poďme opýtať na department_id tohto záznamu a uvidíme, aká je nastavená hodnota.
SELECT department_id FROM employee where id=11 //Output department_id 1
Aktualizovať názov tabuľky
MySQL ALTER Príkaz table možno použiť aj na aktualizáciu názvu existujúcej tabuľky. Občas je potrebné aktualizovať štruktúru schémy, čo môže vyžadovať zmenu / aktualizáciu názvov tabuliek.
Príklad - Tabuľku `zamestnanec` premenujeme na` Employe_details`.
ALTER TABLE table_name RENAME TO new_table_name;
často kladené otázky
Otázka č. 1) Ako môžem zmeniť štruktúru tabuľky v MySQL?
Odpoveď: MySQL poskytuje príkaz ALTER na zmenu štruktúry existujúcej tabuľky v MySQL. Pomocou príkazu ALTER môžete vykonávať rôzne operácie, napríklad
- Pridanie / zrušenie stĺpca
- Pridanie / odstránenie indexu alebo obmedzenia
- Premenovanie tabuľky
Otázka 2) Zamkne príkaz ALTER stôl?
Odpoveď: Môže to závisieť od verzií - so staršími verziami MySQL Uzamknutie tabuľky počas vykonávania príkazu ALTER. Všeobecne by došlo k uzamknutiu, t. J. K akémukoľvek čítaniu a zápisu počas zmeny.
Napríklad - Pridanie nového stĺpca pre existujúcu tabuľku by sa dotklo všetkých riadkov tabuľky, do ktorých sa pridáva stĺpec, a keď má tabuľka počet záznamov v miliónoch, vykonanie operácie ALTER môže chvíľu trvať. V takom prípade by uzamknutie prebiehajúce pri čítaní / zápise bolo nákladné, pretože databáza by bola nefunkčná a neprístupná.
Otázka č. 3) Môžeme do tabuľky ALTER pridať viac ako jeden stĺpec?
Odpoveď: Áno, príkaz ALTER možno použiť na pridanie viacerých stĺpcov do jedného príkazu.
Pozrime sa na príklad, kde máme tabuľku Zamestnanec so stĺpcami id, menom a adresou a predpokladajme, že chceme pridať ďalšie 2 stĺpce s názvom - nejvyšší_výuka (typ varchar) a telefónne_číslo (typ varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Pozrime sa na tabuľkové informácie
SHOW COLUMNS FROM employee;
Výkon:
Lúka | Typ | Nulový | Kľúč | Predvolené | Extra |
---|---|---|---|---|---|
názov | varchar (100) | ÁNO | SPOJENÉ | NULOVÝ | |
id | int | NEROBTE | PRI | NULOVÝ | |
adresa | varchar (100) | ÁNO | NULOVÝ | ||
department_id | int | ÁNO | 1 | ||
najvyššie_vzdelávanie | varchar (50) | ÁNO | NULOVÝ | ||
telefónne číslo | varchar (20) | ÁNO | NULOVÝ |
Vo výstupe vyššie vidíte stĺpce, ktoré majú pridané najvyššie vzdelanie a telefónne číslo.
Záver
V tomto výučbe sme sa dozvedeli o rôznych použitiach produktu MySQL ALTER Príkaz tabuľky. ALTER je dôležitý príkaz, pretože ho možno použiť na rôzne účely na zmenu štruktúry existujúcej tabuľky v MySQL.
Môže sa použiť napríklad na - pridanie / odstránenie stĺpca, pridanie / zrušenie indexov alebo obmedzení a dá sa použiť aj na premenovanie existujúcej tabuľky.
Každý, kto sa učí MySQL, by mal mať dôkladné znalosti o príkaze ALTER table, pretože sa väčšinou používa vo fázach údržby databáz, kde je potrebné zmeniť existujúcu schému tabuľky.
Odporúčané čítanie
- MySQL Vytvorenie výučby tabuľky s príkladmi
- MySQL Vložiť do tabuľky - Vložiť syntax príkazov a príklady
- Dátové typy MySQL Aké sú rôzne typy údajov v MySQL
- Základy obmedzenia MySQL FOREIGN KEY s príkladmi
- Výukový program MySQL JOIN: Vnútorný, Vonkajší, Krížový, Ľavý, Pravý a Ja
- Vytvorenie databázy MySQL - Ako vytvoriť databázu v MySQL
- Top 40 najlepších otázok a odpovedí na rozhovor s MySQL (2021 otázok)
- Tabuľka hash v C ++: Programy na implementáciu tabuľky hash a máp Hash