LIMSpec Wiki

SQL ali strukturirani povpraševalni jezik za delo s podatkovnimi bazami (angl. Structured Query Language) je najbolj razširjen in standardiziran povpraševalni jezik za delo s podatkovnimi zbirkami, s programskimi stavki, ki posnemajo ukaze v naravnem jeziku. Določen je z ANSI/ISO SQL standardom. SQL standard se je razvijal od leta 1986 in danes obstaja več različic. Oznaka SQL-92 se navezuje na standard izdan v letu 1992, SQL:1999 se navezuje na standard izdan leta 1999, SQL:2003 se navezuje na različico iz leta 2003 in tako naprej. Izraz SQL standard uporabljamo za poimenovanje trenutne različice SQL standarda v vsakem časovnem obdobju.

Poizvedbe

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. DBMS je 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:

SELECT o.ime, COUNT(*)
FROM osebe o
WHERE o.starost > 30
GROUP BY o.ime
HAVING COUNT(*) > 100
ORDER BY COUNT(*) 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.

SELECT o.ime
FROM osebe o INNER JOIN kraji k ON o.posta=kraji.id
WHERE k.posta LIKE 'Ljubljana';

Manipulacija podatkov

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:
INSERT INTO moja_tabela
        (polje1, polje2, polje3)
    VALUES
        ('test', 'N', NULL);
  • UPDATE stavek za spreminjanje podatkov:
UPDATE moja_tabela
    SET polje1= 'nova vrednost'
    WHERE polje2= 'N';
  • DELETE stavek za brisanje vrstic iz tabele:
DELETE FROM moja_tabela
    WHERE polje2= 'N';

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

Glej tudi