U SQL-u često su potrebne strukturne izmjene baze podataka kao što je preimenovanje tablica ili stupaca, dodavanje novih stupaca ili promjena tipova podataka. Naredba ALTER TABLE omogućuje da se te promjene učine učinkovito bez utjecaja na postojeće podatke. To je bitna naredba za upravljanje i ažuriranje shema baze podataka kako se zahtjevi aplikacije razvijaju.
Primjer: Najprije stvorimo primjer tablice učenika da demonstriramo naredbu ALTER:
Upit:
ALTER TABLE students
RENAME TO learners;
Izlaz:
Sintaksa za naredbu ALTER
Ovo su uobičajeni formati sintakse za korištenje naredbe ALTER TABLE:
1. Promjena naziva tablice
ALTER TABLE naziv_tablice
RENAME TO new_table_name;
2. Promjena naziva stupca
ALTER TABLE naziv_tablice
RENAME COLUMN stari_naziv_stupca U novi_naziv_stupca;
3. Dodavanje novog stupca
ALTER TABLE naziv_tablice
ADD column_name tip podataka;xml komentar
ALTER TABLE naziv_tablice
MODIFY COLUMN column_name new_datatype;
Primjeri naredbe ALTER u SQL-u
Ispod su praktični primjeri koji nam pomažu razumjeti kako učinkovito koristiti naredbu ALTER u različitim scenarijima. Ovi primjeri uključuju preimenovanje tablica ili stupaca dodavanjem novih stupaca ili mijenjajući stupac tipovi podataka.
1. Napravite oglednu tablicu
Prvo kreirajmo uzorka učenika tablica za demonstraciju ALTER naredba:
CREATE TABLE Student (
id INT PRIMARY KEY
name VARCHAR(50)
age INT
email VARCHAR(50)
phone VARCHAR(20)
);
Umetnimo neke podatke i zatim izvršimo operaciju ALTER da bolje razumijemo naredbu alter.
INSERT INTO Student (id name age email phone)
VALUES
(1 'Amit' 20 '[email protected]' '9999999999')
(2 'Rahul' 22 '[email protected]' '8888888888')
(3 'Priya' 21 '[email protected]' '7777777777')
(4 'Sonia' 23 '[email protected]' '6666666666')
(5 'Kiran' 19 '[email protected]' '5555555555');
Izlaz
Primjer 1: Preimenujte stupac
Promijenite naziv stupca u FIRST_NAME u tablici Student. Da bismo promijenili naziv stupca postojeće tablice, moramo upotrijebiti ključnu riječ Column prije pisanja postojećeg naziva stupca koji treba promijeniti.
Sintaksa
ALTER TABLE Student RENAME COLUMN Column_NAME TO FIRST_NAME;
Upit:
ALTER TABLE Student RENAME Column name TO FIRST_NAME;Izlaz
IzlazPrimjer 2: Preimenuj tablicu
U ovom primjeru želimo preimenovati tablicu izStudentdoStudent_DetailspomoćuALTER TABLEnaredba koja naziv čini opisnijim i relevantan za njegov sadržaj.
Upit:
ALTER TABLE Student RENAME TO Student_Details;Izlaz
Primjer 3: Dodajte novi stupac
Da bismo dodali novi stupac u postojeću tablicu prvo trebamo odabrati tablicu s naredbom ALTER TABLE table_name, a zatim ćemo napisati naziv novog stupca i njegov tip podataka s ADD column_name vrsta podataka. Pogledajmo dolje da bismo bolje razumjeli.
Sintaksa
ALTER TABLE naziv_tablice
ADD column_name tip podataka;foreach java
Upit:
ALTER TABLE Student ADD marks INT;Izlaz
U primjeruphonestupac je ažuriran odVARCHAR(20)doBIGINT za učinkovitije pohranjivanje numeričkih podataka i osiguranje integritet podataka za telefonske brojeve bez nepotrebnih znakova.
Sintaksa
ALTER TABLE naziv_tablice
MODIFY COLUMN column_name new_datatype;
Upit:
ALTER TABLE Student_Details
MODIFY COLUMN phone BIGINT;
Izlaz
| id | ime | dobi | elektronička pošta | telefon |
|---|---|---|---|---|
| 1 | Što | 20 | [email protected] | 9999999999 |
| 2 | Rahul | 22 | [email protected] | 8888888888 |
| 3 | Priya | 21 | [email protected] | 7777777777 |
| 4 | Sonia | 23 | [email protected] | 6666666666 |
| 5 | Poziv | 19 | [email protected] | 5555555555 |
Obrazloženje :
- Telefonski stupac sada ima tip podataka BIGINT prikladan za pohranu velikih numeričkih vrijednosti.
- Postojeći podaci ostaju nepromijenjeni, ali se pohranjuju kao cijeli brojevi umjesto žica.
Dodatni slučajevi upotrebe naredbe ALTER
1. Uklanjanje stupca : U nekim slučajevima možda ćemo morati ukloniti stupac. Da biste to učinili, možete koristiti sintaksu DROP COLUMN:
što je poseban lik
ALTER TABLE Student_Details
ISPUSTI oznake STUPCA;
Ova naredba potpuno briše stupac oznaka iz tablice
2. Promjena zadane vrijednosti stupca : Također možemo promijeniti zadanu vrijednost stupca pomoću klauzule SET DEFAULT:
ALTER TABLE Student_Details
ALTER COLUMN age SET DEFAULT 18;
3. Promjena naziva tablice ili stupca u različitim bazama podataka : Imajte na umu da SQL sintaksa može varirati u različitim sustavima baza podataka. Evo kako bismo preimenovali tablicu ili stupac u MySQL MariaDB i Oracle :
- MySQL / MariaDB : Sintaksa za preimenovanje stupca je slična, ali morate također koristiti naredbu CHANGE COLUMN za preimenovanje stupca:
ALTER TABLE Student
CHANGE COLUMN old_column_name new_column_name datatype;
- Oracle : Oracle podržava sintaksu RENAME COLUMN, ali zahtijeva drugačiju sintaksu za preimenovanje tablice:
Napravi kvizALTER TABLE Student RENAME COLUMN old_column_name TO new_column_name;