SQL

Izvor: Wikipedija
Skoči na: orijentacija, traži

Structured Query Language (SQL - IPA: (izgovor: [ˌɛskjuːˈɛl] ili [`siːkwəl]) je najpopularniji 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 VE | uredi]

SQL je bio jedan od prvih jezika za relacijski model Edgar F. Codda u njegovom poznatom radu iz 1970. "A Relational Model of Data for Large Shared Data Banks"[1], 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[2][3] 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 VE | uredi]

Tijekom 1970-ih, grupa iz IBMovog istraživačkog centra u San Joseu je razvila 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 sa 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 VE | uredi]

1. Pretraga podataka i grupiranje podataka[uredi VE | 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 VE | uredi]

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

3. Kontrola transakcije[uredi VE | 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 VE | 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 VE | uredi]

  • GRANT (dodjela prava)
  • REVOKE

Primjer:

  GRANT SELECT, UPDATE ON moja_tablica TO neki_korisnik, drugi_korisnik.

6. Ostalo[uredi VE | 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 VE | 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 VE | uredi]

  1. Codd, E.F. (June 1970.). "A Relational Model of Data for Large Shared Data Banks". Communications of the ACM 13 (br. 6): 377.–387.. Preuzeto 9. lipnja 2007..
  2. Chapple, Mike. SQL Fundamentals. About.com, preuzeto 10. lipnja 2007.
  3. Structured Query Language (SQL). International Business Machines, preuzeto 27. listopada 2006.