SQL
Structured Query Language
Nekaj besed o SQL
SQL je najbolj razširjen računalniški jezik, ki omogoča kreiranje, spreminjanje, branje in manipulacijo s podatki, shranjenimi v relacijski PB. Širitev jezika gre v smeri podpore objektno relacijskim podatkovnim bazam.
Jezik SQL je standardiziran (ANSI / ISO), vendar je upoštevanje standardov s strani nekaterih proizvajalcev SUPB vprašljivo.
Zgodovina SQL in standardi
- 1970. Edgar F. Codd objavi članek "A Relational Model of Data for Large Shared Data Banks"
- 70. leta – IBM San Jose reziskovalni center razvije "System R“; SQL je namenjen manipulaciji in branju podatkov
- 1978 – IBM razvija komercialne relacijske SUPB-je, ki temeljijo na SQL-u (System/38; 1981. SQL/DS; 1983. DB2)SQL86 ali SQL 87(ANSI), leta 1987. tudi ISO
- SQL89 (manjše spremembe)
- SQL92 ali SLQ 2 (temeljite spremembe)
- SQL:1999 ali SQL 3 (rekurzivne poizvedbe, sprožilci, nekatere objektne zmožnosti)
- SQL:2003 (XML podpora, okenske funkcije, …)
Namen SQLa
Osnovni namen: izvedba specifičnih, omejenih nalog - izvajanje poizvedb
Značilnosti SQL-a:
- zasnovan je na množicah (ker izhaja iz relacijskega modela podatkov),
- deklarativnost (povemo KAJ in ne KAKO),
- funkcionalna preprostost, enostavnejši nabor ukazov (v primerjavi z Focus, SAS, …).
Smernice dopolnitev SQL-a
- Uporaba stavkov SQL jezika znotraj nekega ‘pravega’ programskega jezika.
- Uporaba PL/SQL jezika.
Alternative SQLu
- IBM Business System 12 (IBM BS12)
- Top's Query Language (IBM)
- Tutorial D (truly relational database query languag )
- Hibernate Query Language (HQL) - A Javansko orodje, ki uporablja modificirano obliko SQL-a)
- Object Query Language (Object Data Management Group); primeri: The Enterprise JavaBeans (EJB), Java Data Objects (JDO)
Glavne kategorije stavkov jezika SQL
- DDL (Data Definition Language)
- Omogočajo kreiranje in spreminjanje opisa podatkov.
- DML (Data Manipulation Language)
- Omogočajo dodajanje, brisanje in spreminjanje podatkov.
- DQL (Data Query Language)
- Omogočajo izvajanje poizvedb.
- DCL (Data Control Language)
- Omogočajo opredeljevanje in nadzor dostopa do podatkov.
- Stavki za administracijo (Data administration commands)
- Omogočajo sledenje in analizo izvajanja drugih stavkov SQL.
- Stavki za nadzor transakcij (Transactional control commands)
- Omogočajo sprožanje in preklic izvajanja transakcij.