SQL Programski Jezik 2003
SQL Programski Jezik 2003
SEMINARSKI RAD
Mentor: Student:
Dubravko Živković Sandra Mitrović 026
April 2008
SADRŽAJ
1. UVOD..................................................................................3
2. PRAVILA PISANJA KODA.............................................4
3. BAZA PODATAKA...........................................................5
4. TIPOVI PODATAKA........................................................6
5. UVOZ I IZVOZ PODATAKA..........................................7
6. OSNOVNE NAREDBE SQL-A........................................8
6.1. NAREDBA SELECT........................................................8
6.1.1. LOGIČKI OPERATORI AND, OR I NOT................................8
6.1.2. LOGIČKI OPERATORI IN I BETWEEN.................................9
6.1.3. OPERATOR LIKE.....................................................................9
6.1.4. OPERATOR IS NULL...............................................................9
6.1.5. OPERATOR ORDER BY..........................................................9
7. FUNKCIJE PROGRAMA SQL.....................................10
7.1. FUNKCIJE SAKUPLJANJA..........................................10
7.2. MATEMATIČKE FUNKCIJE.......................................10
7.3. FUNKCIJE ZA RAD NA NIZOVIM ZNAKOVA.......11
7.4. FUNKCIJE ZA RAD SA DATUMIMA.........................11
8. ZAKLJUČAK...................................................................12
9. LITERATURA.................................................................13
1. UVOD
SQL kartica zapravo znači „ Structured Query Language“, što bi se moglo prevesti kao
struktuirani jezik za upite. Izgovara se S-Q-L, pojedinačno se izgovara svako slovo ili sequel.
Njegov razvoj počinje još 1970. Godine, kad je razvijen IBM Research Laboratory u
Kaliforniji.
Do 1980. Godine nije bio komercijalno razvijen zbog slabih karakteristika tadašnjih
računara, ali 1981. Godine IBM je predstavio prvi komercijalni SQL proizvod SQL/DS., iza
njega su se pojavili baza podataka Oracle i Reational Technology.
Do 1989. Godine postojalo je oko 70-ak verzija SQL. ANSI (American National Standards
Institute) i ISO (International Standards Organization) su objavili prve verzije standarda
1986-te, odnosno 1987-e. Zatim su skupa prihvatili proširenje standarda 1989. godine pod
nazivom SQL-89, gde je najvažnije proširenje bilo uvođenje referencijskog integriteta.
Zatim su 1992. Godine objavili SQL-2 ili SQL-92, gde imamo proširenje standarda u pisanoj
formi više od četiri puta nego u standardnoj verziji. Na kraju je objavljen SQL-93 ili SQL-3,
sa novim mogućnostima. U pogledu fizičkog zapisa podataka trebalo bi napomenuti da je on
različit od lpgičke strukture ili onog načina na koji mi to vidimo u svojim glavama. Logička
organizacija podataka predstavlja organizaciju sa stanovišta korisnika baze podataka te se
odnosi na vrste podataka i njihove međusobne logičke veze. Sam SQL kao što ćemo videti
opisuje šta želimo dobiti kao rezultat, a ne kako doći do toga što ga svrstava u neproceduralne
jezike, za razliku od, na primer C programskog jezika.
SQL je razvijen za rad sa relacijskim bazama podataka za koje doktor Codd 1970 godine
iznosi 13 Codd-ovih pravila objavljenih u članku „ A Relational Model of Data for Large
Shared Data Banks“, što znači Relacijski model podataka za velike baze podataka koje koristi
više korisnika.
Pravila glase:
3
5) Aktivan, uvek dostupan relacijski katalog – opis baze podataka i njenog sadržaja
predstavljen je na logičkom nivou u vidu tabela i može se pretraživati pomoću jezika baze
podataka.
6) Razumljiv podjezik podataka – bar jedan podržani jezik mora imati dobro definisanu
sintaksu i mora biti razumljiv. Mora se podržati definicija podataka, upravljanje
podacima, pravila integriteta, autorizacija i transakcije.
7) Pravilo za ažuriranje pogleda – svi pogledi koje se teoretski mogu ažurirati, ažuriraju se
kroz program.
8) Unošenje, ažuriranje i uklanjanje podataka na nivou skupova – DBMS za dobijanje
podataka na nivou skupova i za unošenje, ispravljanje i uklanjanje podataka.
9) Fizička nezavisnost podataka – menjanje fizičkog zapisa strukture ili metode pristupa ne
utiče na aplikacije ili programe.
10) Logička nezavisnost podataka – koliko je god moguće promena strukture tablica na utiče
na aplikacije ili programe.
11) Nezavisnost integriteta – jezik baze podataka mora osigurati način za definisanje pravila
integriteta. Ona moraju biti sačuvana u katalogu, koji je uvek dostupan.
12) Nezavisnost od distribucije – prva i ponovna distribucija podataka ne utiče na zahteve
aplikacije.
13) Zaštita podataka – ne sme postojati mogućnost zaobilaženja pravila integriteta definisanih
jezikom baze podataka upotrebom jezika koji rade na niskom nivou.
Znači SQL omogućava da stvorimo i promenimo strukturu baze podataka, dodamo prava
korisnika za pristup bazi podataka ili tablicama, da tražimo informacije o bazama podataka i
da menjamo sadržaj beze podataka, pa imamo dve vrste funkcija:
1. DDL (Data Definition Language)- funkcija za definiciju podataka čiji je tipičan primer
naredba CREATE TABLE ime tablice i
2. DML ( Data Manipučation Language)- funkcija za upravljanje podacima gde kao primer
možemo navesti osnovnu SQL naredbu SELECT FROM * ime tablice .
SQL ne pravi razliku između malih i velikih slova, što znači da su sledeće dve naredbe
jednake:
select prezime from osoba where ime = „Pero“
ili
Radi lakšeg čitanja koda, a tim načinom će biti i sve dalje napisano, preporučuje se da ključne
reči ili naredbe budu napisane velikim slovima, a svi ostali elementi malim slovima. U nekim
bazama, niz znakova mora biti napisan kao što je u bazi. Znači, u gornjim naredbama nije isto
ako piše „Pero“ ili „PERO“ , ali isto ne mora važiti za Mocrosoft SQL.
Imena objekata u SQL-u (imena tablica, redova i pogleda) prave se tako da prvi znak mora
biti a – z, A – Z ili podvučeno. Znakovi iza prvog mogu biti pisani u Unicode kodu, u vidu
decimalnih brojeva, ali ne mogu biti ključne reči. Razmak i ostali specijalni znakovi se mogu
koristiti ali nije preporučljivo.
3. BAZA PODATAKA
Baza podataka je objekat koji sadrži tablice i druge objekte radi sređivanja i obrade podataka.
Za kreiranje baze najčešće se koristi naredba:
Primer 1:
1992 godine SQL ANSI standardne uključuje SREATE DATABASE naredbu, umesto nje on
koristi CREATE SCHEMA naredbu za opis dela baze koju određeni korsnik koristi. Obično
se baza podataka sastoji od više šema. Ipak većina komercijalnih zapisa SQL-a podržava
naredbu CREATE DATABASE , a iza imena baze podataka mogu slediti još dodaci kao što
su NAME (logičko ime baze podataka), FILENAME (ime i staza datoteka baze podataka pod
kojim ona postoji na hard disku), SIZE (početna veličina datoteke za podatke u Mb ili Kb),
MAXSIZE (najveća veličina koju baza podataka sme automatski uzeti, zadaje se u Mb ili Kb,
5
a može biti i UNLIMITED), FILEGROWTH (vrednost koraka širenja ili rasta datoteke, a
zadaje se u Mb ili Kb ili u procentima), LOG ON (zadaje se veličina datoteke dnevnika
transakcija i lokaciju, ako nije zadata biće 25% veličine svih datoteka za podatke, njeno ime
će program sam degenerisati i biće u istom direktorijumu kao i datoteke podataka), FOR
LOAD (zbog kompatibilnosti), FOR ATTACH (za pridruživanje datoteka baze podataka koje
su bile formirane na drugom direktorijumu). Ove dodatne opcije nisu standardizovane pa bi
trebalo proveriti u dokumentaciji koje se opcije mogu primeniti u pojedinim programima
upravljanja bazama podataka.
Samo kreiranje baze podataka ne uključuje nužno da je sada morate koristiti pa se spajamo na
tu bazu podataka sa naredbama USE DATABASE ili CONNECT, ili će se najverovatnije
moći spojiti uz pomoć nekog grafičkog programa, npr. U Informixu pri radu sa SQL
Editorom ili u MS SQL-u u radu sa SQL Server Query Analyzerom, gde imamo okvir sa
padajućim popisomu kojem uz pomoć miša biramo na koju se bazu želimo spojiti, dok se to
isto ručno upisuje u SAP-ovom SQL Studiu.
Primer 2:
USE mobitel
Pri dizajnu baze podataka trebali bi imati na umu sigurnost, prostor na disku, brzinu
pretraživanja, dobijanje rezultata, ažuriranje, brzinu spajanja više tablica radi dobijanja
podataka i RDBMS-ove mogućnosti privremenih tablica.
4. TIPOVI PODATAKA
Pri kreiranju tablica određujemo nazive redova, pa zatim tip podataka koji će biti spremljen.
Tipovi podataka su:
1. Celobrojni:
bit, podatak koji je 1 ili 0,
int (integer), koji iznosi od - do -1,
Uvoz ili izvoz podataka radimo da bi prebacili podatke iz programa koji nisu povezani, a
mogu biti istih ili različitih baza. U MS SQL-u to radimo pomoću DTS Import/Export
Wizard-a (Data Transformation Services). To je program dstwiz koji možemo pokretati i sa
komandne linijegž gde sa određenim parametrima određujemo njegove funkcije. Ovde
uočavamo da postoje graničnici koji ograđuju podatke. To su znakovi ’’,’’zarez ili
’’I’’okomita crta. Jasno je da se znak koji ograničava podatak ne sme pojaviti u samom
podatku.
Za SAP DB moramo takve stvari raditi sa komandne linije uz pomoć programa repmcli.
7
6. OSNOVNE NAREDBE SQL-A
6.1. NAREDBA SELECT
Osnovna naredba u SQL- u je SELECT izraz FROM ime tablice, u prevodu IZABERI izraz
IZ ime tablice. U naredbi reč IZRAZ zamenjujemo sa sa imenim aredova koje želimo videti
ili u slučaju da želimo videti sve sa *. Možemo pored imena reda napisati novo ime reda pod
kojim ga želimo videti u izveštaju, ali u tablici ostaje sve po starom.
Sledeća SELECT naredba se razlikuje kod MS SQL-a i SAP-a. Vidimo u prethodnoj naredbi
da svaki red ima svoje ime, ali nekad može biti potrebno da u nekom izveštaju spojimo dva
reda tablice u jedan red izveštaja. Spajanje se vrši u MS SQL-u sa znakom +, dok se ista
radnja u SAP-u radi sa znakom naziva pipe (Alt Gr + W).
Možemo još spomenuti i ključnu reč TOP x, koja nam daje samo prvih x redova, što je
korisno pri radu sa velikim tablicama kada često moramo proveravati rezultate naših izraza.
Postoji još jedna mogućnost korišćenja naredbe SELECT bez dodatka FROM jer taj podatak
ne mora biti unešen u tablicu.
Sledeći koristan dodatak naredbi SELECT je zahtev WHERE koji pokazuje koje redove
želimo cideti jer u većini prethodnih primera imamo prikazane sve redove.
Naredni korak unošenja podataka bi bio upotreba logičkih operatora tako da možemo još
više proširiti zahteve za pretraživanje. Logički operatori su AND, OR i NOT. Kod složenijih
izraza bi trebalo voditi računa o prioritetima. Hijerarhija primene izraza glasi:
Zagrada ( ),
Deljenje / i množenje *,
Sabiranje + i oduzimanje -,
NOT ( ne ),
AND ( i ),
OR ( ili ).
6.1.2. LOGIČKI OPERATORI IN I BETWEEN
Ako želimo definisati u zahtevu raspon imamo dve mogućnosti. Jedna je da radimo sa
operatorima upoređivanja ( , , , ...), a druga je da koristimo ključnu reč BETWEEN.
Međutim, kada želimo naći podatak kojem je zahtev da se poklapa sa jednom od vrednosti u
listi koristimo ključnu reč IN.
Nekad se može dogoditi da tražimo, na primer, neko ime koje počinje kao...ili telefonski broj
koji sadrži sigurno ove brojeve za redom. Tako zadate zahteve je malo teže dobiti kroz prošle
naredbe ili operatore, pa za to služi ključna reč LIKE.
Operator IS NULL nam daje informaciju, na primer, za koju osobu iz tablice nemamo
podatke.
Uz korišćenje ove ključne reči možemo dobiti da nam rezultat bude čitljiviji, odnosno
možemo rezultat sortirati po nekom redosledu.
Međutim, kad imamo samo brojeve ili samo slova jasno je kako će biti sortirani ti nizovi, ali
kad je sve to izmešano postavlja se pitanje, kako će sad to biti sortirano? Tu možemo pozvati
u pomoć jednu proceduru u MS SQL-u koja će nam dati redosled niza po kojem se vrši
sortiranje, a to je EXEC SP_HELPSORT.
9
7. FUNKCIJE PROGRAMA SQL
7.1. FUNKCIJE SAKUPLJANJA
Tu spadaju:
DATEDIFF (daje broj datumskih delova zadatog tipa između dva tipa),
11
DATEPART (daje deo datuma zadatog tipa iz ulaznog tipa),
8. ZAKLJUČAK
Moderan način poslovanja je potpuno nezamislim bez računara i baza podataka. Ipak u
popularnoj informatičkoj štampi nema puno mesta za baze podataka i SQL zbog
nezainteresovanosti korisnika za tu oblast.
Ono što možemo naći su osnove, tako da se lako može steći mišljenje da SQL i nije jezik.
Gledajući naredbe SQL-a ( UPDATE, SELECT, DELETE, INSERT ) na prvi pogled se može
pomisliti da se sa tim jezikom ne može puno napraviti.
Međutim, kroz razne zadatke se može primetiti da sve može odraditi u ovom programu. Uz
osnove, postoje brojne mogućnosti u ovom radu, kao na primer, numerisanje ili upoređivanje
brojeva kao znakovnih podataka.
Format datuma, takođe, predstavlja specifičnost jer moramo odrediti način na koji se upisuje i
prikazuje ( redosled meseca, dana i godine ). Kod nas je standardan način upisivanja datuma
takav da se prvo upisuje dan, mesec, pa na kraju godina.
Pored ovih mogućnosti koje pruža SQL, postoji još niz drugih koji nam znatno mogu olakšati
rad sa bazama podataka i rad sa računarima uopšte.
Na kraju se može istaći da su baze podataka važan deo automatizacije poslovanja koje
običan korisnik nikada neće primetiti, dok bi programeri i administratori trebali biti veoma
dobro upoznati sa ovom tematikom.
9. LITERATURA
Internet:
www.google/sql programski jezik.com
www.wikipedia/sql.com
Knjiga:
Poslovna informatika – Prof. Dr Nikola Bračika
13