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