SQL , ili Structured Query Language , standardizirani je programski jezik koji se koristi za upravljanje relacijskim bazama podataka i izvođenje različitih operacija nad podacima u njima. SQL je nevjerojatno svestran, koriste ga administratori baza podataka, analitičari podataka i programeri za postavljanje upita, umetanje, ažuriranje i brisanje podataka unutar baze podataka.
U srcu SQL-a je koncept baze podataka . Baza podataka može se smatrati zbirkom povezanih podataka organiziranih na način koji olakšava upravljanje i pronalaženje podataka. Baze podataka prvenstveno se kategoriziraju u dvije vrste: relacijske baze podataka i nerelacijske baze podataka . SQL se primarno koristi s relacijskim bazama podataka gdje su podaci pohranjeni u tablicama koje su međusobno povezane kroz relacije.
Postoji nekoliko temeljnih SQL naredbi koje su bitne za rad s relacijskim bazama podataka:
Jedna od najčešćih operacija koje se izvode na bazi podataka je upit podataka pomoću naredbe SELECT . Najjednostavniji oblik naredbe SELECT je sljedeći:
SELECT column1, column2 FROM tableName;
Ova naredba će vratiti navedene stupce iz navedene tablice. Za odabir svih stupaca iz tablice koristi se simbol zvjezdice (*):
SELECT * FROM tableName;
Za sužavanje rezultata koje vraća naredba SELECT, može se koristiti klauzula WHERE . Ova klauzula navodi uvjete koje podaci moraju ispuniti da bi bili odabrani. Na primjer:
SELECT * FROM zaposlenika WHERE odjel = 'Prodaja';
Ova naredba će vratiti sve retke u tablici zaposlenika gdje je vrijednost stupca odjela 'Prodaja'.
U relacijskim bazama podataka podaci su često raspoređeni u više tablica. Proces kombiniranja redaka iz dvije ili više tablica na temelju povezanog stupca između njih poznat je kao spajanje. Najčešća operacija spajanja je INNER JOIN , koja vraća retke kada postoji barem jedno podudaranje u obje tablice.
Primjer:
SELECT zaposlenih.ime, odjela.ime FROM zaposlenika INNER JOIN odjela ON zaposlenih.odjela_id = departments.id;
Ova naredba pridružuje tablice zaposlenika i odjela na temelju podudarnih stupaca department_id i id , te odabire stupce imena iz obje tablice.
SQL omogućuje grupiranje redaka koji imaju iste vrijednosti u određenim stupcima u skupne podatke, na primjer, brojanje broja zaposlenika u svakom odjelu. To se postiže pomoću naredbe GROUP BY . Primjer upita mogao bi izgledati ovako:
SELECT odjel, BROJ(*) KAO broj_zaposlenih FROM zaposlenika GROUP BY odjel;
Ova naredba grupira retke u tablici zaposlenika prema stupcu odjela i broji broj zaposlenika u svakom odjelu.
SQL nudi nekoliko agregatnih funkcija koje rade na skupu vrijednosti i vraćaju jednu vrijednost. Uobičajeno korištene agregatne funkcije uključuju:
Na primjer, da biste pronašli maksimalnu plaću u tablici zaposlenika , mogli biste upotrijebiti sljedeći upit:
SELECT MAX(plaća) FROM zaposlenika;
Transakcija u SQL-u je niz jedne ili više SQL naredbi koje se izvode kao jedna cjelina. Transakcije osiguravaju integritet baze podataka pridržavajući se ACID svojstava (Atomicity, Consistency, Isolation, Durability). Osnovna transakcija može uključivati:
Za poboljšanje izvedbe pretraživanja i upita na tablici baze podataka, SQL koristi indekse . Indeks stvara internu tablicu pretraživanja koju sustav za upravljanje bazom podataka može koristiti za ubrzavanje dohvaćanja podataka. Jednostavno rečeno, indeks u tablici baze podataka funkcionira slično kao indeks u knjizi.
Stvaranje indeksa može se izvršiti korištenjem naredbe CREATE INDEX , na primjer:
CREATE INDEX idx_employee_name ON zaposlenici(ime);
Ova naredba stvara indeks na stupcu imena u tablici zaposlenika , što može učiniti filtriranje ili sortiranje upita po imenu zaposlenika učinkovitijim.
Ograničenja u SQL-u su pravila koja se primjenjuju na podatke u tablicama. Koriste se kako bi se osigurala točnost i pouzdanost podataka unutar baze podataka. Uobičajena ograničenja uključuju:
SQL je moćan alat za upravljanje relacijskim bazama podataka. Omogućuje strukturiran način postavljanja upita, umetanja, ažuriranja i brisanja podataka, osiguravajući da korisnici mogu učinkovito komunicirati s bazom podataka. Razumijevanje osnovnih SQL naredbi, kako manipulirati podacima i tablicama i kako koristiti napredne značajke poput transakcija i indeksa može uvelike poboljšati upravljanje i performanse baze podataka. Savladavanjem ovih koncepata korisnici baze podataka i programeri mogu osigurati integritet, izvedbu i pouzdanost svojih podataka i aplikacija.