SQL vs HQL
Strukturirani upitni jezik, popularno poznat i kao SQL, jezik je baze podataka koji za upravljanje podacima koristi koncept relacijskog upravljanja bazama podataka. Upravljanje podacima uključuje odabir (dohvaća podatke iz jedne ili više tablica), umetanje (dodaje jedan ili više redaka u tablici), ažuriranje (odgovorno za promjenu vrijednosti jednog ili više redaka u tablici), brisanje ( odgovoran za brisanje jednog ili više redaka u tablici) i stvaranje shema putem upita.
HQL ili Hibernate Query Language proširuje koncept objektno orijentiranog programiranja na postojeći SQL. S lakoćom se učiti i sličan je po sintaksi SQL-u. Ima značajke poput funkcija združivanja i grupiranja po ili narudžbe po klauzulama koje često vidite u SQL-u.
Neke značajke HQL-a:
Predstavlja SQL upite u obliku objekata i njihovih svojstava koja su osnova objektno orijentiranog programiranja.
Rezultat upita nije običan podatak, već kombinacija objekata koji se mogu programsko mijenjati. HQL čak vraća podređene objekte kao dio rezultata upita.
Sadrži koncepte kao što su paginacija, dinamičko profiliranje i dr. koji nisu nepoznati programerima SQL-a.
U HQL-u pišete neovisne upite tipa baze podataka koji se tijekom izvođenja pretvaraju u SQL upite.
Provodi sve koncepte OOP uključujući nasljedstvo.
Razlike između SQL i HQL:
SQL se temelji na modelu relacijske baze podataka dok je HQL kombinacija objektno orijentiranog programiranja s konceptima relacijske baze podataka.
SQL manipulira podacima pohranjenim u tablicama i mijenja svoje redove i stupce. HQL je zabrinut za objekte i njegova svojstva.
SQL je zabrinut za odnos koji postoji između dvije tablice, dok HQL razmatra odnos između dva objekta.
Sažetak:
1. HQL je sličan SQL-u i neosjetljiv je na velika i mala slova.
2. HQL i SQL oba upita o požaru u bazi podataka. U slučaju HQL-a, upiti su u
oblik objekata koji se prevode na SQL upite u ciljnoj bazi podataka.
3. SQL radi s tablicama i stupovima kako bi manipulirao podacima pohranjenim u njemu.
4. HQL radi s klasama i njihovim svojstvima da bi se na kraju preslikao u strukturu tablice
u bazi podataka.
5. HQL podržava koncepte poput polimorfizma, nasljeđivanja, udruživanja itd. To je
moćan i jednostavan za učenje jezik koji SQL objekt čini orijentiranim.
6. SQL omogućava izmjenu podataka putem upita za umetanje, ažuriranje i brisanje. Možete dodati
tablice, procedure ili prikazi u vašu bazu podataka. Dozvole za te dodane objekte
može se mijenjati.