1. U razlicitim sistemima za upravljanje bazama podataka se koriste razliciti dijalekti SQL-a.
2. MySQL, PostgreSQL, Microsoft Access, Oracle, SQLite
3. Sastoje se iz jezika za opis podataka, jezika za opis fizicke strukture, jezik za rad sa podacima I jezik upita. Jezik za opis podataka: neproceduralan, samo daje specifikacije logicke strukture podataka u bazama. Jezik za opis fizicke strukture: Fizicka organizacija podataka, skladistenje I dodela memorije. Jezik za rad sa podacima: Veza izmedju aplikacije I podataka(OPEN, CLOSE, FIND, MODIFY, INSERT, DELETE, REMOVE) Jezik za upite: Upiti nad relacijama Zasnivaju se na relacionoj algebri(definisu se operacije koje se koriste kako bi se stiglo do zeljenog upita) ili relacionom racunu(Definisu se osobine relacije) 4. Postoje one koje se zasnivaju na relacionoj algebra I relacionom racunu. 5. SQL je zasnovan na relacionoj algebra I relacionon racunu. 6. Oracle se placa, PostgreSQL ne, on je opensource i koriste razlicite dijalekte.Oracle je relacioni, dok je PostgreSQL relacion I objektno orijentisan. 7. Upotreba belina ne utice na SQL naredbe. 8. – ili /* */ 9. SQL naredbe: naredbe za definisanje podataka, za rukovodjenje podacima, upravljanje bezbednoscu podataka. 10. CREATE TABLE(pravimo tabelu), CREATE DATABASE(pravimo bazu podataka), DROP TABLE(brisemo tabelu), DROP COLUMN(brisemo atribut (kolonu) tabele ), DROP CONSTRAINT(brisemo ogranicenje), ALTER TABLE(menjamo tabelu), DROP INDEX(brisemo indeks). Korsite se za definisanje modela baze podataka. 11. SELECT, INSERT, UPDATE, DELETE. Koriste se za manipulaciju podataka (azuriranje I izvestavanje) 12. GRANT, REVOKE, BEGIN TRANSACTION(COMMIT TRANSACTION I ROLLBACK TRANSACTION). Koriste se za obezbedjivanje oporavka, konkurentnosti, sigurnosti I integriteta podataka. 13. DDL naredbi (naredbe za definisanje podataka) implicitno. 14. CREATE TABLE *( id SMALLINT PRIMARY KEY NOT NULL, ime VARCHAR, datum DATE); 15. postoje tekstualni, numericki, nabrojivi, datumski I vremenski, logicki(Boolean – true, false) 16. TEXT, CHAR, VARCHAR 17. INTEGER, SMALLINT, BIGINT, FLOAT, DOUBLE, DECIMAL, SERIAL, REAL 18. DATE, TIME, TIMESTAMP, INTERVAL 19. CREATE TYPE brojevi AS ENUM(‘prva’, ‘druga’, ‘treca’, ‘cetvrta’); 20. Domen je uzi pojam koji blize opisuje podatke, daje skup dozvoljenih vrednosti. Tip razlikuje samo tekst, brojeve, datume, logicke tipove, dok domen razlikuje plate, id, brojeve ucesnika, iako su svi oni istog tipa(INTERGER na primer). 21. Null tip se koristi ako ne znamo tu informaciju o instance u bazi podataka ili ako nismo jos ubacili taj podatak u bazu podataka. 22. Kada necemo da koristimo NULL vrednost potrebno je koristiti podrazumevanu vrednost, to jest default value za taj tip. 23. CREATE DATABASE ime_baze; 24. Intergritet entiteta oznacava da primarni kljuc nije NULL u entitetu. 25. Referencijalni integritet oznacava da su svi spoljasnji(sekundarni) kjucevi deo primarnog kljuca tabele sa kojom je ta tabela povezana. 26. Ogranicenja: NOT NULL, UNIQUE, PRIMARY Key, FOREIGN Key, CHECK, EXCLUSION 27. CREATE TABLE ime_tabele( id SMALLINT PRIMARY Key NOT NULL, JMBG INTEGER UNIQUE); 28. Indeksiranje u bazi se koristi kada hocemo brzo da pristupimo odredjenom atributu, ako hocemo da imamo jedinstvenu vrednost kolone, na primer za primarni kljuc, ako nije moguce imati primarni kjuc u tim tabelama. Koristi se nad atributim akoji se koriste za selektovanje, grupisanje I sortiranje. 29. Indeksere nije pozeljno koristiti ako puno azuriramo tabelu posto oni znatno usporavalju naredbe INSERT, DELETE, UPDATE. 30. Po kojoj koloni cemo da indeksiramo zavisi od njene selektivnosti. Dobri kandidati su atributi koje pretrazujemo, selektujemo, po kojim grupisemo, sortiramo. 31. Najvecu selektivnost dobijamo kada je kolona sa najvecom selektivnoscu na prvom mestu, zatim kolona sa najvecom selektivnoscu od svih ostalih I tako dalje. 32. Nije moguce indeksirati kolone tipa bit-map, tekst ili slika. 33. INNER JOIN se korsiti za povezivanje relacionih tabela po jednom ili vise zajednickih atributa. 34. OUTER JOIN se koristi za povezivanje relacionih tabela tako da su ukljucene instance koje zadovoljavaju uslov spajanja, ali I one koje ga ne zadovoljavaju a zadovoljavaju uslov iz WHERE-a. Postoji LEFT JOIN(vracaju se svi zapisi iz leve tabele), RIGHT JOIN(vracaju se svi zapis iz desne tabele) ili FULL JOIN. 35. SELF JOIN se koristi za povezivanje tabele same sa sobom ako postoji relacija izmedju njenih atributa.