SQL – Izmena strukture tabela

U prethodnom SQL prilogu videli smo na koji način se kreiraju tabele uz pomoć instrukcije CREATE TABLE. Pri tome smo spomenuli i drugu komandu ALTER TABLE, koja takođe pripada DDL (Data Definition Language) komponenti SQL jezika, a namenjena je za izmenu strukture postojećih tabela. Na primer, sa ovom instrukcijom možete da dodate novo ili obrišete postojeće polje (kolonu), promenite tip postojećeg polja, ili možete samo preimenovati neko od polja. Ovo je vrlo bitna komanda koja će vam u slučaju neuspešnog dizajna baze podataka ili u slučaju potrebe za dodavanjem novih obeležja, olakšati posao.

Ova instrukcija radi na taj način što kada je pozovemo kreira privremenu kopiju originalne tabele, izvrši se izmena na kopiji tabele, pa se na kraju briše originalna tabela, a novoj se menja naziv u staru. Važno je reći i da će prilikom izvršavanja naredbe ALTER TABLE originalna tabela ostati u upotrebi, tj. biće dostupna ostalim klijentima (ako se radi o mreži). Sama fizička izmena i upis nove tabele se ne vrši sve dok nova tabela nije spremna. Osnovna sintaksa naredbe ALTER TABLE je različita kod različitih SUBP, i u osnovi ima veći broj argumenata, a mi ćemo navesti samo one najbitnije:


ALTER TABLE naziv_tabele
ADD novo_polje
ili
MODIFY postojece_polje [definicija]
ili
DROP postojece_polje
ili
RENAME postojece_polje TO novo_polje

;

I ovaj put za primere ćemo koristiti tabelu „Radnik“ koju smo definisali putem SQL-a u prethodnom prilogu. Prvo ćemo uz pomoć ALTER TABLE videti kako da izmenimo definiciju polja „SIF_R“ (šifra radnika – proširenje ovog polja, tako da u njega može da stane 10 karaktera umesto 5) :


ALTER TABLE Radnik
MODIFY SIF_R Char(10) not null;

Za dodavanje novog polja u tabelu koristićemo sledeći izraz:


ALTER TABLE Radnik
ADD SS Char(4) not null;

Ovim smo tabeli dodali polje „Stručna sprema“ (SS), a preimenovanje cele tabele bi bilo:


ALTER TABLE Radnik RENAME Sef;

Pratite Krstaricu na www.krstarica.com