SQL

programski jezik za baze podataka

Structured Query Language (SQL - IPA: (izgovor: [ˌɛskjuːˈɛl] ili [`siːkwəl]) je strukturni upitni jezik, programski jezik visoke razine.[1] Najpopularniji je računalni jezik za izradu, traženje, ažuriranje i brisanje podataka iz relacijskih baza podataka. SQL je stardardiziran preko standarda ANSI i ISO.

Povijest uredi

SQL je bio jedan od prvih jezika za relacijski model Edgara F. Codda u njegovom poznatom radu iz 1970. "A Relational Model of Data for Large Shared Data Banks",[2] izdanom u lipnju 1970. u novinama Association for Computing Machinery (ACM), Communications of the ACM, iako su prvi koncepti već cirkulirali unutar samog IBM već 1969. SQL je postao je jedan od najčešće korištenih jezika za relacijske baze podataka[3][4] i danas se može reći da je Coddov model široko prihvaćen kao definitivni model za relacijske baza podataka (RDBMS ili RDMS).

Povijest uredi

Tijekom 1970-ih, grupa iz IBMovog istraživačkog centra u San Joseu razvila je sustav baze podataka "System R" temeljen na Coddovu modelu. Structured English Query Language ("SEQUEL") je bio dizajniran manipulirati i vaditi podatke spremljene u System R. Kratica SEQUEL je kasnije bila sročena u SQL zbog toga što je riječ 'SEQUEL' bila zaštitni znak Hawker Siddeley zrakoplovne tvrtke u Ujedinjenom Kraljevstvu. Iako SQL je bio inspiriran Coddovim radom, IBM-ovci Donald D. Chamberlin i Raymond F. Boyce su postali autori SEQUEL jezičnog dizajna. Njihov koncept je bio izdan da poveća interes prema SQL-u. Prva nekomercijalna, relacijska, ne-SQL baza podataka bila je Ingres, razvijena 1974. u Sveučilištu u Kaliforniji, Berkeleyu.

1978., metodska testiranja su bila napravljena na testnim centrima za kupce. Demonstrirajući korisnost i praktičnost sustava, ovo testiranje se dokazalo kao uspjeh za IBM. Kao rezultat toga, IBM je počeo s razvojem komercijalnih proizvoda baziranih na njihov sustav System R prototip koji je izvršavao SQL, zajedno sa System/38 (najavljen 1978. i komercijalno dostupan u kolovozu 1979.), SQL/DS (predstavljen 1981.) i DB2 (1983.).

Istovremeno Relational Software, Inc. (danas poznat kao Oracle Corporation) je vidio potencijal u opisu koncepta Chamberlina i Boycea, i razvili su vlastitu inačicu RDBMS za ratnu mornaricu, CIA-u i ostale. U ljeto 1979. Relational Software, Inc. je predstavio Oracle V2 (Version2) za računala VAX kao prva komercijalno dostupna implementacija SQL-a.

Naredbe uredi

1. Pretraga podataka i grupiranje podataka uredi

  • SELECT
    • FROM, JOIN
    • WHERE
    • GROUP BY
    • HAVING
    • ORDER BY

Primjer 1:

  SELECT * FROM knjige
  WHERE cijena > 100.00
  ORDER BY naslov

2. Podatkovna manipulacija uredi

  • INSERT
  • UPDATE
  • MERGE
  • DELETE
  INSERT Primjer:
  INSERT INTO moja_tablica (polje1, polje2, polje3) VALUES ('test', 'N', NULL);

3. Kontrola transakcije uredi

  • BEGIN WORK (ili START TRANSACTION, ovisno o SQL dijalektu)
  • COMMIT
  • ROLLBACK

Primjer:

  BEGIN WORK;
  UPDATE inventar SET količina = količina - 3 WHERE item = 'hlače';
  COMMIT;

4. Definicija podataka uredi

  • CREATE
  • DROP
  • TRUNCATE
  • ALTER

Primjer:

  CREATE TABLE moja_tablica (
  moje_polje1 INT,
  moje_polje2 VARCHAR (50),
  moje_polje3 DATE NOT NULL,
  PRIMARY KEY (moje_polje1, moje_polje2)
);

5. Kontrola podataka uredi

  • GRANT (dodjela prava)
  • REVOKE

Primjer:

  GRANT SELECT, UPDATE ON moja_tablica TO neki_korisnik, drugi_korisnik.

6. Ostalo uredi

  • ANSI-standard SQL podupire dvostruku liniju, --, kao jednoredčani indentifikator komentara (neke ekstencije također C-stil /* komentari */ za komentare u više redaka).

Alternative uredi

Treba razlikovati alternative relacijskih jezika upita i alternative SQL-a. U sljedećoj listi su navedene alternative SQL-a, ali su još uvijek (nominalno) relacijske:

  • IBM Business System 12 (IBM BS12)
  • Tutorial D
  • TQL - Luca Cardelli
  • Hibernate Query Language (HQL) - Java-bazirani alat koji koristi modificirani SQL
  • EJB-QL (Enterprise Java Bean Query Language/Java Persistence Query Language)
  • Quel predstavljen 1974. od strane U.C. Berkeley Ingres projekta.
  • Object Query Language - Object Data Management Group.
  • Datalog
  • LINQ

Izvori uredi

  1. Proleksis enciklopedija SQL Objavljeno: 22. lipnja 2012., pristupljeno 5. travnja 2019.
  2. Codd, E.F. Lipanj 1970. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM (engleski). Association for Computing Machinery. 13 (br. 6): 377.–387. doi:10.1145/362384.362685. Inačica izvorne stranice arhivirana 12. lipnja 2007. Pristupljeno 20. listopada 2009.
  3. Chapple, Mike. SQL Fundamentals. About.com: Databases. About.com. Inačica izvorne stranice arhivirana 25. prosinca 2018. Pristupljeno 10. lipnja 2007.
  4. Structured Query Language (SQL). International Business Machines. 27. listopada 2006. Pristupljeno 27. listopada 2006.