Da se podsetimo prvo kakva su opšta sintaksna pravila u SQL-u:

  • komande SQL-a se mogu pisati i velikim i malim slovima
  • logički se komponente odvajaju zarezom
  • bitno je kakvim slovima su zapisani podaci koji su u bazi podataka
  • unosi se tačka-zarez na kraju iskaza (ovaj interpunkcijski znak govori SQL programu da je upit završen)


Funkcije

SQL podržava rad sa funkcijama. Najčešća podela SQL funkcija je

  1. Funkcije za rad sa  stringovima
  2. Funkcije vezane za datum i vreme
  3. Numeričke ili aritmetičke funkcije,
  4. Agregatne funkcije

******************

LINK - gde možete videti koje sve fiunkcije možete da koristite u MySQL-u (MySQL Functions), ili kod druge verzije - koje sve funkcije postoje kod SQL Servera (SQL Server Functions),

Ovde radimo samo neke, a ostale pogledajte na linkovima gore

Pogledajte primere kako se koriste neke od ovih funkcija u video lekcijama koje slede iza ove lekcije

******************

Funkcije za rad sa stringovima

Postoji veliki broj ugrađenih funkcija za rukovanje stringovima. Ovde ćemo navesti samo neke:

SUBSTRING je funkcija koja kao rezultat vraća deo stringa koji prosledimo kao prvi parametar. Sintaksa je SUBSTRING(string, početak, dužina) gde je prvi parametar string. Drugi parametar označava poziciju u prvom parametru od koje počinje odsecanje karaktera, a treći parametar predstavlja dužinu željenog dela stringa koji smo prosledili kao prvi parametar.

Na osnovu opisanog ponašanja funkcije možemo zaključiti da je rezultat sledećeg upita:

SELECT SUBSTRING('Kefalica',2,3);

niz karaktera efa.

LEFT i RIGHT su funkcije veoma slične prethodnoj, razlika je u tome što se prilikom poziva izostavlja parametar koji označava početak pošto je on podrazumevan. Dakle, sintaksa je LEFT(string, dužina), odnosno RIGHT(string, dužina). Funkcija LEFT vraća niz prvih n karaktera iz stringa, gde je n dužina koju prosleđujemo kao drugi parametar. Analogno tome, funkcija RIGHT vraća niz poslednjih n karaktera iz stringa, gde je n dužina koju prosleđujemo kao drugi parametar.
Sledeća dva upita:

SELECT LEFT('SPAVALO',3);
 
SELECT RIGHT('SPAVALO',3);

vraćaju KEF i ALO kao rezultate.

LTRIM i RTRIM su funkcije kojima se sa početka ili kraja stringa uklanjaju prazna mesta. Sintaksa je veoma jednostavna: LTRIM(string) i RTRIM(string).

REPLACE funkcijom se u okviru stringa jedan string menja drugim. Ukoliko ovo zvuči zbunjujuće, najbolje da prvo pogledamo sintaksu, a zatim i primer. Sintaksa je: REPLACE (osnovni string, string koji se menja, string koji je zamena). Dakle, u okviru osnovnog stringa se traži string koji želimo da zamenimo i menja se željenim stringom. Nakon primera će sve biti jasnije. Rezultat upita

SELECT REPLACE('SQLKEFALO','KEF','SMET'

je string SQLSMETALO.

Funkcijom UPPER se mala slova u stringu pretvaraju u velika, dok se funkcijom LOWER velika slova pretvaraju u mala. Sintaksa je u ovom slučaju veoma jednostavna: UPPER(string) i LOWER(string).

SPACE funkcija kao rezultat vraća onoliko praznih mesta koliko prosledimo kao parametar. Sintaksa je SPACE(broj) gde parametar broj predstavlja praznih mesta.

CONCAT funkciju koristimo za povezivanje 2 ili više niza karaktera u jedan niz (string). To postižemo sintaksom: CONCAT(string1, string2, string3 … stringN), gde svaki od parametara predstavlja niz karaktera. Neophodno je proslediti najmanje 2 parametra, u suprotnom će se javiti greška. Pre povezivanja parametara, vrši se njihova implicitna konverzija u string. NULL vrednosti se implicitno konvertuju u prazan string.


Numeričke funkcije:

dostupne su osnovne aritmetičke operacije: sabiranje, oduzimanja, množenje i deljenje. Tako na primer, ako izvršimo upit SELECT 10+20; , dobićemo rezultat 30. Pored ovih osnovnih aritmetičkih operacija, postoji i funkcija MOD() čijom se upotrebom dobija ostatak pri deljenju dva broja.

Neke od numeričkih funkcija koje se najčešće koriste su:

  • SIGN() – vraća znak broja
  • ABS() – vraća apsolutnu vrednost broja
  • LOG10() – izračunava logaritam osnove 10 nekog broja
  • LOG() – izračunava prirodni logaritam nekog broja
  • POW() ili POWER() – koristi se za stepenovanje brojeva
  • SQRT() – vraća koren broja
  • SIN(), COS(), TAN() – izračunavaju sinus, kosinus i tangens broja
  • ASIN(), ACOS(), ATAN() - izračunavaju arkus sinus, arkus kosinus i arkus tangens broja
  • DEGREES() – prevodi radijane u stepene
  • RADIANS() – prevodi stepene u radijane
  • ROUND() – funkcija zaokruživanja


Funkcije vezane za datum i vreme

Imamo skup veoma korisnih funkcija za rad sa datumom i tačnim vremenom. Neke od njih su:

  • DAYOFWEEK() – vraća indeks dana u sedmici. Prvi dan u sedmici je nedelja sa indeksom 1, a poslednji dan u sedmici je subota sa indaksom 7.
  • WEEKDAY() – kao i DAYOFWEEK vrača indeks dana u sedmici, s tim što je ovde prvi dan u sedmici ponedeljak sa indeksom 0, a poslednji dan u sedmici je nedelja sa indeksom 6.
  • DAYOFMONTH() – vraća indeks dana u mesecu, koji je u opsegu od 1 do 31.
  • DAYOFYEAR() – vraća indeks dana u godini, koji je u opsegu od 1 do 366.
  • DAYNAME() – vraća naziv dana u sedmici za konkretan datum.
  • MONTH() – vraća redni broj meseca u godini za konkretan datum.
  • MONTHNAME() – vraća naziv meseca za konkretan datum.
  • WEEK() – vraća redni broj sedmice u godini za konkretan datum.
  • HOUR(), MINUTE(), SECOND() – vraćaju sate, minute i sekunde za konkretno vreme
  • DATE_ADD() – sabira zadati datum sa nekim vremenskim intervalom.
  • DATE_SUBB() – oduzima od zadatog datuma neki vremenski interval.
  • CURDATE() – vraća važeći datum u formatu YYYY-MM-DD.
  • CURTIME() – vraćaju tačno vreme u formatu HH:MM:DD.

Pogledajte primere kako se koriste neke od ovih funkcija u video lekcijama koje slede iza ove lekcije


Za agregatne funkcije pogledajte sledeće:

Funkcije agregacije

Kao posebnu kategoriju obično se izdvajaju funkcije koje obavljaju agregaciju, mada se one mogu shvatiti i kao kombinacija znakovnih i matematičkih funkcija. Funkcije agregacije su dobile naziv po tome što vrše agregaciju rezultata upita. Korišćenje ovih funkcija je jednostavno, pošto se navode u listi kolona SELECT klauzule koje se prikazuju. U najosnovnijem obliku agregatne funkcije vraćati će skalarnu vrijednost, a sintaksa je sledeća:

SELECT AgregatnaFunkcija(atribut) FROM tabela

Korišćenje ovih funkcija je jednostavno, pošto se navode u listi kolona SELECT klauzule koje se prikazuju.

Najčešće se koriste:

Daćemo dva primera za ilustraciju funkcija agregacije

1. Napiši upit koji određuje maksimalnu, minimalnu, prosečnu i ukupnu platu svih radnika:

 SELECT MAX(Plata) AS MaxPlata, 
MIN(Plata) AS MinPlata,
AVG(Plata) AS ProsPlata,
SUM(Plata) AS UkPlata
FROM RADNIK;

Pr 2. Pomoću funkcije COUNT odredi broj vrsta u rezultujućoj tabeli.

SELECT COUNT(*) AS PlataSaBonusom  
FROM RADNIK;

******************

pogledajte prezentaciju / pdf - Agregatne funkcije

******************

LINK - gde možete videti koje sve fiunkcije možete da koristite u MySQL-u (MySQL Functions), ili kod druge verzije - koje sve funkcije postoje kod SQL Servera (SQL Server Functions),

Ovde radimo samo neke, a ostale pogledajte na linkovima gore

Pogledajte primere kako se koriste neke od ovih funkcija u video lekcijama koje slede iza ove lekcije

******************


Last modified: Thursday, 5 November 2020, 5:13 PM