Prijeđi na sadržaj

SQL

Izvor: Wikipedija
Inačica 1893976 od 17. lipnja 2009. u 15:03 koju je unio SpeedyGonsales (razgovor | doprinosi) (- kategorija "Baze podataka"; + kategorija "SQL" (HotCat))

Structured Query Language (SQL - IPA: [`ɛs`kju`ɛl] ili [`siːkwəl]).) je najpopularniji računalni jezik za izradu, pronalazak, ažuriranje i brisanje podataka iz relacijskih upravnih sustava baze podataka. SQL je stardardiziran od strane ANSI i ISO standarda.

Povijest

Utjecajni tisak, "A Relational Model of Data for Large Shared Data Banks", Dr. Edgar F. Coddova, koji je bio izdan u lipnju 1970. u novinama Association for Computing Machinery (ACM), Communications of the ACM, iako prvi koncepti su bili cirkulirali unutar samog IBM već 1969. Coddov model postao je široko prihvaćen kao definitivni model za relacijske upravne sustave baze podataka (RDBMS ili RDMS).

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 da manipulira i vadi podatke spremljene u System R. was designed to manipulate and retrieve data stored in System R. Akronim SEQUEL je kasnije bio sročen 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, IBMovci 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 VAX računala kao prva komercijalno dostupna implementacija SQL-a.

Naredbe

1. Pretraga podataka i grupiranje podataka

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

Primjer 1:

 SELECT * FROM knjige
 WHERE cijena > 100.00
 ORDER BY naslov

2. Podatkovna manipulacija

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

3. Kontrola transakcije

  • 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

  • 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

  • GRANT (dodjela prava)
  • REVOKE

Primjer:

 GRANT SELECT, UPDATE ON moja_tablica TO neki_korisnik, drugi_korisnik.

6. Ostalo

  • 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

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