sql sintaksa

21
1

Upload: branislav-bogdanovic

Post on 02-Oct-2015

92 views

Category:

Documents


6 download

DESCRIPTION

fff

TRANSCRIPT

  • 1

  • SQL je sruktuirani upitni jezik koji omoguavapristup podacima u sistemima za upravljanjerelacionim bazama podataka (MySQL, Oracle, Microsoft SQL Server i drugi)

    Korisnici mogu da:

    definiu emu baze podataka,

    smeste podatke u tako definisanu bazu,

    manipuliu tim podacima (obriu, izmene ili dodaju nove slogove),

    opisuju kakve podatke ele da dobiju iz baze.

    2

  • SQL moemo podeliti na dva dela:

    Data Definition Language (DDL)

    Data Manipulation Language (DML)

    Naredbe SQL-a se zavravaju simbolom taka-zarez (;)

    SQL ne razlikuje mala i velika slova

    (SELECT je isto to i select)

    3

  • DDL deo SQL-a omoguava :

    kreiranje i izmene baze,

    kreiranje, izmene i brisanje tabela baze, kreiranje, izmene i brisanje tabela baze,

    definisanje kljueva i indeksa,

    definisanje veza izmeu tabela i

    definisanje ogranienja izmeu tabela.

    4

  • Najvaniji iskazi u DDL-u su:

    CREATE DATABASE kreiranje nove baze

    ALTER DATABASE izmena baze

    CREATE TABLE kreiranje tabele CREATE TABLE kreiranje tabele

    ALTER TABLE izmena tabele

    DROP TABLE brisanje tabele

    CREATE INDEX kreiranje indeksa (kljua za pretraivanje)

    DROP INDEX brisanje indeksa

    5

  • DML definie sledee naredbe za auriranje ipretraivanje baze podataka :

    komande za auriranje:

    INSERT INTO unos novih slogova u bazu

    UPDATE izmene na podacima u bazi UPDATE izmene na podacima u bazi

    DELETE brisanje slogova iz baze

    komanda za pretraivanje (kreiranje upita):

    SELECT prikaz izabranih podataka (slogova) izbaze

    6

  • Koristi se za unos novog reda u tabelu, bilo da se unose vrednosti svih kolona (A) ili samo izabranih kolona (B).

    A. Unos podataka u sve kolone (2 oblika iskaza INSERT):

    1. Navode se samo vrednosti koje se unose:

    INSERT INTO ime_tabele

    VALUES (vrednost1, vrednost2, vrednost3,)VALUES (vrednost1, vrednost2, vrednost3,)

    2. Navode se imena kolona u koja se unose podaci iodgovarajue vrednosti koje se unose:

    INSERT INTO ime_tabele (kolona1, kolona2, kolona3,)

    VALUES (vrednost1, vrednost2, vrednost3,)

    B. Unos podataka u tano odreene kolone (ne u sve)

    Tada se u listi kolona navode samo eljene kolone

    7

  • Vri izmenu postojeih redova u tabeli

    UPDATE ime_tabele

    SET kolona1=vrednost1, kolona2=vrednost2,WHERE kolona=vrednost

    WHERE klauzulu koristimo da bismo odredili koje tanoredove menjamo

    Ako izostavimo ovaj uslov, izmena e se izvriti za sveredove tabele

    8

  • Brie redove iz tabele koji zadovoljavaju uslov dat sa WHERE klauzulom:

    DELETE FROM ime_tabeleWHERE kolona=vrednost

    WHERE klauzulu koristimo da bismo odredili koje tano WHERE klauzulu koristimo da bismo odredili koje tanoredove briemo.

    Ako izostavimo WHERE uslov, svi redovi tabele e bitiobrisani:

    DELETE FROM ime_tabele

    ili

    DELETE * FROM ime_tabele

    9

  • Prikaz izabranih podataka iz baze:

    SELECT * FROM ime_tabele

    SELECT lista_kolona FROM ime_tabele

    gde je

    lista_kolona: ime_kol1,ime_kol2,

    10

    lista_kolona: ime_kol1,ime_kol2,

    SELECT DISTINCT lista_kolona FROM ime_tabele

    ( DISTINCT je kljuna re za prikaz razliitih podataka )

    Rezultati izvravanja SELECT iskaza se smetaju u tabelu kojase zove result-set

  • WHERE klauzula slui za izdvajanje samo onih slogova

    koji zadovoljavaju postavljeni uslov:

    SELECT lista_kolona

    FROM ime_tabeleFROM ime_tabele

    WHERE ime_kolone operator vrednost

    Operatori mogu da se primenjuju na razliite tipove

    podataka (numerike, tekstualne, logike, datumske).

    11

  • Relacioni peratori:

    = jednako, != razliito, > vee, < manje,

    >= vee ili jednako,

  • Kljuna re za sortiranje rezultata upita po nekojkoloni

    SELECT ime_kolone/aFROM ime_tabeleORDER BY ime_kolone/a ASC|DESCORDER BY ime_kolone/a ASC|DESC

    Po default-u, rezultati se sortiraju po rastuemredosledu (ASC)

    Ako elimo opadajui redosled sortiranja, koristimokljunu re DESC

    13

  • SELECT ime_kolone/aFROM ime_tabeleLIMIT number

    Koristi se za odreivanje broja redova kojevraa postavljeni upit.

    Korisna je kod tabela koje imaju veliki brojredova, jer upiti mogu usporiti radaplikacije.

    14

  • Slui za pretraivanje i pronalaenje odreenih

    kolona u tabeli.

    Znak % slui za zamenu jednog ili vie nepoznatih Znak % slui za zamenu jednog ili vie nepoznatih

    karaktera pri pretraivanju baze podataka.

    15

  • SELECT ime_kolone/a

    FROM ime_tabeleWHERE ime_kolone

    IN (vrednost1,vrednost2,)IN (vrednost1,vrednost2,)

    Omoguava zadavanje skupa vrednostiu WHERE klauzuli.

    16

  • SELECT ime_kolone/aFROM ime_tabeleWHERE ime_koloneBETWEEN vrednost1 AND vrednost2

    Za oznaavanje skupa podataka izmeu dve zadatevrednosti u WHERE klauzulivrednosti u WHERE klauzuli

    Te vrednosti mogu biti brojevi, tekst ili datumi

    U MySQL-u BETWEEN operator u skup traenih podatakaubraja i granine vrednosti

    NOT BETWEEN oznaava skup podataka izvan intervalaobuhvaenog graninim vrednostima ove naredbe

    17

  • SQL agregatne funkicje vraaju vrednost, izraunatu iz

    svih vrednosti u koloni koja je zadata kao argument:

    AVG() prosena vrednost

    COUNT() broj redova

    FIRST() prva vrednost

    LAST() poslednja vrednost

    MAX() najvea vrednost

    MIN() najmanja vrednost

    SUM() zbir vrednosti

    18

  • SQL skalarne funkcije vraaju vrednost, na osnovuvrednosti koja se zadaje kao argument funkcije:

    UCASE() konvertuje u velika slova

    LCASE() konvertuje u mala slova

    MID() izdvaja karaktere iz tekstualnog polja MID() izdvaja karaktere iz tekstualnog polja

    LEN() vraa duinu tekstualnog polja

    ROUND() zaokruuje numerika polja na odreeni

    broj decimala

    NOW() vraa tekui sistemski datum i vreme

    FORMAT() formatiranje prikaza

    19

  • Koristi se u kombinaciji sa agregatnim funkcijama da bi se rezultati grupisali po jednoj ili vie kolona:

    SELECT ime_kolone, agregatna_funkcija(ime_kolone)FROM ime_tabeleWHERE ime_kolone operator vrednostWHERE ime_kolone operator vrednostGROUP BY ime_kolone

    Ako vrimo grupisanje po vie kolona, tada ih navodimoiza GROUP BY razdvojene zarezima:

    SELECT ....

    GROUP BY ime_kolone1, ime_kolone2,...

    20

  • Ova klauzula je dodata u SQL jer WHERE ne moe da se

    koristi sa agregatnim funkcijama

    SELECT ime_kolone,agregatna_funkcija(ime_kolone)

    FROM ime_tabeleFROM ime_tabele

    WHERE ime_kolone operator vrednost

    GROUP BY ime_kolone

    HAVING agregatna_funkcija(ime_kolone) operator

    vrednost

    21