SQL – Kreiranje privremenih tabela

Veฤ‡ina proizvoฤ‘aฤa sistema za upravljanje bazama podataka podrลพava koncepciju privremenih tabela, kao i privremenih baza podataka (tempdb). Najkoriลกฤ‡eniji sistemi, kao ลกto su Oracle ili MS SQL, podrลพavaju ovu koncepciju. Privremene tabele se najฤeลกฤ‡e upotrebljavaju za skladiลกtenje rezultata komplikovanih upita, koji su potrebni za kasnije obrade. Kao ลกto i sam naziv govori, radi se o tabelama koje postoje samo privremeno u bazi podataka. Ovde imamo dve vrste privremenih tabela, prve egzistiraju sve do momenta dok se korisnik koji ih je kreirao ne odjavi sa SQL servera (log-out), a druga vrsta privremenih tabela se ne uklanja po odjavljivanju korisnika. Naime, sve kreirane privremene tabele, i jedne i druge vrste, ฤ‡e se ukloniti po odjavljivanju samog SQL servera (shut-down).

Kao ลกto smo rekli, sve privremene tabele se kreiraju u bazi podataka „tempdb“, a moลพete kreirati i cele privremene baze podataka. Na sledeฤ‡em primeru, videฤ‡emo kako se kreira prva vrsta privremenih tabela – odnosno sintaksu kreiranja:


CREATE TABLE #Radnik (
Ime char(20),
Prezime char(20),
MBR int
);

Kao ลกto vidite povisilica (#) na poฤetku naziva tabele predstavlja oznaku SQL serveru da se radi o privremenoj tabeli. Ovako kreirana tabela dostupna je samo onom korisniku koji je i izvrลกio njeno kreiranje. Meฤ‘utim, viลกe korisnika, bez problema, moลพe da kreira sopstvenu privremenu tabelu sa istim nazivom. U ovom sluฤaju, svaki od korisnika koristi svoju privremenu tabelu, gde moลพe da dodaje ili briลกe slogove.

Drugi tip privremenih tabela je onaj kod kog ne dolazi do automatskog uklanjanja tabele nakon odjavljivanja korisnika. Sada ฤ‡emo kreirati jednu ovakvu tabelu:


CREATE TABLE tempdb..Radnik (
Ime char(20),
Prezime char(20),
MBR int
);

Probajte sada da u ovu tabelu ubacite neki slog. Recimo, neka to bude:


INSERT #Radnik VALUES (
"Pera",
"Peric",
8467
);

Odjavite se sa SQL servera (log-out), pa se ponovo ulogujte i „uฤ‘ite“ u bazu podataka koju ste koristili pri kreiranju privremene tabele. Sada pokuลกajte da izlistate sadrลพaje privremene tabele sa:


SELECT *
FROM #Radnik ;

Dobiฤ‡ete rezultat kao na slici.

Pratite Krstaricu na www.krstarica.com