mysql alter table how add column table mysql
Spoznajte ukaz MySQL ALTER Table za dodajanje / spuščanje stolpca, indeksa, omejitve, spreminjanje imena tabele itd. S primeri:
MySQL ALTER Ukaz se uporablja za spreminjanje obstoječe tabele z dodajanjem novega stolpca ali odstranjevanjem obstoječega stolpca ali spreminjanjem podatkovnega tipa stolpca.
Preprosto rečeno, ukaz ALTER se uporablja za spreminjanje strukture obstoječe tabele z dodajanjem / odstranjevanjem / posodabljanjem stolpcev, preimenovanjem tabel itd.
Skoraj nemogoče je, da so vse zahteve za določeno shemo na voljo vnaprej, zato je nujno, da obstaja način za posodobitev strukture tabele, kot je potrebno.
Kaj se boste naučili:
MySQL ALTER TABLE
SINTAKSA:
ALTER TABLE table_name (alter_option1, alter_option2...)
Tu je ime_tabele ime tabele, na kateri želimo izvesti dejanje spremembe. Skupaj z znakom lahko določite eno ali več možnosti alter_options ALTER TABLE ukaz.
Poglejmo si različne alter_options, ki jih uporablja MySQL.
Vzorčni podatki in nastavitve tabele
Za razumevanje različnih načinov uporabe STAROST ukaz, bomo uporabili 2 vzorčni tabeli - Zaposleni in oddelek, ki ima strukturo, kot je navedeno spodaj.
V obe tabeli dodajamo tudi nekaj lažnih podatkov.
Med te tabele nismo dodali nobenih omejitev FOREIGN KEY. Naučili se jih bomo dodajati z ukazom ALTER v primerih, prikazanih v spodnjih odsekih, ko bomo razpravljali.
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');
Različni načini uporabe ukaza tabele ALTER
The MySQL ALTER Ukaz se lahko uporablja za več stvari, kot so dodajanje / spuščanje stolpca, dodajanje / spuščanje indeksa ali omejitve in posodobitev same tabele. Poglejmo različne scenarije s pomočjo primerov.
DODAJ STOLPEC
Z zgornjimi vzorčnimi tabelami v tabelo Zaposleni dodajte nov stolpec z imenom ‘department_id’ tipa INT.
ALTER TABLE employee ADD COLUMN department_id INT
SPUSTNA STOLPEC
Podobno kot pri dodajanju novega stolpca, MySQL ALTER z ukazom lahko spustite obstoječi stolpec iz tabele.
Poskusite odstraniti zgoraj dodani stolpec department_id iz tabele Zaposleni.
ALTER TABLE employee DROP COLUMN department_id
Med spuščanjem stolpca morate omeniti samo ime stolpca in ne njegove vrste podatkov.
Če želite preveriti, ali je ukaz ALTER uspel, lahko zaženete ukaz SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Izhod:
Polje | Tip | Nič | Ključ | Privzeto | Extra |
---|---|---|---|---|---|
ime | varchar (100) | DA | NIČ | ||
id | int | DA | NIČ | ||
naslov | varchar (100) | DA | NIČ |
V tabeli ‘Zaposleni’ zdaj ni stolpca »oddelek_id«.
Dodaj / spusti omejitve
Poglejmo zdaj, kako lahko ALTER uporabimo za dodajanje omejitve.
Ukaz ALTER lahko uporabite za dodajanje ali odstranjevanje omejitev za obstoječo tabelo. Oglejmo si primer omejitve ZUNAJ KLJUČ, ki jo je treba dodati med dve tabeli.
Z ukazom ALTER bomo v tabelo Employee dodali FOREIGN KEY CONSTRAINT za tabelo worker_department.
V tabelo Zaposleni dodajte nov stolpec z imenom department_id.
ALTER TABLE employee ADD COLUMN department_id INT
Zdaj dodajte omejitev FOREIGN KEY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Za potrditev te omejitve lahko z ukazom SHOW vidimo definicijo tabele.
SHOW CREATE TABLE employee;
Tabela | Ustvari tabelo |
---|---|
zaposleni | USTVARI TABELO `zaposleni` ( `ime` varchar (100) PRIROČNO NULL, `id` int PRIROČNO NULL, `address` varchar (100) PRIROČNO NULL, `department_id` int PRIROČENO NULL, KLJUČ 'oddelek_id' ('oddelek_id'), OMEJITEV `worker_ibfk_1` TUJI KLJUČ (` department_id`) REFERENCE `worker_department` (` id`) ) MOTOR = PRIROČNA KARTICA InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Ugotovili boste, da je v stolpcu department_id ustvarjena omejitev TUJI KLJUČ.
Poglejmo zdaj, kako lahko z ukazom ALTER odstranimo omejitev FOREIGN KEY, ki smo jo pravkar dodali.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Upoštevajte, da boste morali uporabiti ime ustvarjene omejitve. Torej v zgornjem izhodu ukaza SHOW lahko vidite ime omejitve, ki jo je MySQL ustvaril za omejitev FOREIGN KEY, je ' worker_ibfk_1 '
Zaženite ukaz SHOW, da preverite, ali je omejitev odstranjena, kot je prikazano spodaj:
SHOW CREATE TABLE employee;
Tabela | Ustvari tabelo |
---|---|
zaposleni | USTVARI TABELO `zaposleni` ( `ime` varchar (100) PRIROČNO NULL, `id` int PRIROČNO NULL, `address` varchar (100) PRIROČNO NULL, `department_id` int PRIROČENO NULL, KLJUČ `oddelek_id` (` oddelek_id`) ) MOTOR = PRIROČNA KARTICA InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Dodajanje / spuščanje indeksov
MySQL ALTER ukaz table omogoča tudi ustvarjanje ali spuščanje INDEXES proti tabeli.
Z ukazom ALTER TABLE lahko dodate štiri različne vrste indeksov.
# 1) Dodajte PRIMARNI KLJUČ: Ta ukaz doda indeks PRIMARNI KLJUČ glede na dani stolpec (ali stolpce)
V spodnjem primeru uporabite tabelo Zaposleni in v stolpec ‘Id’ dodajte indeks PRIMARNI KLJUČ.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Dodajte ENOTNO: Doda ali ustvari enolični indeks glede na dane stolpce
Recimo hipotetično, da v tabeli želimo samo enolična imena. V stolpec ‘ime’ v tabeli Zaposleni dodajte UNIKATEN indeks, kot je prikazano spodaj.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Dodaj INDEKS: V vsak stolpec dodajte navaden indeks.
Dodajte normalno kazalo v polje ‘naslov’ v tabeli Zaposleni.
ALTER TABLE employee ADD INDEX (name);
# 4) Dodajte indeks FULLTEXT: To je posebna vrsta indeksa, ki se uporablja za iskanje besedil.
Kazalo FULLTEXT bomo dodali vrednostim stolpca ‘name’ v tabeli Employee.
ALTER TABLE employee ADD FULLTEXT(address);
Za vse zgornje 4 primere lahko zaženemo PRIKAŽI Ustvari tabelo ukaz za podrobnosti o ustvarjenih indeksih.
SHOW CREATE TABLE employee;
Tabela | Ustvari tabelo |
---|---|
zaposleni | USTVARI TABELO `zaposleni` ( `ime` varchar (100) PRIROČNO NULL, `id` int NI NULL, `address` varchar (100) PRIROČNO NULL, `department_id` int PRIROČENO NULL, OSNOVNI KLJUČ ('id'), UNIKATNI KLJUČ 'ime' ('ime'), KLJUČ 'ime_2' ('ime'), FULLTEXT KEY 'naslov' ('naslov') ) MOTOR = PRIROČNA KARTICA InnoDB = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
V zgornjem izhodu boste opazili, da so bili vsi indeksi ustvarjeni glede na vrednost v stolpcu create_table.
Podobno kot pri ustvarjanju indeksov lahko tudi ukaz ALTER spustite obstoječe indekse iz tabele.
Primer:
ALTER TABLE employee DROP INDEX address;
Zgornji ukaz bo POPUSTIL Indeks FULLTEXT, ki smo ga dodali za naslovno polje.
Opazite ime ‘Naslov’. To se mora ujemati z imenom indeksa v izhodni datoteki PRIKAŽI Ustvari tabelo ukaz.
Spremeni privzeto vrednost stolpca
ALTER TABLE ukaz lahko uporabite tudi za NASTAVITEV / Spreminjanje vrednosti PRIROČNO za obstoječi stolpec.
katera plast modela osi obravnava šifriranje podatkov?
Oglejmo si primer, kjer bomo privzeto vrednost stolpca_id spremenili v '1'. S tem bi vsi novi vstavki v to tabelo spremenili / nastavili vrednost za stolpec department_id na 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
V tabelo Zaposleni dodajte nov zapis:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
In zdaj poizvedimo oddelek_id za ta zapis in poglejmo, kakšna vrednost je nastavljena.
SELECT department_id FROM employee where id=11 //Output department_id 1
Posodobi ime tabele
MySQL ALTER Tabela lahko uporabite tudi za posodobitev imena obstoječe tabele. Včasih je treba posodobiti strukturo sheme, kar lahko vključuje spreminjanje / posodabljanje imen tabel.
Primer - Tabelo 'zaposleni' bomo preimenovali v 'Podrobnosti o zaposlenem'.
ALTER TABLE table_name RENAME TO new_table_name;
Pogosto zastavljena vprašanja
V # 1) Kako v MySQL spremenim strukturo tabel?
Odgovor: MySQL ponuja ukaz ALTER za spremembo strukture obstoječe tabele v MySQL. Z ukazom ALTER lahko izvajate različne operacije, kot so
- Dodajanje / spuščanje stolpca
- Dodajanje / odstranjevanje indeksa ali omejitve
- Preimenovanje tabele
V # 2) Ali ukaz ALTER zaklene mizo?
Odgovor: Morda je odvisno od različic - pri starejših različicah MySQL zaklepanje tabele med izvajanjem stavka ALTER. Na splošno bi se zaklepanje zgodilo, to je vsako branje in pisanje med ALTER.
Na primer - Če dodate nov stolpec za obstoječo tabelo, se dotaknete vseh vrstic tabele, v katero dodajate stolpec, in če ima tabela število zapisov v milijonih, lahko traja nekaj časa, da se izvede operacija ALTER. V tem primeru bi bilo zaklepanje pri branju / pisanju drago, saj bi bila baza podatkov nedelujoča in nedostopna.
V # 3) Ali lahko v tabelo ALTER dodamo več kot en stolpec?
Odgovor: Da, z ukazom ALTER lahko v enem stavku dodate več stolpcev.
Oglejmo si primer, kjer imamo tabelo Zaposleni s stolpci id, imenom in naslovom in predpostavimo, da želimo dodati še dva stolpca z imenom - najvišja_obrazba (vrsta varchar) in telefonska številka (vrsta varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Oglejmo si informacije v tabeli
SHOW COLUMNS FROM employee;
Izhod:
Polje | Tip | Nič | Ključ | Privzeto | Extra |
---|---|---|---|---|---|
ime | varchar (100) | DA | ZDRUŽENO | NIČ | |
id | int | NE | PRI | NIČ | |
naslov | varchar (100) | DA | NIČ | ||
oddelek_id | int | DA | 1. | ||
najvišja_izobrazba | varchar (50) | DA | NIČ | ||
telefonska številka | varchar (20) | DA | NIČ |
V zgornjem izhodu lahko vidite stolpce, dodana sta najvišja_obrazba in telefonska številka.
Zaključek
V tej vadnici smo spoznali različne načine uporabe MySQL ALTER Ukaz tabele. ALTER je pomemben ukaz, saj ga lahko uporabimo za več namenov, da ALTERI strukturo obstoječe tabele v MySQL.
Uporablja se lahko za stvari, kot so dodajanje / odstranjevanje stolpca, dodajanje / spuščanje indeksov ali omejitev, lahko pa se uporablja tudi za preimenovanje obstoječe tabele.
Kdor se uči MySQL, bi moral poglobljeno razumeti ukaz tabele ALTER, saj se ta večinoma uporablja med fazami vzdrževanja baz podatkov, kjer je treba spremeniti obstoječo shemo tabele.
Priporočeno branje
- MySQL Vodič za ustvarjanje tabel s primeri
- MySQL Vstavi v tabelo - Vstavi sintakso in primere izjave
- Vrste podatkov MySQL | Katere so različne vrste podatkov v MySQL
- Osnove omejitve tujih ključev MySQL s primeri
- Vadnica za MySQL JOIN: Notranja, zunanja, križna, leva, desna in lastna
- MySQL Create Database - Kako ustvariti bazo podatkov v MySQL
- 40 najboljših vprašanj in odgovorov za intervju z MySQL (2021 vprašanj)
- Hash Tabela v C ++: Programi za izvajanje Hash Tabele in Hash Maps