1. Relacioni upitni jezici: SQL grupe naredbi (DDL, DML, DCL)
SQL je akronim od Structured Query Language (Strukturni upitni jezik). Služi za kreiranje, organizaciju i manipulaciju podacima u relacionim bazama podataka. Američki nacionalni institut za standarde (ANSI-American National Standards Institute) odabrao je SQL kao jezik za rad sa relacionim bazama podataka. Možemo reći i da je to standardni relacioni upitni jezik.
U
stvari, SQL je jedini jezik koga razume većina baza podataka. Kad god
radite sa nekom bazom podataka, softver prevodi vaše naredbe ( bez
obzira na to da li ste kliknuli na dugme miša ili ste popunavali
obrazac) u naredbu u SQL-u koju baza podataka zna kako da protumači.
SQL jezik podržava dva režima rada sa bazom podataka:
- Interaktivni: Korisnik zadaje jednu po jednu SQL naredbu interaktivno, preko tastature, a ishod svake se prikazuje preko monitora. Pristup bazi podataka je ograničen jedino pravima korisnika
- Programski: Korisnik pokreće program u kome se nalaze "ugrađene" SQL naredbe. Pristup bazi podataka ograničen je pravima korisnika i sadržajem programa
Pomoću SQL-a može da se:
- pristupi bazi podataka
- vrše upiti nad bazom podataka
- prikazuju podaci iz baze podataka
- unose novi podaci u bazu podataka
- obrišu postojeći zapisi iz baze podataka
- izmene podaci u bazi podataka
Jezik za rad sa bazama podataka se do 1999 obično delio na podjezike:
- jezik za definisanje podataka (DDL - Data Definition Language)
- jezik za rukovanje podacima (DML - Data Manipulation Language)
- jezik za kontrolu pristupa podacima (DCL - Data Control Language )
Međutim
radi se samo o klasama naredbi koje zajedno sačinjavaju sam jezik za
rad sa bazom podataka.
Definicija baze podataka:
Pre
početka rada sa bazom podataka neophodno je definisati njenu strukturu -
koje tabele postoje, koji atributi postoje u tabelama i kog su tipa,
koja ograničenja postoje unutar tabela i između njih, koje pomoćne
strukture (indeksi) za ubrzanje pristupa podacima postoje i za koje
tabele.
Ova komponenta jezika odgovara DDL-jeziku baze podataka (od "Data Definition Language").
Manipulacija bazom podataka:
Pored upita nad bazom podataka, kojima dobijamo željene informacije, neophodno je obezbediti i ažuriranje baze podataka, odnosno unos, izmenu i brisanje podataka. Ova komponenta je u stvari DML-jezik baze podataka (od "Data Manipulation Language").
Kontrola pristupa podacima:
U svakoj bazi podataka neophodno je sotvariti kontrolu koji korisnici imaju pristup kojim podacima i šta mogu da rade sa tim podacima. U prevodu, radi sa grupama i korisnicima, kao i sa pravima pristupa. Ova komponenta predstavlja DCL-jezik baze podataka (od "Data Control Language").
Za nas, i u početku, će biti od interesa DDL i DML.
*
SQL
je u stalnom razvoju.
SQL radi sa tabelama. Tabela se kreira jednom izvršnom naredbom. Odmah po kreiranju tabela je raspoloživa za korišćenje. Svi podaci memorisani su u tabelama i rezultat bilo koje operacije se Iogički prikazuje u obliku tabele.
SQL sesija je pojam koji se koristi da se označi period u kome jedan korisnik (osoba ili aplikacija) izvršava sekvencu SQL naredbi u toku jedne SQL konekcije. SQL konekcija je pojam koji se koristi da se označi da je uspostavljena veza izmedu SQL klijenta i SQL servera.SQL klijent je korisnik, odnosno aplikacija koji uspostavlja vezu sa SQL serverom. On predstavlja interfejs preko koga se prosleđuju zahtevi SQL serveru i prihvataju rezultati obrade zahteva. SQL server upravlja SQL sesijom. On prihvata zahteve od SQL klijenta, izvršava ih i rezultate prosleđuje klijentu.
* Zanimljivost:
Ispravan izgovor naziva jezika je stalno sporno pitanje u zajednici stručnjaka koji se bave bazama podataka. Američki nacionalni institut za standarde je ustanovio pravilan izgovor imena kao „eskjuel“, međutim, mnogi stručnjaci koji se bave bazama podataka navikli su da izgovaraju „sikvel“, tako da vama prepuštamo izbor.
Postoji nekoliko vrsta SQL-a. Oraklova baza podataka koristi svoju verziju PL/SQL, a SQL server kompanije „Majkrosoft“ koristi Transact-SQL. Sve varijacije se zasnivaju na industrijskom standardu ANSI SQL. Ovaj uvod koristi SQL naredbe usaglašene sa ANSI standardom koji može da se koristi u bilo kom savremenom sistemu baza podataka.
*
Za one koji žele da znaju malo više:
U nastavku su dati linkovi ka korisnim materijalima :
RAF: Šta treba da znate o SQL-u (LINK)
OBAVEZNO PROČITATI : edukacija.rs : SQL - Standardni upitni jezik (LINK)
*
DODATAK za vežbe:
Kreiranje baze podataka ( i izbor iste )
Kreiranje baze podataka se odnosi na kreiranje nove prazne baze podataka sa svim potrebnim elementima tako da je posle toga moguć rad sa njom. Kreiranje baze podataka se u SQL jeziku vrši naredbom CREATE DATABASE
CREATE {DATABASE | SCHEMA} [ IF NOT EXISTS] db_name;
Rezervisane reči DATABASE ili SCHEMA su alijasi - odnose se na isto. Ako se koristi IF NOT EXISTS, to znači da novu bazu podataka server treba da napravi samo ako već ne postoji baza sa tim imenom.
Da bi se kreirala baza podataka u skladu sa strukturom naredbe, potrebno je ukucati sledeće:
CREATE DATABASE biblioteka;
Ovom naredbom je kreirana nova prazna baza podataka pod imenom biblioteka. Sada je moguće koristiti ovu bazu za dalji rad. Sve što je potrebno jeste izabrati bazu sa kojom se radi. Samim kreiranjem baze ne podrazumeva se da je ona automatski izabrana, pa je zbog toga potrebno ukucati sledeću naredbu:
USE biblioteka;
Ovom naredbom je izabrana baza podataka pod imenom biblioteka sa kojom će se raditi. ( Ovo je kao kada se u nekom programu izabere opcija Open, a zatim se izabere određeni fajl za otvaranje )
!!!! ::::: U toku vežbi, da biste mogli da radite da svojom bazom podataka, ne zaboravite da ukucate
USE ime_vaše_baze !!!
(Ako je sve ok, izvrši se naredba, postoji baza, ispisuje se poruka o uspešnom pristupu bazi, ali ako na serveru ne postoji baza sa datim imenom, ispisuje se poruka o grešci ).
Malo detaljnije i precizije:
Još se mogu prilikom kreiranja baze postaviti i dodatna ograničenja, pa je u nastavku data sintaksa naredbe CREATE DATABASE ako se želi postaviti npr. koji se set karaktera koristi:
CREATE {DATABASE | SCHEMA } [ IF NOT EXISTS ] ime_baze
[ DEFAULT ] { CHARACTER SET [=] ime_cheracter_seta | COLLATE [=] collation_name }
Primer:
CREATE DATABASE razred CHARACTER SET utf8 COLLATE utf8_unicode_ci;
U ovom primeru, za grupu karaktera koju će baza da koristi odabrana je kodna šema UTF-8, a za poravnanje vrednosti je odabrana unikodna kolacija UTF-8 kodne šeme koja nije osetljiva na velika i mala slova ( _ci znači case insensitive ).