Креирање СКЛ ПРИКАЗА: Објашњено корак по корак

Razumevanje i Kreiranje SQL Pogleda

Za interakciju sa relacionim bazama podataka i formiranje SQL pogleda, koristimo SQL, odnosno jezik strukturiranih upita.

Šta su zapravo SQL pogledi? To su, u suštini, virtuelne tabele koje objedinjuju i čuvaju informacije iz stvarnih tabela unutar baze podataka. Ovaj pristup omogućava vam siguran i lak pristup podacima, dok istovremeno skriva kompleksne strukture tabela i njihovu implementaciju.

Kako sve to funkcioniše? Kao što znate, SQL upiti služe za kreiranje SQL pogleda. Prilikom kreiranja SQL pogleda, osnovni SQL upit se memoriše. Kada koristite SQL upit za dobijanje podataka iz više tabela, taj upit se izvršava i omogućava preuzimanje podataka iz relevantnih tabela. Analogno tome, kada upitujete kreirani SQL pogled, prvo se učitava sačuvani upit, koji se zatim izvršava.

Prednosti Kreiranja SQL Pogleda

Budući da SQL pogledi rade na osnovu uskladištenih SQL upita, oni značajno doprinose sigurnosti baze podataka. Takođe, pojednostavljuju kompleksne upite i poboljšavaju performanse, između ostalog. Pogledajmo kako kreiranje SQL pogleda može biti korisno za vašu bazu podataka i aplikacije:

#1. Povećana Sigurnost Baze Podataka

SQL pogledi funkcionišu kao virtuelne tabele, čime se sakriva stvarna struktura tabela u bazi podataka. Drugim rečima, samim pregledom pogleda, nemoguće je saznati broj tabela ili specifične kolone unutar njih. Uz to, moguće je dodati ograničenja pristupa, tako da korisnici mogu upite izvršavati samo nad pogledima, a ne direktno nad tabelama.

#2. Pojednostavljivanje Složenih Upita

SQL upiti često obuhvataju više tabela sa kompleksnim uslovima spajanja. Ako često koristite takve upite, kreiranje SQL pogleda može biti veoma korisno. Složeni upit možete sačuvati unutar SQL pogleda i, umesto da svaki put pokrećete celokupan upit, možete jednostavno postaviti upit nad pogledom.

#3. Ublažavanje Efekata Promena Šeme

U slučaju promena u osnovnoj strukturi tabele, kao što je dodavanje ili brisanje kolona, SQL pogledi ostaju nepromenjeni. Ako za sve upite koristite SQL poglede, ne morate brinuti o promenama šeme. Budući da su pogledi virtuelne tabele, kreirani SQL pogled će nastaviti da radi bez problema.

#4. Poboljšanje Performansi Upita

Prilikom kreiranja SQL pogleda, mehanizam baze podataka optimizuje osnovni upit pre nego što ga uskladišti. Usladišteni upit radi brže nego direktno pokretanje istog upita. Dakle, korišćenjem SQL pogleda za pristup podacima postižu se bolje performanse i brži rezultati.

Kako Kreirati SQL Pogled?

Za kreiranje SQL pogleda koristi se naredba CREATE VIEW. Pogled uključuje naredbu SELECT, koja definiše upit koji će biti sačuvan. Sintaksa je sledeća:

CREATE VIEW naziv_pogleda AS
SELECT
  kolona_1,
  kolona_2,
  kolona_3...
FROM
  naziv_tabele_1, naziv_tabele_2
WHERE
  uslovni_izraz

Radi boljeg razumevanja, razmotrimo primer. Pretpostavimo da ste kreirali dve tabele: ‘odeljenje’ i ‘zaposleni’. Tabela ‘odeljenje’ sadrži naziv odeljenja i njegov ID, dok tabela ‘zaposleni’ sadrži ime i ID zaposlenog, zajedno sa ID-om odeljenja kojem pripada. Ove dve tabele će se koristiti za kreiranje SQL pogleda.

Kreiranje Tabela Baze Podataka

odeljenje_id naziv_odeljenja
1 Finansije
2 Tehnologija
3 Biznis

Tabela 1: odeljenje

Ako koristite MySQL, tabelu možete kreirati sledećim upitom:

CREATE TABLE `odeljenje` (
  `odeljenje_id` int,
  `naziv_odeljenja` varchar(255),
  PRIMARY KEY (`odeljenje_id`)
);

Umetnite podatke u tabelu pomoću sledećeg SQL-a:

INSERT INTO odeljenje VALUES (1, 'Finansije');
INSERT INTO odeljenje VALUES (2, 'Tehnologija');
INSERT INTO odeljenje VALUES (3, 'Biznis');
zaposleni_id ime_zaposlenog odeljenje_id
100 John 3
101 Mary 1
102 Natalia 3
103 Bruce 2

Tabela 2: zaposleni

Nakon što je tabela ‘odeljenje’ kreirana i popunjena podacima, kreirajte tabelu ‘zaposleni’ koristeći sledeći MySQL upit:

CREATE TABLE `zaposleni` (
  `zaposleni_id` INT,
  `ime_zaposlenog` VARCHAR(255),
  `odeljenje_id` INT,
  FOREIGN KEY (`odeljenje_id`) REFERENCES odeljenje(odeljenje_id)
);

Zatim, umetnite podatke o zaposlenima u tabelu. Važno je napomenuti da, budući da kolona ‘odeljenje_id’ ima referencu stranog ključa na tabelu ‘odeljenje’, ne možete umetnuti ‘odeljenje_id’ koji ne postoji u tabeli ‘odeljenje’.

INSERT INTO zaposleni VALUES (100, 'John', 3);
INSERT INTO zaposleni VALUES (101, 'Mary', 1);
INSERT INTO zaposleni VALUES (102, 'Natalia', 3);
INSERT INTO zaposleni VALUES (103, 'Bruce', 2);

Upitivanje Tabela Baze Podataka

Hajde da upotrebimo ove tabele u upitu baze podataka. Pretpostavimo da treba da dobijete ID zaposlenog, ime zaposlenog i naziv odeljenja za sve zaposlene. U ovom slučaju, potrebno je koristiti obe tabele i spojiti ih koristeći zajedničku kolonu, a to je ‘odeljenje_id’. Upit bi izgledao ovako:

SELECT
  zaposleni_id,
  ime_zaposlenog,
  naziv_odeljenja
FROM
  zaposleni,
  odeljenje
WHERE
  zaposleni.odeljenje_id = odeljenje.odeljenje_id;

Kreiranje SQL Pogleda

Može se desiti da često zahtevate ove podatke. Uz to, kako se broj podataka u tabelama povećava, vreme izvršavanja upita će takođe početi da se povećava. U takvoj situaciji, možete kreirati SQL pogled koji odgovara ovom upitu.

Sledećim upitom kreirajte pogled pod nazivom ‘informacije_o_zaposlenima’:

CREATE VIEW informacije_o_zaposlenima AS
SELECT
  zaposleni_id,
  ime_zaposlenog,
  naziv_odeljenja
FROM
  zaposleni,
  odeljenje
WHERE
  zaposleni.odeljenje_id = odeljenje.odeljenje_id;

Sada kada je pogled kreiran, možete direktno upitati isti. Upit se sada pojednostavljuje na:

SELECT
  *
FROM
  informacije_o_zaposlenima;

Upit nad SQL pogledom daje isti rezultat kao i pokretanje originalnog upita. Međutim, sada je vaš upit lakši za održavanje. Pogled skriva složenost vašeg upita bez ugrožavanja rezultata ili performansi.

Kako Zameniti SQL Pogled?

Ako imate pogled sa određenim imenom i želite da ga izmenite ili zamenite, koristite naredbu CREATE OR REPLACE VIEW. Na ovaj način, možete modifikovati SELECT naredbu koja je korišćena za kreiranje pogleda. Time se zamenjuje rezultat vašeg pogleda, dok ime pogleda ostaje isto. Dodatno, kreira se novi SQL pogled ako ne postoji.

Sintaksa za zamenu SQL pogleda je sledeća:

CREATE OR REPLACE VIEW naziv_pogleda AS
SELECT
  nova_kolona_1,
  nova_kolona_2,
  nova_kolona_3 ...
FROM
  nova_tabela_1,
  nova_tabela_2 ...
WHERE
  novi_uslovni_izraz

Ovo se može bolje razumeti na primeru. Razmotrimo tabele ‘odeljenje’ i ‘zaposleni’. Iz njih je kreiran SQL pogled ‘informacije_o_zaposlenima’, koji sadrži kolone ‘zaposleni_id’, ‘ime_zaposlenog’ i ‘naziv_odeljenja’.

Zbog bezbednosnih razloga, možda ćete želeti da uklonite ‘zaposleni_id’ iz ovog pogleda. Takođe, možda ćete želeti da promenite imena kolona da biste sakrili stvarna imena kolona u bazi podataka. Promene postojećeg pogleda možete izvršiti koristeći sledeći SQL upit:

CREATE OR REPLACE VIEW informacije_o_zaposlenima AS
SELECT
  ime_zaposlenog as ime,
  naziv_odeljenja as odeljenje
FROM
  zaposleni,
  odeljenje
WHERE
  zaposleni.odeljenje_id = odeljenje.odeljenje_id;

Nakon što se pogled zameni, dobićete različite rezultate kada koristite isti upit kao ranije. Na primer, u rezultatu upita ćete videti da je jedna kolona uklonjena. Uz to, imena kolona su izmenjena iz ‘ime_zaposlenog’ i ‘naziv_odeljenja’ u ‘ime’ i ‘odeljenje’, respektivno.

Iskoristite Prednosti Kreiranja SQL Pogleda

Kreiranje SQL pogleda donosi ne samo pojednostavljene upite i brže pretraživanje podataka, već i sigurnost i zaštitu od promena šeme. Kreiranje SQL pogleda je vrlo jednostavno. Možete uzeti bilo koji postojeći upit i pretvoriti ga u SQL pogled.

Koristite ovaj vodič da kreirate SQL poglede i iskoristite njihove prednosti. Sa SQL pogledima, vaše aplikacije baza podataka mogu postati jednostavne i bezbedne, uz istovremeno poboljšanje performansi.

Ako želite da upravljate sopstvenim SQL serverom, pogledajte SQL Server Management Studio (SSMS).