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.