mysql alter table how add column table mysql
Saznajte o naredbi MySQL ALTER Table za dodavanje / ispuštanje stupca, indeksa, ograničenja, promjene naziva tablice itd. Sa primjerima:
MySQL ALTER naredba se koristi za izmjenu postojeće tablice dodavanjem novog stupca ili uklanjanjem postojećeg stupca ili promjenom vrste podataka stupca.
Jednostavno rečeno, naredba ALTER koristi se za modificiranje strukture postojeće tablice dodavanjem / uklanjanjem / ažuriranjem stupaca, preimenovanjem tablica itd.
Gotovo je nemoguće da su svi zahtjevi za određenu shemu dostupni unaprijed, stoga je neophodno da postoji način za ažuriranje strukture tablice po potrebi.
Što ćete naučiti:
MySQL ALTER TABLE
SINTAKSA:
ALTER TABLE table_name (alter_option1, alter_option2...)
Ovdje je ime_tablice ime tablice na kojoj želimo izvršiti izmjenu. Jedan ili više alter_options mogu se navesti zajedno s ALTER TABELA naredba.
Pogledajmo različite najčešće korištene alter_options koje nudi MySQL.
Uzorak podataka i postavljanje tablice
U svrhu razumijevanja različitih načina korištenja DOB naredbe, koristit ćemo 2 uzorka tablica - zaposlenika i odjela koji imaju strukturu kako je spomenuto u nastavku.
Također dodajemo neke lažne podatke u obje tablice.
Među ove tablice nismo dodali nijedno ograničenje STRANIH KLJUČA. Naučit ćemo ih dodavati pomoću naredbe ALTER u primjerima prikazanim u donjim odjeljcima dok raspravljamo.
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čiti načini korištenja naredbe ALTER tablice
The MySQL ALTER Naredba se može koristiti za više stvari poput dodavanja / ispuštanja stupca, dodavanja / ispuštanja indeksa ili ograničenja i ažuriranja same tablice. Pogledajmo različite scenarije uz pomoć primjera.
DODAJ STUPAC
Uz gornje uzorke tablica, dodajte novi stupac pod nazivom ‘odjel_id’ tipa INT u tablicu Zaposlenik.
ALTER TABLE employee ADD COLUMN department_id INT
KAPA ZA KAPANJE
Slično dodavanju novog stupca, MySQL ALTER naredba se može koristiti za ispuštanje postojećeg stupca iz tablice.
Pokušajte ukloniti gore dodani stupac department_id iz tablice Employee.
ALTER TABLE employee DROP COLUMN department_id
Imajte na umu da, dok ispuštate KOLONU, samo trebate spomenuti naziv stupca, a ne njegovu vrstu podataka.
Da biste provjerili je li naredba ALTER uspjela, možete pokrenuti naredbu SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Izlaz:
Polje | Tip | Nula | Ključ | Zadano | Ekstra |
---|---|---|---|---|---|
Ime | varchar (100) | DA | NULL | ||
iskaznica | int | DA | NULL | ||
adresa | varchar (100) | DA | NULL |
U tablici 'Zaposlenik' sada nema stupca odjel_id.
Dodavanje / ispuštanje ograničenja
Pogledajmo sada kako se ALTER može koristiti za dodavanje ograničenja.
Naredba ALTER može se koristiti za dodavanje ili uklanjanje ograničenja za postojeću tablicu. Pogledajmo primjer ograničenja STRANOG KLJUČA koje treba dodati između 2 tablice.
Upotrijebit ćemo naredbu ALTER za dodavanje STRANIH KLJUČNIH OGRANIČENJA u tablicu Employee za tablicu worker_department.
Dodajte novi stupac pod nazivom department_id u tablicu zaposlenika.
ALTER TABLE employee ADD COLUMN department_id INT
Sada dodajte ograničenje FOREIGN KEY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Da bismo provjerili ovo ograničenje, možemo upotrijebiti naredbu SHOW da bismo vidjeli definiciju tablice.
SHOW CREATE TABLE employee;
Stol | Stvori tablicu |
---|---|
zaposlenik | STVORI TABELU `zaposlenik` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `adresa` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KLJUČ `ID_ odjeljenja` (` ID_ odjeljenja`), OGRANIČENJE `zaposlenik_ibfk_1` STRANI KLJUČ (` odjel_id`) LITERATURA `zaposlenik_ odjel` (` id`) ) MOTOR = INODB ZADATAK KARSETET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Otkrićete da postoji ograničenje STRANIH KLJUČA stvoreno u stupcu id_id.
Pogledajmo sada kako pomoću naredbe ALTER možemo ukloniti ograničenje FOREIGN KEY koje smo upravo dodali.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Imajte na umu da ćete morati koristiti naziv ograničenja koje je stvoreno. Dakle, u gornjem izlazu naredbe SHOW možete vidjeti ime ograničenja koje je MySQL stvorio za ograničenje FOREIGN KEY je ' zaposlenik_ibfk_1 ’
Pokrenite naredbu SHOW da biste vidjeli je li ograničenje uklonjeno kako je prikazano dolje:
SHOW CREATE TABLE employee;
Stol | Stvori tablicu |
---|---|
zaposlenik | STVORI TABELU `zaposlenik` ( `name` varchar (100) DEFAULT NULL, `id` int DEFAULT NULL, `adresa` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, KLJUČ `ID_ odjeljenja` (` ID_ odjeljenja`) ) MOTOR = INODB ZADATAK KARSETET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
Dodavanje / ispuštanje indeksa
MySQL ALTER naredba table također vam omogućuje stvaranje ili ispuštanje INDEKSA prema tablici.
Mogu biti četiri različite vrste indeksa koje se mogu dodati pomoću naredbe ALTER TABLE.
# 1) Dodajte PRIMARNI KLJUČ: Ova naredba dodaje OSNOVNI KLJUČ indeks prema danom stupcu (ili stupcima)
U donjem primjeru koristite tablicu zaposlenika i dodajte PRIMARNI KLJUČNI indeks u stupac ‘Id’.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Dodajte JEDINSTVENO: Dodaje ili stvara jedinstveni indeks prema zadanim stupcima
Pretpostavimo hipotetski da samo želimo jedinstvena imena u tablici. Dodajte UNIQUE indeks u stupac ‘ime’ u tablici zaposlenika kako je prikazano u nastavku.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Dodajte INDEKS: Dodajte obični indeks prema bilo kojem stupcu.
Dodajte normalan indeks u polje ‘adresa’ u tablici zaposlenika.
ALTER TABLE employee ADD INDEX (name);
# 4) Dodajte FULLTEXT Index: Ovo je posebna vrsta indeksa koja se koristi za pretraživanje teksta.
Dodati ćemo FULLTEXT indeks na vrijednosti stupca ‘ime’ u tablici zaposlenika.
ALTER TABLE employee ADD FULLTEXT(address);
Za sva gore navedena 4 primjera možemo pokrenuti POKAŽI STVARANJE STOLA naredba za dobivanje detalja o kreiranim indeksima.
SHOW CREATE TABLE employee;
Stol | Stvori tablicu |
---|---|
zaposlenik | STVORI TABELU `zaposlenik` ( `name` varchar (100) DEFAULT NULL, `id` int NIJE NULL, `adresa` varchar (100) DEFAULT NULL, `department_id` int DEFAULT NULL, OSNOVNI KLJUČ (`id`), JEDINSTVENI KLJUČ `name` (` ime`), KLJUČ `name_2` (` ime`), FULLTEXT KEY `adresa` (` adresa`) ) MOTOR = INODB ZADATAK KARSETET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci |
U gornjem izlazu primijetit ćete da su svi indeksi stvoreni prema vrijednosti u stupcu create_table.
Slično stvaranju indeksa, naredba ALTER također se može koristiti za ispuštanje postojećih indeksa iz tablice.
Primjer:
ALTER TABLE employee DROP INDEX address;
Gornja naredba SPUSTIT će FULLTEXT indeks koji smo dodali za polje adrese.
Primijetite ime 'adresa'. To bi trebalo odgovarati nazivu indeksa u izlazu datoteke POKAŽI STVARANJE STOLA naredba.
Promijeni zadanu vrijednost stupca
ALTER TABELA naredba se također može koristiti za POSTAVLJANJE / promjenu DEFAULT vrijednosti za postojeći stupac.
pitanja i odgovori za ispitivanje prodajnog forsa pdf
Pogledajmo primjer gdje ćemo promijeniti zadanu vrijednost stupca_id u '1'. Time bi svi novi umetci u ovu tablicu promijenili / postavili vrijednost za stupac odjel_id na 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Dodajte novi zapis u tablicu zaposlenika:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
A sada upitajmo odjeljenje_id za ovaj zapis i vidimo koja se vrijednost postavlja.
SELECT department_id FROM employee where id=11 //Output department_id 1
Ažuriranje naziva tablice
MySQL ALTER Naredba table također se može koristiti za ažuriranje imena postojeće tablice. Ponekad je potrebno ažurirati strukturu sheme, što može uključivati promjenu / ažuriranje imena tablica.
Primjer - Tablicu ćemo preimenovati u `Employee_details`.
ALTER TABLE table_name RENAME TO new_table_name;
Često postavljana pitanja
P # 1) Kako mogu promijeniti strukturu tablice u MySQL-u?
Odgovor: MySQL pruža naredbu ALTER za promjenu strukture postojeće tablice u MySQL-u. Pomoću naredbe ALTER možete izvoditi razne operacije poput,
- Dodavanje / ispuštanje stupca
- Dodavanje / uklanjanje indeksa ili ograničenja
- Preimenovanje tablice
P # 2) Zaključava li naredba ALTER stol?
Odgovor: To može ovisiti o verzijama - kod starijih verzija MySQL zaključavanje tablice tijekom izvršavanja izraza ALTER. Općenito, zaključavanje bi se dogodilo, tj. Svako čitanje i pisanje tijekom ALTER.
Na primjer - Dodavanje novog stupca za postojeću tablicu dodirivat će sve retke tablice u koji se dodaje stupac, a kada tablica ima broj zapisa u milijunima, izvršavanje operacije ALTER može potrajati. U tom slučaju zaključavanje čitanja / pisanja bilo bi skupo jer bi baza podataka bila nedostupna i nepristupačna.
P # 3) Možemo li dodati više stupaca u tablicu ALTER?
Odgovor: Da, naredba ALTER može se koristiti za dodavanje više stupaca u jedan izraz.
Pogledajmo primjer gdje imamo tablicu Zaposlenik s id-om, imenom i adresom stupaca i pretpostavimo da želimo dodati još 2 stupca s imenom - najviša_obrazovanost (tip varchar) i telefonski_broj (tip varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Pogledajmo informacije u tablici
SHOW COLUMNS FROM employee;
Izlaz:
Polje | Tip | Nula | Ključ | Zadano | Ekstra |
---|---|---|---|---|---|
Ime | varchar (100) | DA | UJEDINJEN | NULL | |
iskaznica | int | NEMOJ | PRI | NULL | |
adresa | varchar (100) | DA | NULL | ||
odjel_id | int | DA | jedan | ||
najviše obrazovanje | varchar (50) | DA | NULL | ||
broj telefona | varchar (20) | DA | NULL |
U gornjem izlazu možete vidjeti stupce, dodani su najviši_obrazovanje i broj telefona.
Zaključak
U ovom uputstvu saznali smo o različitim načinima upotrebe MySQL ALTER Naredba tablice. ALTER je važna naredba jer se može koristiti u više svrha za ALTER strukturu postojeće tablice u MySQL-u.
Može se koristiti za stvari poput - dodavanja / uklanjanja stupca, dodavanja / ispuštanja indeksa ili ograničenja, a može se koristiti i za preimenovanje postojeće tablice.
Svatko tko uči MySQL trebao bi detaljno razumjeti naredbu tablice ALTER, jer se ona uglavnom koristi tijekom faza održavanja baza podataka u kojima je potrebno izmijeniti postojeću shemu tablice.
Preporučena literatura
- MySQL Vodič za izradu tablica s primjerima
- MySQL Umetni u tablicu - Umetni sintaksu i primjere izjave
- Vrste podataka MySQL | Koje su različite vrste podataka u MySQL-u
- Osnove ograničenja stranih ključeva MySQL-a s primjerima
- MySQL JOIN Vodič: Unutarnji, vanjski, križni, lijevi, desni i ja
- MySQL Create Database - Kako stvoriti bazu podataka u MySQL-u
- 40 najboljih pitanja i odgovora za intervju za MySQL (2021 pitanje)
- Hash tablica u C ++: Programi za implementaciju Hash tablice i Hash karte