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.