1 / 22

SQL

SQL. Kratki uvod u SQL. SQL - S tructured Q uery L anguage /Struktuirani upitni jezik/ Razvoj SQL-a počinje 1974. godine kada se pojavljuje članak autora D. D. Chamberlaina i R. F. Boycea u kojem oni opisuju strukturni upitni jezik za pretraživanje podataka nazvan SEQUEL.

senona
Télécharger la présentation

SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL

  2. Kratki uvod u SQL • SQL- Structured Query Language /Struktuirani upitni jezik/ • Razvoj SQL-a počinje 1974. godine kada se pojavljuje članak autora D. D. Chamberlaina i R. F. Boycea u kojem oni opisuju strukturni upitni jezik za pretraživanje podataka nazvan SEQUEL. • Godine 1975. Boyce, Chamberlain i M. Hammer predstavljaju koncept jezika SQUARE koji je koristio matematičke izraze, za razliku od engleskih termina koje je koristio SEQUEL. Uskoro SQUARE mijenja ime u SEQUEL2 i taj jezik je korišten u razvoju prvog prototipa relacijskog sustava za upravljanje bazama podataka, nazvanog “System R” razvijenog u laboratorijima IBM-a. • Kasnije jezik mijenja ime u SQL.

  3. Kratki uvod u SQL • SQL je standardiziran od strane ISO (International Standardization Organisation) i ANSI instituta (American National Standards Institute) i danas se koristi u većini relacijskih sustava baza podataka. • SQL spada u neproceduralne jezike, što znači da korisnik pomoću njega definira što želi dobiti, a ne kako će to dobiti. • Kao osnovne osobine SQL-a mogu se izdvojiti sljedeće: • English-like jezik. Koristi riječi kao što su: select (odaberi), insert (dodaj), delete (obriši) kao dio naredbe. • Ne-proceduralni jezik • U jednom trenutku češće obrađuje skup slogova nego jedan slog tablice

  4. Kratki uvod u SQL • Mogu ga koristiti korisnici različitog profila: administratori baze podataka, aplikativni programeri, neprofesionalni korisnici. • Osigurava naredbe za različite zadaće uključujući : • upite nad podacima, • dodavanje, mijenjanje i brisanje redaka u tablicama, • kreiranje, mijenjanje i brisanje objekata sheme, • kontrolu pristupa bazi podataka i objektima sheme, • konzistentnost baze podataka. • SQL izrazi mogu se razvrstati u nekoliko skupina : • izrazi za upravljanje podacima (engl. Data Manipulation Language Statements - DML), • izrazi za definiranje podataka (engl. Data Definition Language Statements - DDL), • izrazi za kontrolu transakcija (engl. Transaction Control Statements),

  5. Kratki uvod u SQL • izrazi za kontrolu sesije (engl. Session Control Statements), • izrazi za kontrolu sustava (engl. System Control Statements), • ugrađeni SQL izrazi (engl. Embedded SQL Statements). • Dva su osnovna načina primjene SQL –a: • Direktno (interaktivno) korištenje SQL –a • Ugrađeni (embedded) SQL kod u kod nekog programskog jezika. • Rad sa SQL –om se odvija u tzv. transakcijama. Transakcija je grupa SQL naredbi koje se izvršavaju sve ili ni jedna. Da li će sve promjene i fizički biti zapisane u bazu ovisi o posljednjoj naredbi transakcije – commit ili rollback.

  6. Osnovne naredbe SQL -a • KREIRANJE TABELA • Opći oblik SQL naredbe za kreiranje tablica u relacijskom modelu je: CREATE TABLE <ime-tablice> <definicija atributa> • Definicija atributa ima oblik: <ime stupca tip podataka> < [NOT NULL]> CREATE TABLE Proizvodi (ID INTEGER NOT NULL, Naziv CHAR(50), JM CHAR(10), Kolicina DECIMAL(10,2), Cijena DECIMAL(10,2), PRIMARY KEY (ID))

  7. Osnovne naredbe SQL -a • UNOS PODATAKA U TABLICU • Opći oblik SQL naredbe za unos podataka je: INSERT INTO ime-tablice (lista_atributa) VALUES (lista_vrijednosti) INSERT INTO Proizvodi VALUES (1,’Miš optički’,’kom’,100,10.25) ili INSERT INTO Proizvodi (ID,naziv,cijena) VALUES (5,’HD Seagate250’,120.25) • Naredba omogućava i unos podataka iz neke druge tablice i tada ima oblik: INSERT INTO ime-tablice (lista_atributa) SELECT lista_atributa FROM ime-tablice2 WHERE uvjet

  8. Osnovne naredbe SQL -a • PROMJENA STRUKTURE TABLICE • Opći oblik naredbe koja omogućava dodavanje novih stupaca (atributa) u tablicu je: ALTER TABLE ime-tablice ADD COLUMN def-atr ALTER TABLE Proizvodi ADD COLUMN jm decimal (5,2) • Izbacivanje (brisanje) atributa iz tablice izvodi se naredbom: ALTER TABLE ime-tablice DROP COLUMN ime-atributa

  9. Osnovne naredbe SQL -a • Važniji tipovi podataka • CHAR (n) – tekstualni podatatak maksimalne dužine n znakova (karaktera) • DECIMAL (x,y) i NUMERIC (x,y) – decimalni broj s predznakom sa ukupno x cifara, od kojih je y decimala • INTEGER – cijeli broj (32 bita) • SMALLIINT – cijeli broj iz manjeg opsega, zauzima manje memorije (16 bita) • FLOAT, REAL i DOUBLE - mali ili veliki realni brojevi • DATE – datum u formatu yyyy-mm-dd • TIME – vrijeme u formatu hh:mm:ss

  10. Osnovne naredbe SQL -a • PRETRAŽIVANJE PODATAKA • Dohvaćanje (pretraživanje) podataka je najčešća operacija koja se izvodi nad sadržajem tablica (relacija). Za to u SQL postoji naredba SELECT čija je sintaksa: SELECT [All/DISTINCT] <lista atributa> FROM <lista tablica> WHERE <uvjet>; gdje je: <Lista atributa> - stupci (atributi) tablica (relacija) koji se žele u rezultatu. <Lista tablica> - tablice (relacije) koje se pretražuju, <Uvjet> - uvjet koji moraju zadovoljiti n-torke da bi bile odabrane

  11. Osnovne naredbe SQL -a • Primjer1: Iz tablice proizvodi prikazati sve proizvode i njihove cijene. SELECT naziv, cijena FROM proizvodi; • Primjer2: Iz tablice proizvodi prikazati nazive artikala, količine i cijene samo za artikle jeftinije od 10,00KM. SELECT naziv,kol,cijena FROM proizvodi WHERE cijena<10; • Primjer3: Iz tablice proizvodi prikazati nazive artikala, količine i cijene samo za artikle jeftinije od 10,00KM i kojih je na stanju manje od 20. (URADITI SAMOSTALNO)

  12. Osnovne naredbe SQL -a • Operatori u Where klauzuli, pored standardnih operatora poređenja (=,>,<,<>,>=,<=) mogu biti i logički: • AND, OR i NOT. • Također se primjenjuju i operatori BETWEEN (za definiranje raspona ili intervala vrijednosti), IN (zamjenjuje višestruku primjenu operatora OR) i LIKE (omogućava pretraživanje na osnovu uzorka). • Primjer4 (primjena AND operatora): Ispisati nazive, cijene i količine svih artikala čija je cijena manja od 10.00 KM i kojih je na stanju više od 50. Select naziv From Proizvodi Where cijena<10 and kolicina>50;

  13. Osnovne naredbe SQL -a • Primjer5 (primjena OR operatora): Ispisati nazive i cijene svih artikala čija je cijena manja od 10.00 KM kao i onih čija je cijena veća od 100.00KM. Podatke sortirati prema nazivu artikla u rastućem redoslijedu (a-ž). Select naziv,cijena From Proizvodi Where cijena<10 or cijena>100 Order by naziv; • Primjer6 (primjena NOT operatora): Ispisati nazive i cijene onih artikala koji su skuplji od 10.00KM. Podatke sortirati prema cijeni u opadajućem redoslijedu. Select naziv,cijena From Proizvodi Where not (cijena<10) Order by cijena desc;

  14. Osnovne naredbe SQL -a • Primjer7 (primjena operatora BETWEEN): Ispisati nazive, cijene i količine svih artikala kojih je na stanju između 10 i 20 Select naziv,cijena,kolicina From Proizvodi Where kolicina between 10 and 20; • Primjer8 (primjena IN operatora): Ispisati imena, podignute iznose i periode na koje su krediti podignuti za sve klijente banke koji su kredit podigli na 6, 12 ili 24 mjeseca Select imeprezime, iznos, period From krediti Where period IN (6,12,24);

  15. Osnovne naredbe SQL -a • Primjer9 (primjena operatora LIKE): Ispisati imena i iznose kredita koje su podigle osobe prezimena “Perić” Select imeprezime, iznos From krediti Where period imeprezime like ‘%Perić%’; • Primjer10: Ispisati imena, podignute iznose, periode i trenutne dugove za sve klijente koji su kredit podigli u iznosu većem od 20 000, na period od 12, 24 ili 36 mjeseci a trenutno duguju između 5 000 i 10 000. Podatke sortirati prema visini duga u opadajućem redoslijedu. (URADITI SAMOSTALNO)

  16. Osnovne naredbe SQL -a • PROMJENA (AŽURIRANJE) PODATAKA • Izmjena vrijednosti podataka (ažuriranje) u tablici postiže se uporabom naredbe UPDATE, čija je sintaksa: UPDATE <ime-tablice> SET <atribut = izraz> WHERE <uvjet>; U svim n-torkama u relaciji koje zadovoljavaju uvjet mijenja se (ažurira) vrijednost navedenih atributa. P1:UPDATE krediti SET period=24 where period=12; P2: UPDATE proizvodi SET cijena=cijena*0.8 where cijena>=1000;

  17. Osnovne naredbe SQL -a • BRISANJE PODATAKA • Za brisanje podataka iz tablice koristi se SQL naredba DELETE, čija je sintaksa: DELETE FROM <ime-tablice> WHERE <uvjet> • Ovom naredbom se brišu sve n-torke koje zadovoljavaju postavljene uvjete. Npr. Delete From proizvodi Where kolicina=0;

  18. Osnovne naredbe SQL -a • AGREGATNE FUNKCIJE • Pored prikazivanja prostih vrijednosti memoriranih u tabelama (relacijama) BP –a, SQL podržava i nekoliko funkcija za dobivanje izvedenih, sumarnih informacija. • Takve funkcije nazivamo agregatnim funkcijama. • Primjena agregatnih funkcija zahtijeva određeni način grupiranja redova tablice nad kojom se ove funkcije primjenjuju. • Svaka agregatna funkcija generira jedan rezultujući red za svaku grupu redova. Ukoliko grupiranje nije eksplicitno specificirano čitava tablica se tretira kao jedna grupa.

  19. Osnovne naredbe SQL -a • Najznačajnije agregatne funkcije su: • AVG (atribut) – izračunava srednju vrijednost • SUM (atribut) – izračunava ukupnu vrijednost (sumu) • MIN (atribut) – nalazi najmanju vrijednost • MAX (atribut) – nalazi najveću vrijednost • COUNT (*) – nalazi broj redova (zapisa) u grupi • COUNT ([ALL] atribut) – nalazi ukupan broj definiranih (not null) vrijednosti • COUNT ([DISTINCT] atribut) – nalazi ukupan broj različitih definiranih (not null) vrijednosti • Primjer11: Naći najmanju, srednju i najveću platu, kao i broj radnika u odjeljenju 10. Select min (plata), avg (plata), max (plata), count (*) From Radnik Where odjeljenje=10;

  20. Osnovne naredbe SQL -a • Primjer12: Naći ukupnu platu i ukupnu premiju za trgovačke putnike. Select sum (plata), sum (premija), From Radnik Where posao=‘trgovački putnik’; • Primjer13: Koliko je srednje godišnje primanje trgovačkih putnika? Select avg (plata+premija)*12, From Radnik Where posao=‘trgovački putnik’;

  21. Osnovne naredbe SQL -a • GROUP BY klauzula • Služi za dobivanje jednog rezultujućeg reda za svaku različitu vrijednost kolone po kojoj se vrši grupiranje. • Grupiranje se može vršiti i po više kolona i u tom slučaju svaka različita kombinacija vrijednosti kolona čini grupu. • Primjer14: Naći minimalnu, srednju i maksimalnu platu i ukupan broj radnika za svako odjeljenje. Select min (plata), avg (plata, max (plata), count (*), odjeljenje From radnik Group by odjeljenje; • Zadatak: Ispisati ukupan broj radnika koj obavljaju različit posao unutar svakog odjeljenja.

  22. Osnovne naredbe SQL -a • Rješenje: Select odjeljenje, posao, count(*) From Radnik Group by odjeljenje, posao; • HAVING klauzula • Određuje kriterije za selekciju grupa koje su prethodno specificirane GROUP BY klauzulom. • Primjer15: Prikazati koje poslove obavlja više od dva dadnika u svakom odjeljenju Select odjeljenje, posao, count(*) From Radnik Group by odjeljenje, posao Having count(*)>2 ;

More Related