Professional Documents
Culture Documents
U prvom modulu ovog kursa kreirali smo jednu bazu podataka sa dve tabele i tom prilikom
smo se prvi put susreli sa jezikom koji se naziva Structured Query Language ili SQL. Tom
prilikom nismo preterano ulazili u samu sintaksu onoga što smo pisali, već nam je cilj bio
samo demonstracija kreiranja baze i tabela u relacionom kontekstu. U ovom modulu
upoznaćemo se sa sintaksom SQL-a i sa mogućnostima ovog jezika.
SQL je jedini jezik baza podataka koji je u širokoj primeni. Još od kako je predstavljen,
ranih 70-ih godina prošlog veka, bio je kritikovan, menjan, proširivan, ali na kraju i
prihvaćen od strane svih relevantnih činilaca na tržištu baza podataka.
SQL je postao standard Američkog Nacionalnog Instituta za standarde (ANSI) 1986. godine i
Internacionale Organizacije za standarde (ISO) 1987. godine. Kao što je već rečeno, do
danas, standard je proširivan novim funkcionalnostima nekoliko puta.
Uprkos standardizaciji, SQL kod različitih sistema za upravljanje bazama podataka nije u
potpunosti kompatibilan, pošto svaki proizvoñač implemetira SQL sa odreñenim
odstupanjima i primenom specifičnih proširenja. Ovaj modul baviće se osnovama MySQL
implementacije SQL standarda.
Zapravo, ukoliko savladate ove osnove na pravi način, bićete u stanju da koristiti bilo koji
sistem za rukovanje bazama podataka.
SQL se primarno koristi za formulisanje instrukcija sistemu baze podataka, koje obuhvataju
naredbe za manipulaciju bazama i podacima.
SQL sintaksa
Već smo, kroz dosadašnje primere, naročito u prethodnom modulu, mogli da vidimo kako
izgleda sintaksa SQL-a. Možemo dodati još neke karakteristike:
Tekstualne konstante
String predstavlja sekvencu bajta ili karaktera, koji su ograničeni ili jednostrukim
navodnicima (') ili dvostrukim navodnicima ("). Evo nekih primera stringova:
'a string'
"another string"
Odreñena grupa karaktera specijalno se interpretira unutar string konstanti, slično kao i u
drugim programskim jezicima. Pregled svih dostupnih specijalnih karaktera možete videti u
tabeli 8.1.
Komentari
MySQL server poznaje i jednu vrstu specijalnih komentara, koji se nazivaju uslovni
komentari. Njihova sintaksa je sledeća:
MySQL server će izvršiti i deo upita unutar uslovnih komentara, tj. izvršiće i
STRAIGHT_JOIN, dok drugi serveri neće.
Na ovaj način moguće je i navoñenje specifične verzije MySQL servera na koju se odnosi
deo upita izmeñu uslovnih komentara. Ako se napiše nešto ovako:
Deo upita definisan unutar uslovnih komentara izvršiće se samo na MySQL serverima verzije
3.23.02 ili više.
Naredbe
Ovaj set naredbi je srce SQL-a. To su naredbe koje se koriste često i u velikoj količini.
Sigurno nećemo svakog dana kreirati baze podataka (osim ako nismo administrator baze),
niti njihovu strukturu (tabele), korisnike i sl. Ovo je posao koji se obavlja jednom (bar
njegovi ključni delovi). Sa druge strane, manipulaciju podacima, što je predmet naredbi za
manipulaciju, vršimo konstantno.
Naredbe za manipulaciju podacima su, u stvari, najkorišćenije naredbe u SQL-u. Ako ste se
ikada susreli sa ovim jezikom (pre ovog kursa), verovatno je bilo baš kroz ovaj set naredbi.
Takoñe, možete se susresti sa termin CRUD koji se odnosi na ove naredbe, tako da se često
za manipulacione naredbe kaže da su to CRUD naredbe ili operacije. CRUD predstavlja
skraćenicu od CREATE, READ, UPDATE, i DELETE.
Sa ovim naredbama već smo se upoznali u okviru prvog modula ovog kursa, kada smo
kreirali prvu bazu podataka. To su naredbe CREATE, ALTER i DROP. Ove naredbe koriste se
za rukovanje objektima na serveru, odnosno svim onim što može da se napravi, izmeni ili
obriše: baze, tabele, uskladištene procedure, pogledi...
Pošto je reč o kreiranju objekata na serveru, ovaj set obično je dostupan samo
administratorima servera (za sve iznad nivoa baze korisnika), tako da, kada korisnik dobije
pravo na korišćenje baze, može da radi većinu stvari unutar te svoje baze, ali nema
mogućnost njenog brisanja ili brisanja ostalih baza servera. Iz istog razloga, običnim
korisnicima nedostupne su i kontrolne komande. Jer, ukoliko bi korisnik imao mogućnost da
rukuje kontrolnim komandama, mogao bi sam sebi da da visoka prava i dovede do
pomenutih intervencija (brisanje sopstvene ili drugih baza na serveru).
Ili
Često se, u praksi, koristi skraćenica DDL (Data Definition Language). Ukoliko vam neko
traži DDL vaše baze, on zapravo traži skriptu kojom se ta baza kreira. Ukoliko se, na primer,
baza naziva my_db i ima jednu tabelu (dakle, baza iz malopreñašnjeg primera), DDL za tu
bazu će biti takoñe kod iz primera (kreacija baze i kreacija tabele).
Napomena
Veoma je bitno napomenuti da je za praćenje gradiva ovog modula neophodna baza Sakila,
popunjena podacima. Kompletna procedura za kreiranje ove baze podataka i za dodavanje
podataka opisana je u prvom modulu u lekciji MySQL Workbench.
Baza Sakila će se intenzivno koristiti za testiranje upita za pretragu. Savet je da, ukoliko
niste na adekvatan način kreirali ovu bazu, detaljno proučite gradivo prvog i drugog modula.
Potrebno je još na kraju ove lekcije razjasniti i različitu upotrebu navodnika u MySQL-u.
Naime, tri vrste navodnika se mogu koristiti u MySQL, i to su jednostruki, dvostruki i
takozvani backtick navodnici. Pogledajmo za šta se koji navodnici koriste:
'this is string'
Pitanje
• manipulacionu
• definicionu
• kontrolnu
• uslovnu
Naredbe za definiciju (Data Definition Language – DDL) su naredbe CREATE, ALTER i DROP.
Ove naredbe koriste se za rukovanje objektima na serveru, odnosno svim onim što može da
se napravi, izmeni ili obriše: baze, tabele, uskladištene procedure, pogledi. Naredba create
je naredba za kreiranje MySQL objekata, pa je, samim tim, to definiciona naredba.
Rezime