Posts

Showing posts with the label sql

SQL ALL, ANY, EXISTS i SOME Operateri

SQL operateri `ALL`, `ANY`, `EXISTS` i `SOME` se koriste za poređenje vrednosti u podupitu sa vrednostima u glavnom upitu. Evo objašnjenja i primera za svaki od ovih operatera: ALL operator: Operator `ALL` koristi se za upoređivanje da li svi rezultati podupita zadovoljavaju određeni uslov. SELECT Ime FROM Studenti WHERE Bodovi > ALL (SELECT Bodovi FROM Studenti WHERE Godina = 2); ANY operator: Operator `ANY` koristi se za upoređivanje da li bar jedan rezultat podupita zadovoljava određeni uslov. SELECT Ime FROM Proizvodi WHERE Cena = ANY (SELECT Cena FROM KonkurentskaRoba                               WHERE Kategorija = 'Elektronika'); EXISTS operator: Operator `EXISTS` koristi se za proveru postojanja rezultata u podupitu. SELECT Ime FROM Narudžbine WHERE EXISTS (SELECT * FR...

SQL Subqueries (Podupiti)

Podupiti su upiti unutar drugih upita i koriste se za dobijanje dodatnih podataka ili filtriranje rezultata glavnog upita. Primeri upotrebe podupita: 1. Jednostavan podupit u klauzuli WHERE: SELECT Ime FROM Zaposleni WHERE OdeljenjeID = (SELECT OdeljenjeID FROM Odeljenja                               WHERE Naziv = 'Računovodstvo'); 2. Podupit u klauzuli SELECT: SELECT Ime, (SELECT COUNT(*) FROM Narudzbe                       WHERE KupacID = K.KupacID) AS BrojNarudzbi FROM Kupci K; Podupiti omogućavaju rukovanje složenim logikama i zavise od rezultata drugih upita. Napomena: Podupiti su korisni za rešavanje složenih problema i omogućavaju vam da izgradite upite koji zavise od rezultata drugih upita.

SQL SELECT INTO TEMPORARY TABLE

SELECT INTO TEMPORARY TABLE  u SQL-u se koristi za kreiranje privremene tabele na osnovu rezultata SELECT upita. Privremene tabele su vidljive samo tokom trenutne sesije i automatski se brišu nakon sesije. Primer korišćenja SELECT INTO Privremena Tabela: SELECT Ime, Prezime INTO #PrivremenaTabela FROM Zaposleni WHERE DatumZaposlenja > '2023-01-01'; Ovaj upit će kreirati privremenu tabelu #PrivremenaTabela sa kolonama "Ime" i "Prezime" i kopirati podatke zaposlenih čiji je datum zaposlenja nakon 1. januara 2023. godine. Napomena : Sintaksa za kreiranje privremene tabele može se razlikovati u različitim SQL sistemima (npr. SQL Server, MySQL, itd.), pa je važno da koristite odgovarajuću sintaksu za svoju bazu podataka.

SQL INSERT INTO SELECT

INSERT INTO SELECT u SQL-u se koristi za umetanje podataka u ciljnu tabelu na osnovu rezultata SELECT upita. Primer korišćenja INSERT INTO SELECT: INSERT INTO NoviZaposleni (Ime, Prezime, DatumZaposlenja) SELECT Ime, Prezime, DatumZaposlenja FROM StariZaposleni WHERE DatumZaposlenja > '2023-01-01'; Ovaj upit će umetnuti podatke iz tabele "StariZaposleni" u tabelu "NoviZaposleni" za sve redove gde je datum zaposlenja nakon 1. januara 2023. godine. Napomena: Ciljna tabela mora biti prethodno kreirana sa odgovarajućim kolonama, i obezbedite da tipovi podataka u SELECT upitu odgovaraju tipovima podataka u ciljnoj tabeli.

SQL SELECT INTO

SELECT INTO u SQL-u se koristi za kreiranje nove tabele na osnovu rezultata SELECT upita. Primer korišćenja SELECT INTO: SELECT Ime, Prezime INTO NoviZaposleni FROM Zaposleni WHERE DatumZaposlenja > '2023-01-01'; Ovaj upit će kreirati novu tabelu "NoviZaposleni" sa kolonama "Ime" i "Prezime" i kopirati podatke zaposlenih čiji je datum zaposlenja nakon 1. januara 2023. godine. Napomena: Nova tabela mora biti prethodno kreirana, i morate imati odgovarajuće dozvole za kreiranje nove tabele.

SQL UNION

UNION  u SQL-u se koristi za spajanje rezultata više upita u jedan rezultat, pri čemu se eliminišu duplicirani redovi. Primer korišćenja UNION: SELECT Ime, Prezime FROM Zaposleni UNION SELECT Ime, Prezime FROM Klijenti; Ovaj upit će spojiti imena i prezimena zaposlenih i klijenata iz tabela "Zaposleni" i "Klijenti" i vratiti jedinstvene vrednosti. Napomena: `UNION` automatski uklanja duplicirane redove. Ako želite zadržati sve redove, uključujući i duplicirane, možete koristiti `UNION ALL` umesto `UNION`.

SQL JOIN (Spajanje) Operacije

Image
JOIN u SQL-u se koristi za spajanje podataka iz više tabela na osnovu određenih uslova. Postoje različite vrste JOIN operacija: INNER JOIN (Unutarnji JOIN): INNER JOIN vraća samo redove koji imaju podudaranja u obe tabelama koje se spajaju. SELECT Narudzba.NarudzbaID, Kupac.Ime FROM Narudzba INNER JOIN Kupac ON Narudzba.KupacID = Kupac.KupacID; Ovaj upit će spojiti tabelu "Narudzba" sa tabelom "Kupac" na osnovu zajedničkog polja "KupacID" i vratiti podatke o narudžbama i imenima kupaca. LEFT JOIN (Levi JOIN): LEFT JOIN vraća sve redove iz leve tabele i odgovarajuće redove iz desne tabele. SELECT Radnik.Ime, Radnik.Pozicija, Projekat.Naziv FROM Radnik LEFT JOIN Projekat ON Radnik.RadnikID = Projekat.RadnikID; Ovaj upit će spojiti tabelu "Radnik" sa tabelom "Projekat" na osnovu zajedničkog polja "RadnikID" i prikazati sve radnike i...

SQL DELETE Naredba

DELETE je SQL naredba koja se koristi za brisanje postojećih redova iz tabele baze podataka. Evo primera: DELETE FROM Korisnici WHERE KorisnikID = 123; Ovaj upit će trajno izbrisati korisnika sa ID brojem 123 iz tabele "Korisnici". Napomena: Budite veoma oprezni prilikom korišćenja DELETE naredbe, jer ona trajno uklanja podatke. Uvek budite sigurni da ste pravilno postavili WHERE klauzulu kako biste precizno odabrali redove koje želite da obrišete. Ukoliko se izostavi WHERE kaluzula, svi podaci ove tabele će biti obrisani, ali ne i sama tabela.

SQL UPDATE Naredba

UPDATE je SQL naredba koja se koristi za ažuriranje postojećih redova u tabeli baze podataka. Evo primera: UPDATE Korisnici SET Status = 'Aktivan' WHERE KorisnikID = 123; Ovaj upit će ažurirati tabelu "Korisnici" tako da kolona "Status" za korisnika sa ID brojem 123 bude postavljena na "Aktivan". Napomena: UPDATE naredba obavezno sadrži SET klauzulu koja definiše koje kolone želite da ažurirate i nove vrednosti koje ćete postaviti. Takođe, često se koristi WHERE klauzula da se specificira koji redovi u tabeli će biti ažurirani (ukoliko se izostavi, svi redovi u koloni će biti ažurirani).

SQL INSERT INTO Naredba

INSERT INTO je SQL naredba koja se koristi za dodavanje novih redova u tabelu baze podataka. Evo primera: INSERT INTO Korisnici (Ime, Prezime, Email) VALUES ('Ana', 'Ivanović', 'ana@email.com'); Ovaj upit će dodati novog korisnika u tabelu "Korisnici" sa imenom "Ana", prezimenom "Ivanović" i e-mail adresom "ana@email.com". Napomena: Imena kolona u zagradama (npr. Ime , Prezime , Email ) moraju se podudarati sa redosledom vrednosti koje unosite u vrednostima (npr. 'Ana', 'Ivanović', 'ana@email.com'). Takođe, naredba INSERT INTO može se koristiti za unos podataka u kolone koje su opciono obeležene kao NULL, što znači da ne morate uneti vrednost za svaku kolonu.

SQL Komentari

Komentari u SQL-u su tekstualni delovi koji služe za dodatna objašnjenja i dokumentaciju upita ili skripte. Postoje dva tipa SQL komentara: Jednolinijski komentari: Ovi komentari počinju sa znakom dvostrukih crta ( -- ) i obuhvataju sve do kraja reda. SELECT Ime, Prezime -- Ovde biramo imena i prezimena FROM Zaposleni; Višelinijski komentari: Ovi komentari počinju sa /* i završavaju se sa */ . Mogu obuhvatiti više redova i koriste se za dodavanje detaljnijih komentara. /* Ovo je primer upita koji bira sve zaposlene iz tabele Zaposleni. */ SELECT Ime, Prezime FROM Zaposleni;

SQL NULL funkcije

NULL funkcije omogućavaju vam da obradite NULL vrednosti u SQL upitima. Evo nekoliko često korišćenih NULL funkcija sa objašnjenjima i primerima: IS NULL poređenje: Ova funkcija se koristi da proveri da li je određena vrednost NULL. SELECT Ime, Prezime FROM Zaposleni WHERE Plata IS NULL; Ovaj upit će izabrati sve zaposlene čija plata ima NULL vrednost. ISNULL() funkcija: ISNULL() funkcija se koristi za proveru da li je određena vrednost NULL ili ne. Ako je vrednost NULL, funkcija će vratiti 1 (tačno); inače će vratiti 0 (netačno). SELECT Ime, Prezime FROM Zaposleni WHERE ISNULL(Plata, 0) = 0; Ovaj upit će izabrati imena i prezimena zaposlenih čija plata nije NULL ili gde je plata NULL, ali će se zameniti nulom (0). COALESCE funkcija: COALESCE funkcija se koristi da odabere prvu "ne-NULL" vrednost iz niza vrednosti. SELECT Ime, COALESCE...

SQL NULL vrednost

NULL označava odsustvo vrednosti u SQL-u. To ne znači da je vrednost nula, već da vrednost nije ni poznata ni definisana. Evo nekoliko primera: Primer 1: Dodavanje zapisa bez vrednosti Ako se pri dodavanju zapisa u tabelu određena kolona ne popuni vrednošću, ta kolona će imati NULL vrednost. INSERT INTO Korisnici (Ime, Prezime, Telefon) VALUES ('Ana', 'Ivanović', NULL); Primer 2: Nedostajući podaci Kada neki podaci nisu dostupni ili nisu uneti, NULL se koristi da označi te praznine. Primer 3: Neobavezne kolone U slučaju kada kolona nije obavezna za unos (nije definisana kao NOT NULL), NULL se može koristiti da označi odsustvo vrednosti. Primer 4: Nedefinisane vrednosti Kada vrednost nije primenjiva ili nije definisana za određeni zapis, NULL se koristi da označi ovu situaciju. Važno je napomenuti da NULL nije isto što i prazan string ('') ili nula (0). NULL označava odsustvo vrednosti,...

SQL Compound (Složeno dodeljivanje) Operatori

Operateri sa složenim dodeljivanjem u SQL-u omogućavaju izvođenje operacija nad vrednostima kolona i dodeljivanje rezultata toj istoj koloni. Evo nekoliko često korišćenih operatera sa složenim dodeljivanjem sa objašnjenjima na srpskom jeziku i primerima: += operator: Ovaj operator se koristi za dodavanje vrednosti jedne kolone drugoj koloni i dodeljivanje rezultata prvoj koloni. UPDATE Zaposleni SET Plata += 500 -- Plata = Plata + 500 WHERE Odeljenje = 'Prodaja'; -= operator: Ovaj operator se koristi za oduzimanje vrednosti jedne kolone od druge kolone i dodeljivanje rezultata prvoj koloni. UPDATE Korisnici SET BrojPoena -= 10 -- BrojPoena = BrojPoena - 10 WHERE Status = 'Aktivan'; *= operator: Ovaj operator se koristi za množenje vrednosti jedne kolone sa vrednošću druge kolone i dodeljivanje rezultata prvoj koloni. UPDATE Proizvodi SET Cena *= 1.1 --...

SQL Comparison (Poređenje) Operatori

Comparison operatori u SQL-u koriste se za upoređivanje vrednosti i vraćaju rezultat koji ukazuje na tačnost ili netačnost uslova. Evo nekoliko često korišćenih komparativnih operatora sa objašnjenjima na srpskom jeziku i primerima: Jednako (=): Operator "jednako" se koristi za upoređivanje da li dve vrednosti su iste. SELECT Ime, Prezime FROM Korisnici WHERE Grad = 'Beograd'; Različito ( ) ili (!=): Operator "različito" se koristi za upoređivanje da li dve vrednosti nisu iste. SELECT Ime, Prezime FROM Korisnici WHERE Grad 'Novi Sad'; Veće od (>): Operator "veće od" se koristi za upoređivanje da li jedna vrednost je veća od druge. SELECT Ime, Plata FROM Zaposleni WHERE Plata > 50000; Manje od ( Operator "manje od" se koristi za upoređivanje da li jedna vrednost je manja od druge. ...

SQL Aritmetički Operatori

Aritmetički operatori u SQL-u omogućavaju izvođenje matematičkih operacija nad numeričkim vrednostima u upitima. Evo nekoliko često korišćenih aritmetičkih operatora sa primerima: Sabiranje (+): Koristi se za sabiranje dve numeričke vrednosti. SELECT Cena + Popust AS KonacnaCena FROM Proizvodi; Oduzimanje (-): Koristi se za oduzimanje jedne numeričke vrednosti od druge. SELECT UkupanIznos - Popust AS Placanje FROM Narudžbine; Množenje (*): Koristi se za množenje dve numeričke vrednosti. SELECT Cena * Količina AS UkupanIznos FROM StavkeNarudžbine; Deljenje (/): Koristi se za deljenje jedne numeričke vrednosti sa drugom. SELECT UkupanIznos / BrojStavki AS ProsečnaCena FROM Narudžbine; Modulo (%): Vraća ostatak pri deljenju dve numeričke vrednosti. SELECT Broj % 2 AS Ostatak FROM Tabela;

SQL CASE klauzula

CASE (SLUČAJ) klauzula u SQL-u se koristi za implementaciju uslovnih izraza u upitima. Omogućava vam da definišete različite radnje ili vrednosti na osnovu ispunjenja određenih uslova. CASE može biti korisna za izbor različitih vrednosti za istu kolonu ili za kreiranje dodatnih kolona na osnovu uslovnih provera. Primer korišćenja CASE: Korišćenje CASE klauzule za dodelu ocene "Prolaz" ili "Pad" na osnovu rezultata ispita. SELECT Ime, Rezultat, CASE WHEN Rezultat >= 50 THEN 'Prolaz' ELSE 'Pad' END AS Ocena FROM Ispiti; Ovaj upit će dodati kolonu "Ocena" koja će sadržavati vrednost "Prolaz" ako je rezultat veći ili jednak 50, inače će sadržavati vrednost "Pad". Korišćenje CASE klauzule sa više uslova za dodelu ocene "Odličan", "Dobar", "Prosečan" ili "Nedovoljan" na osnovu rezultata ispita. ...

SQL SUM() i AVG() funkcije

SUM() (ZBIR()) funkcija se koristi za izračunavanje ukupnog zbirnog broja vrednosti u određenoj koloni, dok se AVG() (PROSEK()) funkcija koristi za izračunavanje prosečne vrednosti u toj koloni. Obe funkcije se često koriste za analizu numeričkih podataka. Primer korišćenja SUM(): Korišćenje SUM() funkcije za izračunavanje ukupne vrednosti svih narudžbina. SELECT SUM(Iznos) AS UkupanIznos FROM Narudžbine; Ovaj upit će izračunati ukupan iznos svih narudžbina u tabeli "Narudžbine" i vratiti ga kao "UkupanIznos". Primer korišćenja AVG(): Korišćenje AVG() funkcije za izračunavanje prosečne ocene proizvoda. SELECT AVG(Ocena) AS ProsečnaOcena FROM Proizvodi; Ovaj upit će izračunati prosečnu ocenu svih proizvoda u tabeli "Proizvodi" i vratiti je kao "ProsečnaOcena".

SQL COUNT() funkcija

COUNT() (BROJ()) funkcija u SQL-u koristi se za brojanje broja redova u određenoj tabeli ili rezultatu upita. Ova funkcija omogućava vam da saznate koliko redova ispunjava određeni uslov ili koliko redova postoji u tabeli. Primer korišćenja COUNT(): Korišćenje COUNT() funkcije za brojanje broja korisnika u tabeli "Korisnici". SELECT COUNT(*) AS BrojKorisnika FROM Korisnici; Ovaj upit će izbrojati sve redove u tabeli "Korisnici" i vratiti broj korisnika.

SQL HAVING klauzula

HAVING (Imajući) je klauzula u SQL upitu koja se koristi zajedno sa "GROUP BY" kako bi se filtrirali rezultati grupisanih redova. Ova klauzula omogućava postavljanje uslova za grupisane podatke nakon što su grupisani i agregirani. "HAVING" se koristi za filtriranje grupa koje ispunjavaju određene uslove. Primer korišćenja HAVING: Grupisanje korisnika prema njihovim gradovima i izračunavanje ukupnog broja korisnika u svakom gradu, a zatim filtriranje gradova sa više od 10 korisnika. SELECT Grad, COUNT(*) AS BrojKorisnika FROM Korisnici GROUP BY Grad HAVING COUNT(*) > 10; Ovaj upit će grupisati korisnike po njihovim gradovima, izračunati ukupan broj korisnika u svakom gradu i zatim filtrirati samo one gradove gde ima više od 10 korisnika. Napomena : "HAVING" se koristi isključivo sa "GROUP BY" i koristi se za filtriranje grupisanih podataka na osnovu agregatnih funkcija (npr. COUNT, SU...