4 koje se funkcije koriste u sql jeziku. Funkcije SQL niza - Primjeri upotrebe. SELECT sintaksa izraza i redoslijed obrade
U ovom članku možete pogledati vrste funkcija u jeziku SQL. Funkcije mogu biti agregatne ili skalarne. Počnimo...
RAČUNATI()
RAČUNATI()- funkcija koja vraća broj zapisa (redova) tablice. Pisanje funkcije koja navodi stupac vratit će broj zapisa u tom određenom stupcu, isključujući NULL zapise. Sintaksa funkcije:
COUNT(naziv_stupca);
Snimanje funkcije s maskom "*" vratit će se broj svih zapisa u tablici. Sintaksa:
RAČUNATI(*);
Razmotrite primjere. Imamo sljedeću tablicu Sveučilišta:
iskaznica | Naziv Sveučilišta | Studenti | fakulteti | profesori | mjesto | mjesto |
1 | Državno nacionalno istraživačko sveučilište Perm | 12400 | 12 | 1229 | Perm | psu.ru |
2 | Državno sveučilište u Sankt Peterburgu | 21300 | 24 | 13126 | Sankt Peterburg | spbu.ru |
3 | Novosibirsko državno sveučilište | 7200 | 13 | 1527 | Novosibirsk | nsu.ru |
4 | Moskovsko državno sveučilište | 35100 | 39 | 14358 | Moskva | msu.ru |
5 | Viša ekonomska škola | 20335 | 12 | 1615 | Moskva | hse.ru |
6 | Uralsko federalno sveučilište | 57000 | 19 | 5640 | Jekaterinburg | urfu.ru |
7 | Nacionalno istraživačko nuklearno sveučilište | 8600 | 10 | 936 | Moskva | mephi.ru |
Primjer 1. Prikažite broj zapisa u tablici pomoću funkcije COUNT:
ODABIR COUNT(*)
SA sveučilišta; // izlazi 7
Primjer 2. Pronađite broj sveučilišta u Moskvi pomoću funkcije COUNT:
SELECT COUNT(*) FROM Universities WHERE Lokacija = "Moskva"; // izlazi 3
AVG()
AVG()- funkcija koja vraća prosječnu vrijednost stupca. Ova funkcija je primjenjiva samo za numeričke stupce. Sintaksa:
AVG(naziv_stupca);
Razmotrimo primjer. Uzmimo našu tablicu Sveučilišta. Primjer. Korištenje funkcije AVG za pronalaženje prosječnog broja studenata (studenta) svih sveučilišta:
ODABIR AVG (studente) SA sveučilišta; // izlazi 23133
MIN()
MIN()- funkcija koja vraća minimalnu vrijednost stupca. Funkcija ima sljedeću sintaksu:
MIN(naziv_stupca);
Razmotrimo primjer. Uzmimo našu tablicu Sveučilišta. Primjer. Pomoću funkcije MIN pronađite minimalnu vrijednost stupca Professores:
ODABIR MIN (profesore) SA sveučilišta; // izlaz 936
MAX()
MAX()- funkcija koja vraća maksimalnu vrijednost stupca tablice. Funkcija ima sljedeću sintaksu:
MAX(naziv_stupca);
Razmotrimo primjer. Uzmimo našu tablicu Sveučilišta. Primjer. Pomoću funkcije MAX pronaći maksimalnu vrijednost stupca učenika:
ODABIR MAX (Studenata) SA sveučilišta; // ispisuje 57000
IZNOS()
IZNOS()- funkcija koja vraća zbroj vrijednosti stupca tablice. Koristi se samo za numeričke stupce. Sintaksa funkcije:
SUM(izraz);
Parametar SVI- je zadana postavka. Razmatra se zbroj svih linija. Prilikom određivanja parametra RAZLIČIT- Računaju se samo jedinstvene vrijednosti.
Razmotrite primjere. Uzmimo našu tablicu Sveučilišta. Primjer 1. Pomoću funkcije SUM pronađite broj studenata (studenta) svih sveučilišta u tablici:
ODABIR SUM(studente) SA sveučilišta; // izlazi 161935
Primjer 2. Koristeći funkciju SUM, izbrojite jedinstvene vrijednosti stupca Fakulteti:
ODABIR ZBIR (RAZLIČITIH fakulteta) od sveučilišta; // prikazuje 117 (postoje 2 identična unosa u stupcu Fakulteti, pod ID 1 i 5. Vrijednost stupca pod ID 5 se ne zbraja.)
KRUG()
KRUG()- funkcija za zaokruživanje decimalnih brojeva. Radi samo s brojčanim stupcima ili proizvoljnim realnim brojevima. Sintaksa funkcije:
ROUND(izraz, duljina);
izraz- naziv stupca ili stupaca, kao i stvarni broj. duljina- Određuje preciznost zaokruživanja broja.
Razmotrimo primjer. Uzmimo tablicu planeta:
iskaznica | PlanetName | Radius | Sunčana sezona | Godina otvaranja | Imati prstenje | otvarač |
1 | Mars | 3396 | 687.58 | 1659 | Ne | Christiaan Huygens |
2 | Saturn | 60268 | 10759.22 | - | Da | - |
3 | Neptun | 24764 | 60190.91 | 1846 | Da | John Couch Adams |
4 | Merkur | 2439 | 115.88 | 1631 | Ne | Nikola Kopernik |
5 | Venera | 6051 | 243.56 | 1610 | Ne | Galileo Galilei |
Primjer. Koristite funkciju ROUND da biste zaokružili stupac SunSeason na jednu decimalu:
ODABIR KRUG (Sunčana sezona, 1) IZ Planeta;
UCASE()
UCASE()- funkcija koja vraća vrijednosti stupca ili stupaca velikim slovima. U MS DBMS-u SQL Server analog UCASE() je UPPER funkcija s istom sintaksom:
UCASE(naziv_stupca)
Razmotrimo primjer. Uzmimo našu tablicu Planeta. Primjer. Ispišite imena planeta velikim slovima koji nemaju prstenove pomoću funkcije UCASE:
SELECT UCASE(PlanetName) FROM Planets WHERE HavingRings = "Ne";
LCASE()
LCASE() je funkcija koja vraća vrijednosti stupca ili stupaca malim slovima. U MS SQL Server DBMS, analog SQL LCASE() operatora je funkcija LOWER s istom sintaksom:
LCASE(naziv_stupca);
Razmotrimo primjer. Uzmimo našu tablicu Planeta. Primjer. Pomoću funkcije LCASE ispišite imena planeta koji imaju prstenove malim slovima:
SELECT LCASE(PlanetName) FROM Planets WHERE HavingRings = "Da";
LEN()
LEN()- funkcija koja vraća duljinu vrijednosti u polju zapisa. Funkcija isključuje razmake na kraju iz brojanja. Sintaksa:
LEN(naziv_stupca);
Razmotrimo primjer. Uzmimo našu tablicu Planeta. Primjer. Ispišite otkrića planeta (Otvarač) i duljinu imena planeta koji je on otkrio, koristeći LEN funkciju:
SELECT Opener, LEN(PlanetName) FROM Planets;
SREDINA()
SREDINA()- funkcija koja prikazuje određeni broj znakova u tekstualnom polju tablice. Sintaksa funkcije:
MID(naziv_stupca,početak[,dužina]);
Parametar početak specificira poziciju početnog znaka. Parametar duljina postavlja broj znakova za izlaz počevši od pozicije navedene u početnom parametru.
Razmotrimo primjer. Uzmimo naš stari sveučilišni stol. Primjer. Ispišite prva 3 znaka naziva grada (Lokacija) pomoću funkcije MID:
ODABIR SREDINA (Lokacija, 1, 3) SA sveučilišta;
SADA()
SADA()- funkcija koja vraća vrijeme i datum sustava. Sintaksa funkcije:
Razmotrimo primjer. Uzmimo naš stari sveučilišni stol. Primjer. Navedite koliko studenata trenutno studira na svakom sveučilištu. pomoću funkcije SADA:
SELECT UniversityName, Students, NOW() AS CurDate FROM Universities;
Da biste konsolidirali materijal, izvedite primjer svake funkcije neovisno. Ako imate bilo kakvih pitanja, pišite u komentarima i sigurno ću vam odgovoriti.
Osnovne SQL naredbe koje bi svaki programer trebao znati
SQL ili Structured Query Language (strukturirani jezik upita) dizajniran je za upravljanje podacima u sustavu relacijske baze podataka (RDBMS). Ovaj članak će pokriti najčešće korištene SQL naredbe s kojima bi svaki programer trebao biti upoznat. Ovaj materijal je idealan za one koji žele nadopuniti svoje znanje o SQL-u prije razgovora za posao. Da biste to učinili, analizirajte primjere navedene u članku i zapamtite da ste prošli kroz baze podataka u parovima.
Imajte na umu da neki sustavi baza podataka zahtijevaju točku i zarez na kraju svake izjave. Točka-zarez je standardni pokazivač na kraj svake izjave u SQL-u. Primjeri koriste MySQL, tako da je točka-zarez obavezna.
Primjer postavljanja baze podataka
Stvorite bazu podataka kako biste pokazali kako naredbe rade. Da biste radili, morat ćete preuzeti dvije datoteke: DLL.sql i InsertStatements.sql . Nakon toga otvorite terminal i prijavite se na MySQL konzolu sljedećom naredbom (članak pretpostavlja da je MySQL već instaliran na sustavu):
MySQL -u korijen -p
Zatim unesite lozinku.
Pokrenite sljedeću naredbu. Nazovimo bazu podataka "sveučilište":
KREIRATI BAZU PODATAKA sveučilište; američko sveučilište; IZVOR Možda ćete morati stvoriti ograničenja za određene stupce u tablici. Prilikom izrade tablice možete postaviti sljedeća ograničenja: Možete navesti više od jednog primarnog ključa. U ovom slučaju dobivate složeni primarni ključ. Napravite tablicu "instruktora": CREATE TABLE instruktor (ID CHAR(5), ime VARCHAR(20) NOT NULL, dept_name VARCHAR(20), plaća NUMERIC(8,2), PRIMARNI KLJUČ (ID), STRANI KLJUČ (dept_name) REFERENCE odjel(dept_name)); Možete vidjeti različite informacije (vrstu vrijednosti, ključ ili ne) o stupcima tablice sljedećom naredbom: OPISATI Kada dodajete podatke u svaki stupac tablice, ne morate navoditi nazive stupaca. UMETNUTI U SELECT se koristi za dobivanje podataka iz određene tablice: IZABERI Sljedeća naredba može prikazati sve podatke iz tablice: ODABIR * IZ Stupci tablice mogu sadržavati duplicirane podatke. Upotrijebite SELECT DISTINCT da biste dobili samo neduplicirane podatke. ODABIR DISTINCT Može se koristiti ključna riječ WHERE u SELECT za određivanje uvjeta u upitu: IZABERI U zahtjevu možete navesti sljedeće uvjete: Isprobajte sljedeće naredbe. Obratite pažnju na uvjete navedene u GDJE: SELECT * FROM course WHERE dept_name='Comp. Sci.'; ODABIR * IZ kolegija WHERE bodova>3; SELECT * FROM course WHERE dept_name="Comp. Sci." I bodova>3; Operator GROUP BY često se koristi sa agregatnim funkcijama kao što su COUNT , MAX , MIN , SUM i AVG za grupiranje izlaznih vrijednosti. IZABERI Prikažimo broj kolegija za svaki fakultet: SELECT COUNT(course_id), dept_name FROM kolegija GROUP BY dept_name; Ključna riječ HAVING dodana je u SQL jer se WHERE ne može koristiti sa agregatnim funkcijama. IZABERI Prikažimo popis fakulteta koji imaju više od jednog kolegija: SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1; ORDER BY se koristi za sortiranje rezultata upita uzlaznim ili silaznim redoslijedom. ORDER BY sortira uzlaznim redoslijedom osim ako nisu navedeni ASC ili DESC. IZABERI Prikažimo popis kolegija uzlaznim i silaznim redoslijedom prema broju bodova: ODABIR * IZ tečaja REDUS PO bodovima; ODABIR * IZ tečaja RED BY bodovima DESC; BETWEEN se koristi za odabir vrijednosti podataka iz određenog raspona. Mogu se koristiti numeričke i tekstualne vrijednosti, kao i datumi. IZABERI Prikažimo popis instruktora čija je plaća veća od 50.000, ali manja od 100.000: ODABIR * OD instruktora GDJE plaća IZMEĐU 50000 I 100000; Operator LIKE koristi se u WHERE za određivanje uzorka za traženje slične vrijednosti. Postoje dva besplatna operatora koja se koriste u LIKE: Prikažimo popis kolegija čiji nazivi sadrže "do" i popis kolegija čiji nazivi počinju s "CS-": SELECT * FROM kolegija WHERE naslov LIKE '%to%'; SELECT * FROM course WHERE course_id LIKE "CS-___"; Pomoću IN možete odrediti više vrijednosti za klauzulu WHERE: IZABERI Prikažimo popis učenika iz smjera Comp. prirodoslovlja, fizike i elek. Engleski: SELECT * FROM student WHERE dept_name IN('Comp. Sci.', 'Physics', 'Elec. Eng.'); JOIN se koristi za povezivanje dvije ili više tablica koristeći zajedničke atribute unutar njih. Slika ispod pokazuje razne načine spaja u SQL-u. Obratite pažnju na razliku između lijevog vanjskog spoja i desnog vanjskog spoja: IZABERI Ovdje je popis svih tečajeva i odgovarajućih informacija o odjelima: SELECT * IZ tečaja PRIDRUŽITE se odjelu NA course.dept_name=department.dept_name; Ovdje je popis svih potrebnih tečajeva i pojedinosti o njima: SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN course ON prereq.course_id=course.course_id; Prikažimo popis svih tečajeva, bez obzira na to jesu li obavezni ili ne: SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq DESNO VANJSKO PRIDRUŽENJE kolegiju NA prereq.course_id=course.course_id; Pogled je virtualna SQL tablica stvorena kao rezultat izvršavanja izraza. Sadrži retke i stupce i vrlo je sličan normalnoj SQL tablici. Prikaz uvijek prikazuje najnovije informacije iz baze podataka. Kreirajmo pogled koji se sastoji od tečajeva s 3 boda: Ove funkcije se koriste za dobivanje zbirnog rezultata koji se odnosi na dotične podatke. Sljedeće su najčešće korištene agregatne funkcije: Ugniježđeni potupiti su SQL upiti koji uključuju izraze SELECT , FROM i WHERE ugniježđene unutar drugog upita. Pronađimo predmete koji su se predavali u jesen 2009. i u proljeće 2010.: ODABIR DISTINCT course_id FROM section WHERE semester = 'Jesen' I year= 2009 AND course_id IN (ODABIR course_id FROM section WHERE semester = 'Proljeće' I year= 2010); Funkcije su posebna vrsta naredbi u SQL skupu naredbi, a svaki dijalekt ima svoju implementaciju skupa naredbi. Kao rezultat, možemo reći da su funkcije naredbe koje se sastoje od jedne riječi i vraćaju jednu vrijednost. Vrijednost funkcije može ovisiti o ulaznim parametrima, kao što je u slučaju funkcije koja izračunava prosjek popisa vrijednosti u bazi podataka. Međutim, mnoge funkcije ne uzimaju nikakve ulazne parametre, na primjer, funkcija koja vraća trenutno vrijeme sustava je CURRENTJ1ME. ANSI standard podržava nekoliko korisnih značajki. Ovo poglavlje daje opis ovih funkcija, kao i Detaljan opis i primjeri za svaku platformu. Osim toga, svaka platforma ima dugačak popis vlastitih, internih funkcija koje nadilaze SQL standard. Ovo poglavlje pruža parametre i opise svih internih funkcija svake od platformi. Osim toga, većina platformi ima mogućnost stvaranja prilagođenih funkcija. Iza dodatne informacije za korisnički definirane funkcije, pogledajte "KREIRANJE/IZMJENA FUNKCIJA/POSTUPKA Izjave" postojati različiti putevi klasifikacije funkcija. Sljedeći pododjeljci opisuju važne razlike kako bi vam pomogli razumjeti kako značajke funkcioniraju. Funkcije mogu biti determinističke i nedeterminističke. Deterministička funkcija uvijek vraća isti rezultat za isti skup ulaznih vrijednosti. Nedeterminističke funkcije mogu vratiti različite rezultate na različite pozive, čak i ako su im dane iste ulazne vrijednosti. Zašto je toliko važno da s istim ulazni parametri dobili iste rezultate? Ovo je važno jer definira način na koji se funkcije koriste u pogledima, korisnički definiranim funkcijama i pohranjenim procedurama. Ograničenja se razlikuju na različitim platformama, ali ponekad se u tim objektima mogu koristiti samo determinističke funkcije. Na primjer, SQL Server može stvoriti indeks za izraz na stupcu, sve dok izraz ne sadrži nedeterminističke funkcije. Pravila i ograničenja razlikuju se od platforme do platforme, stoga molimo pogledajte dokumentaciju proizvođača kada koristite funkcije. Drugi način kategorizacije funkcija je njihova sposobnost da rade samo na jednom nizu, ili na zbirci vrijednosti, ili na skupovima nizova. Agregatne funkcije rade na zbirci vrijednosti i vraćaju jednu ukupnu vrijednost. Skalarne funkcije vraćaju jednu vrijednost, ovisno o skalarnim ulaznim argumentima. Neke skalarne funkcije, kao što je CURRENTJTIME, ne zahtijevaju argumente. Funkcije prozora mogu se smatrati sličnim funkcijama agregata po tome što mogu raditi na više redaka odjednom. Razlika je u tome kako su ti redovi specificirani. Agregatne funkcije rade na skupovima redaka navedenim u klauzuli GROUP BY. U slučaju prozorskih funkcija, skup redaka se specificira svaki put kada se funkcija pozove, i različite izazove funkcije unutar istog upita mogu raditi s različitim skupovima redaka. Nastavljamo s proučavanjem jezika SQL upita, a danas ćemo govoriti o tome SQL nizove funkcije. Pogledat ćemo osnovne i najčešće korištene nizove funkcije kao što su: DONJI, LTRIM, ZAMJENA i drugi, sve ćemo razmotriti, naravno, s primjerima. ODABIR naziv || prezime KAO FIO IZ stol Ili za odvajanje razmakom unesite oni. dvije okomite trake spajaju dva stupca u jedan, a da ih razdvojim razmakom, stavio sam razmak između njih ( može se koristiti bilo koji znak, kao što je crtica ili dvotočka) u apostrofima i u kombinaciji s dvije okomite crte ( Transact-SQL koristi + umjesto dvije okomite trake). Slijedi vrlo korisna funkcija, INITCAP- koji vraća vrijednost u nizu u kojem svaka riječ počinje velikim slovom i nastavlja se malim slovima. To je potrebno ako se ne pridržavate pravila za popunjavanje jednog ili drugog stupca i kako biste prikazali cijelu stvar Lijep pogled možete koristiti ovu funkciju, na primjer, u vašoj tablici postoje unosi u stupcu imena sljedećeg oblika: IVAN Ivanov ili Peter Petrov, koristite ovu funkciju. ODABIR INITCAP (ime) KAO FIO IZ tablice I dobijete to ovako. Slična je funkcija koja samo vraća sve velike znakove GORNJI. ODABIR GORNJE (ime) KAO FIO IZ tablice Pogledajmo inverznu funkciju. RPAD- radnja i sintaksa su isti kao i za LPAD, samo se znakovi s desne strane nadopunjuju ( u LPAD-u s lijeve strane). SELECT RPAD (ime, 20, "-") KAO naziv IZ tablice Sljedeća dolazi također u nekim slučajevima korisna funkcija, LTRIM- ova funkcija uklanja krajnje lijeve znakove koje odredite. Na primjer, imate stupac "grad" u vašoj bazi podataka, u kojem je grad označen kao "Moskva", a postoje i gradovi koji su naznačeni jednostavno kao "Moskva". Ali izvješće trebate prikazati samo u obliku "Moskva" bez "grada", ali kako to učiniti ako ima takvih i takvih? Vi samo navodite neku vrstu uzorka "g". a ako krajnji lijevi znakovi počinju s "r", onda ti znakovi jednostavno neće biti izlazni. ODABIR LTRIM (grad) KAO gorod IZ tablice Ova funkcija gleda znakove s lijeve strane, ako nema znakova prema obrascu na početku retka, onda vraća izvornu vrijednost ćelije, a ako ih ima, briše ih. Također, pogledajmo odmah inverznu funkciju. RTRIM– isto kao i LTRIM samo se znakovi traže na desnoj strani. Bilješka! U Transact-SQL-u, funkcije RTRIM i LTRIM uklanjaju razmake s desne i lijeve strane. Sada razmotrite tako zanimljivu funkciju kao ZAMIJENITI- vraća niz u kojem su sva podudaranja znakova zamijenjena vašim znakovima koje navedete. Za što se može koristiti npr. imate stupce u bazi podataka u kojima ima nekih znakova za razdvajanje, recimo "/". Na primjer, Ivan / Ivanov, a želite prikazati Ivan-Ivanov, a zatim napišite ODABIR ZAMJENA (naziv, "/", "-") IZ tablice i imat ćete zamjenu karaktera. Ova funkcija zamjenjuje samo potpuno podudaranje znakova, ako na primjer navedete "-", tj. tri crtice, tražit će samo tri crtice i neće zamijeniti svaku pojedinačnu crticu, za razliku od sljedeće funkcije. PREVEDI je funkcija niza koja zamjenjuje sve znakove u nizu znakovima koje navedete. Na temelju naziva funkcije možete pretpostaviti da se radi o feedu cijelog reda. Razlika između ove funkcije i REPLACE je u tome što zamjenjuje svaki znak koji navedete, tj. imate tri znaka, recimo abc i c koristeći TRANSLATE Možete ga zamijeniti s abc, tako da imate a=a, b=b, c=c, a po ovom principu će se zamijeniti sva podudaranja znakova. A ako ste zamijenili pomoću REPLACE, tada ste tražili samo potpuno podudaranje znakova abc koji se nalaze u nizu. SUBSTR – zadanu funkciju, vraća samo raspon znakova koje navedete. Drugim riječima, recimo niz od 10 znakova, ali ne trebate svih deset, ali recimo da trebate samo 3-8 ( trećeg do osmog). S ovom funkcijom to možete jednostavno učiniti. Na primjer, imate neki identifikator fiksne duljine u bazi podataka (kao: AA-BB-55-66-CC) i svaka kombinacija znakova nešto znači. I u jednom lijepom trenutku vam je rečeno da prikažete samo 2 i 3 kombinacije znakova, za to napišete upit sljedećeg oblika. SELECT SUBSTR (ident, "4", "8") IZ tablice oni. ispisujemo sve znakove od 4 do 8, a nakon ovog upita dobit ćete ovo: Sljedeća funkcija također može biti korisna, a to je DUŽINA- koji jednostavno broji broj znakova u nizu. Na primjer, trebate saznati koliko je znakova u svakoj ćeliji stupca "ime" dopušteno, tablica je sljedeća. nakon ovog zahtjeva dobit ćete ovo. Ovdje smo s vama i ispitali smo glavne funkcije SQL nizova. U sljedećim člancima nastavit ćemo proučavanje SQL-a. Naučimo sumirati. Ne, ovo nisu rezultati učenja SQL-a, već rezultati vrijednosti stupaca tablica baze podataka. SQL agregatne funkcije rade na vrijednostima stupca kako bi proizvele jednu vrijednost rezultata. Najčešće korištene SQL agregatne funkcije su SUM, MIN, MAX, AVG i COUNT. Postoje dva slučaja u kojima se trebaju koristiti agregatne funkcije. Prvo, agregatne funkcije koriste se same i vraćaju jednu vrijednost rezultata. Drugo, agregatne funkcije se koriste s klauzulom SQL GROUP BY, odnosno s grupiranjem po poljima (stupcima) za dobivanje rezultirajućih vrijednosti u svakoj grupi. Razmotrimo prvo slučajeve korištenja agregatnih funkcija bez grupiranja. SQL SUM funkcija vraća zbroj vrijednosti stupca u tablici baze podataka. Može se primijeniti samo na stupce čije su vrijednosti brojevi. SQL upiti da biste dobili rezultatski zbroj, počnite ovako: ODABIR ZBOR (NAZIV STUPCA) ... Nakon ovog izraza slijedi FROM (TABLE_NAME), a zatim se uvjet može specificirati pomoću klauzule WHERE. Osim toga, DISTINCT se može dodati nazivu stupca kako bi se naznačilo da će se uzeti u obzir samo jedinstvene vrijednosti. Prema zadanim postavkama, sve vrijednosti se uzimaju u obzir (za to možete posebno navesti ne DISTINCT, već SVE, ali riječ SVE nije obavezna). Primjer 1 Postoji baza podataka tvrtke s podacima o njezinim odjelima i zaposlenicima. Tablica Osoblje također ima stupac s podacima o plaćama zaposlenika. Izbor iz tablice ima sljedeći oblik (za uvećanje slike kliknite na nju lijevom tipkom miša): Da biste dobili zbroj svih plaća, koristite sljedeći upit: ODABERITE ZUM (Plaća) IZ Osoblje Ovaj će upit vratiti vrijednost 287664,63. A sada . U vježbama već počinjemo komplicirati zadatke, približavajući ih onima koji se susreću u praksi. SQL MIN funkcija također radi na stupcima čije su vrijednosti brojevi i vraća minimum svih vrijednosti u stupcu. Ova funkcija ima sintaksu sličnu onoj kod funkcije SUM. Primjer 3 Baza podataka i tablica su iste kao u primjeru 1. Potrebno je saznati minimalnu plaću za zaposlenike odjela broj 42. Da biste to učinili, napišite sljedeći upit: Upit će vratiti vrijednost 10505,90. I opet vježba za samoopredjeljenje. U ovoj i nekim drugim vježbama trebat će vam ne samo tablica osoblja, već i tablica organizacije koja sadrži podatke o odjelima tvrtke: Primjer 4 Tablica Org dodaje se tablici Osoblje, koja sadrži podatke o odjelima tvrtke. Ispišite minimalni broj godina koje je jedan zaposlenik radio u odjelu koji se nalazi u Bostonu. Funkcija SQL MAX radi slično i ima sličnu sintaksu, koja se koristi kada želite odrediti maksimalnu vrijednost među svim vrijednostima stupca. Primjer 5 Potrebno je saznati maksimalnu plaću zaposlenika odjela broj 42. Da biste to učinili, napišite sljedeći upit: Upit će vratiti vrijednost 18352,80 Vrijeme je da vježbe za samoopredjeljenje. Primjer 6 Opet radimo s dva stola - Staff i Org. Prikaz naziva odjela i maksimalnog iznosa provizija koje prima jedan zaposlenik u odjelu koji pripada grupi odjela (Odjel) Istočni. Koristiti JOIN (spajanje tablica) . Ono što je rečeno o sintaksi za prethodno opisane funkcije vrijedi i za SQL AVG funkciju. Ova funkcija vraća prosjek svih vrijednosti u stupcu. Primjer 7 Baza podataka i tablica su iste kao u prethodnim primjerima. Neka je potrebno saznati prosječni radni staž zaposlenika odjela broj 42. Da bismo to učinili, pišemo sljedeći upit: Rezultat će biti 6,33 Primjer 8 Radimo s jednim stolom - Osoblje. Prikažite prosječnu plaću zaposlenika s iskustvom od 4 do 6 godina. SQL COUNT funkcija vraća broj zapisa u tablici baze podataka. Ako u upitu navedete SELECT COUNT(COLUMNAME) ..., tada će rezultat biti broj zapisa bez uzimanja u obzir onih zapisa u kojima je vrijednost stupca NULL (nedefinirana). Ako koristite zvjezdicu kao argument i pokrenete upit SELECT COUNT(*) ..., rezultat će biti broj svih zapisa (redova) u tablici. Primjer 9 Baza podataka i tablica su iste kao u prethodnim primjerima. Želite znati broj svih zaposlenika koji primaju provizije. Broj zaposlenika čije vrijednosti stupca Comm nisu NULL vratit će sljedeći upit: ODABERITE BROJ (Comm) IZ osoblja Rezultat će biti vrijednost 11. Primjer 10 Baza podataka i tablica su iste kao u prethodnim primjerima. Ako želite znati ukupan broj zapisa u tablici, upotrijebite upit sa zvjezdicom kao argument funkciji COUNT: ODABERITE BROJ (*) IZ osoblja Rezultat će biti vrijednost 17. Sljedeći vježba za samoopredjeljenje trebate koristiti podupit. Primjer 11. Radimo s jednim stolom - Osoblje. Prikažite broj zaposlenih u odjelu Plains. Pogledajmo sada korištenje agregatnih funkcija zajedno sa klauzulom SQL GROUP BY. SQL GROUP BY klauzula se koristi za grupiranje rezultirajućih vrijednosti po stupcima u tablici baze podataka. Stranica ima lekcija posvećena ovom operateru zasebno . Primjer 12. Postoji baza podataka portala oglasa. Ima tablicu Oglasi koja sadrži podatke o oglasima koji su poslani za tjedan. Stupac Kategorija sadrži podatke o velikim kategorijama oglasa (primjerice Nekretnine), a stupac Dijelovi sadrži podatke o manjim dijelovima koji su uključeni u kategorije (na primjer, dijelovi Apartmani i Vile su dijelovi kategorije Nekretnine). Stupac Jedinice sadrži podatke o broju poslanih oglasa, a stupac Novac iznos novca zarađen za slanje oglasa. Koristeći klauzulu SQL GROUP BY, pronađite iznos novca generiran slanjem oglasa u svakoj kategoriji. Pišemo sljedeći upit: ODABERITE kategoriju, SUM (novac) KAO novac IZ oglasa GRUPA PO Kategoriji Primjer 13 Baza podataka i tablica su iste kao u prethodnom primjeru. Pomoću klauzule SQL GROUP BY saznajte koji dio svake kategorije ima najviše oglasa. Pišemo sljedeći upit: ODABERITE kategoriju, dio, MAX (jedinice) KAO maksimum IZ oglasa GRUPE PO kategoriji Rezultat će biti sljedeća tablica: Ukupne i pojedinačne vrijednosti mogu se dobiti u jednoj tablici kombiniranje rezultata upita pomoću operatora UNION . Relacijske baze podataka i SQL jezikNaredbe baze podataka
1. Pregledajte dostupne baze podataka
PRIKAŽI BAZE PODATAKA; 2. Napravite novu bazu podataka
KREIRATI BAZU PODATAKA; 3. Odabir baze podataka za korištenje
KORISTITI 4. Uvezite SQL naredbe iz .sql datoteke
IZVOR 5. Brisanje baze podataka
ISPUSTI BAZU PODATAKA Rad sa tablicama
6. Pregledajte tablice dostupne u bazi podataka
PRIKAŽI TABLE; 7. Napravite novu tablicu
STVORI TABLU Ograničenja integriteta pri korištenju CREATE TABLE
Primjer
8. Podaci o tablici
9. Dodavanje podataka u tablicu
UMETNUTI U 10. Ažurirajte podatke tablice
AŽURIRAJ 11. Brisanje svih podataka iz tablice
IZBRIŠI IZ 12. Brisanje tablice
ISPUSTI STOL Naredbe za kreiranje upita
13. ODABIR
14. ODABIR DISTINCT
15. GDJE
Primjer
16. GRUPA PO
Primjer
17. IMATI
Primjer
18. NARUČITE PO
Primjer
19. IZMEĐU
Primjer
20.LIKE
IZABERI Primjer
21. IN
Primjer
22. PRIDRUŽITE SE
Primjer 1
Primjer 2
Primjer 3
23 Pogled
Stvaranje
STVORI POGLED Uklanjanje
ISPUSTI POGLED Primjer
24. Funkcije agregata
25. Ugniježđeni podupiti
Primjer
Vrste funkcija
Determinističke i nedeterminističke funkcije
Agregatne i skalarne funkcije
Funkcije prozora
INITCAP funkcija
GORNJA funkcija
RPAD funkcija
Ivan—————-
Sergej-----
LTRIM funkcija
RTRIM funkcija
ZAMJENA funkcija
Funkcija TRANSLATE
SUBSTR funkcija
Funkcija LENGTH - duljina niza
4
6
7
SQL funkcija SUM
SQL MIN funkcija
SQL MAX funkcija
SQL AVG funkcija
SQL COUNT funkcija
Agregatne funkcije sa SQL GROUP BY
Kategorija dio Jedinice Novac
Prijevoz motorna vozila 110
17600
Vlasništvo Apartmani 89
18690
Vlasništvo Dachas 57
11970
Prijevoz Motocikli 131
20960
Građevinski materijal Ploče 68
7140
Elektrotehnika televizori 127
8255
Elektrotehnika Hladnjaci 137
8905
Građevinski materijal Regips 112
11760
Slobodno vrijeme knjige 96
6240
Vlasništvo Kuće 47
9870
Slobodno vrijeme glazba, muzika 117
7605
Slobodno vrijeme Igre 41
2665