Pojdi na vsebino

SQL

Iz Wikipedije, proste enciklopedije

SQLalistrukturirani povpraševalni jezik za delo s podatkovnimi bazami(angl.Structured Query Language) je najbolj razširjen instandardiziranpovpraševalni jezik za delo spodatkovnimi zbirkami,s programskimi stavki, ki posnemajo ukaze v naravnem jeziku. Določen je zANSI/ISOSQL standardom. SQL standard se je razvijal od leta1986in danes obstaja več različic. Oznaka SQL-92 se navezuje na standard izdan v letu1992,SQL:1999 se navezuje na standard izdan leta1999,SQL:2003 se navezuje na različico iz leta2003in tako naprej. IzrazSQL standarduporabljamo za poimenovanje trenutne različice SQL standarda v vsakem časovnem obdobju.

Poizvedbe

[uredi|uredi kodo]

Najbolj pogosta operacija v SQL-u je poizvedba, ki se izvrši s SELECT stavkom. SELECT stavek vrne podatke iz ene ali več tabel. Standardni SELECT stavek nima nobenega vpliva na podatke v podatkovni bazi in jih ne spreminja.

Poizvedba omogoča uporabniku, da opiše strukturo željenih podatkov.DBMSje odgovoren za planiranje, optimiziranje in izvajanje fizičnih operacij, potrebnih za izpis željenega rezultata. Optimizacija SQL stavkov lahko znatno pohitri izvajanje poizvedb.

Struktura SELECT stavka:

  • SELECT stavku lahko sledi znak *, ki pomeni, da se bodo izpisala vsa polja iz tabele oziroma tabel v FROM stavku. Namesto zvezdice lahko napišemo imena polj.
  • FROM stavku sledijo imena tabel, iz katerih bomo vzeli podatke.
  • WHERE stavek vsebuje pogoje, ki jih bo upoštevala poizvedba.
  • GROUP BY projecira vrstice z istimi vrednostmi v manjšo množico vrstic.
  • HAVING stavek filtrira vrstice.
  • ORDER BY stavek sortira rezultat poizvedbe. Stavku ORDER BY lahko sledi eno ali več polj. Sortiranje je lahko naraščajoče (ASC) ali padajoče (DESC).

Primer strukture SELECT stavka:

SELECTo.ime,COUNT(*)
FROMosebeo
WHEREo.starost>30
GROUPBYo.ime
HAVINGCOUNT(*)>100
ORDERBYCOUNT(*)DESC;

Primer SELECT stavka bo izpisal vsa imena oseb iz krajev, kjer imajo pošto v Ljubljani. Pri tem z INNER JOIN združimo dve tabeli, osebe in kraje.

SELECTo.ime
FROMosebeoINNERJOINkrajikONo.posta=kraji.id
WHEREk.postaLIKE'Ljubljana';

Manipulacija podatkov

[uredi|uredi kodo]

Manipulacija podatkov (angl.Data Manipulation Language) (DML) je podmnožica SQL stavkov, ki se uporablja za dodajanje vrstic (INSERT), spreminjanje (UPDATE) podatkov ali brisanje (DELETE) vrstic.

  • INSERT stavek za dodajanje vrstic v tabelo:
INSERTINTOmoja_tabela
(polje1,polje2,polje3)
VALUES
('test','N',NULL);
  • UPDATE stavek za spreminjanje podatkov:
UPDATEmoja_tabela
SETpolje1='nova vrednost'
WHEREpolje2='N';
  • DELETE stavek za brisanje vrstic iz tabele:
DELETEFROMmoja_tabela
WHEREpolje2='N';

Po izvedbi INSERT, UPDATE ali DELETE SQL stavka je potrebno potrditi (COMMIT) ali razveljaviti (ROLLBACK) spremembo nad podatki.

Glej tudi

[uredi|uredi kodo]