SQL

Från Rilpedia

Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif

SQL (Structured Query Language) är ett standardiserat språk för att hämta och modifiera data i en relationsdatabas. SQL är den standard som de flesta databaser följer. SQL uttalas bokstav för bokstav eller ibland "s'ikuell" som i engelskans "sequel". Det officiella uttalet från ANSI-standardiseringskommisionen är bokstav för bokstav.

Innehåll

Historia

1970 publicerade IBM:s Dr. Edgar F. Codd en artikel i Association for Computing Machinery (ACM) journal[1] Denna artikel kom att bli den accepterade grunden för relationsdatabashanteringssystem (engelska: relational database management systems), allmänt kallat (RDBMS eller RDMS).

Under 1970 utvecklade ett par forskare vid IBM:s forskningscenter i San Jose "System R", som i stort sett baserades på Codds modell. Structured English Query Language ("SEQUEL") var designat för att manipulera och extrahera data från System R. Akronymen SEQUEL byttes senare ut mot SQL eftersom 'SEQUEL' var ett varumärke som den brittiska flygplanstillverkaren Hawker Siddeley ägde. Donald D. Chamberlin och Raymond F. Boyce hade blivit influerade av Codds artikel när de designade språket SEQUEL.

Trots att utvecklingen av SQL hade blivit påverkad av Codds arbete[2], var deras förhoppningar att intresset för SQL skulle öka med deras artikel.

Den första icke kommersiella relationsdatabasen utvecklades på UC Berkeley 1974, och fick namnet Ingres.

Under 1978 testade IBM systemet ute hos sina kunder, för att försöka påvisa nyttan och styrkan i systemet. Testet fick en sådan genomslagskraft för IBM att de började utveckla en kommersiell produkt som implementerade SQL-standarden som baserades på deras prototyp av System R. IBM gick ut 1978 om de skulle snart släppa System/38. I augusti 1979 släpptes den kommersiella varianten av System/38. System/38 följdes av SQL/DS 1981 och DB2 1983 [1].

Samtidigt som IBM läste Codds artikel, så läste ett annat företag också artikeln och förstod dess betydelse. Företaget hette då Relational Software Inc, men bytte sedan namn till Oracle. Oracle specialskrev sin RDBMS för US Navy, CIA och andra myndigheter. Sommaren 1979 lanserade Oracle V2 (Version2) för VAX-datorer. V2 var den första kommersiella implementationen av SQL. Elaka tungor brukar säga att Oracle hann lansera sin RDBMS två år före IBM, när sanningen är att lanseringen bara var några veckor före. Intresset för RDBMS och dess styrka att hantera stora datamängder resulterade i att IBM:s och Oracles försäljningar ökade drastiskt under flera år. Strax efter så började flera andra programvarubolag tillverka sina egna versioner.

1986 fastslog ANSI (American National Standards Institute) SQL som en standard. 1987 antog också Internationella standardiseringsorganisationen (ISO) SQL som en standard.

Enligt ANSI skall SQL uttalas /ɛs kjuː ɛl/, men många engelskspråkiga databasprogrammerare och tekniker kallar det fortfarande för sequel. I Sverige är det vanligast att man uttalar varje bokstav, det vill säga S-Q-L.

Revisioner

År Namn Kallas Kommentar
1986 SQL-87 SQL-87 Antogs först av ANSI och ratificerades av ISO 1987.
1989 SQL-89 Mindre revidering.
1992 SQL-92 SQL2 Stor revidering.
1999 SQL:1999 SQL3 Fastslog standard för triggers, rekursiva frågor, sökningar på reguljära uttryck, icke skalära datatyper och några objektorienterade funktioner. För många relationsdatabasutvecklare är det väldigt kontroversiellt med de icke skalära datatyperna och de objektorienterade funktionerna och det har ännu inte blivit fullt infört i de olika databasmotorerna.
2003 SQL:2003 Introduktion av XML-relaterade funktioner, windowsfunktioner, standardiserade sekvenser och kolumner med autogenerade värden (vilket inkluderar identitet-kolumnen).(See Eisenberg et al.: SQL:2003 Has Been Published)

Databasmotorer som stödjer SQL

Exempel på SQL-frågor

  • Hämta ut värdena namn och arbetsplats från tabellen Person där värdet stad är lika med Stockholm, sorterat efter värdet namn.
 SELECT namn, arbetsplats FROM Person WHERE stad = 'Stockholm' ORDER BY namn;
  • Lägg till en person i tabellen Person med värdena namn = Göran, arbetsplats = Riksdagen och stad = Stockholm.
 INSERT INTO Person (namn, arbetsplats, stad) VALUES ('Göran', 'Riksdagen', 'Stockholm');
  • Sätt värdet namn till Fredrik Reinfeldt för alla personer i tabellen Person som har yrke lika med Statsminister.
 UPDATE Person SET namn = 'Fredrik Reinfeldt' WHERE yrke = 'Statsminister';
  • Ta bort alla personer som har värdet stad satt till Atlantis från tabellen Person.
 DELETE FROM Person WHERE stad = 'Atlantis';

Läs också

Wikibook

Externa länkar

Referenser

  1. Codd, E.F. A Relational Model of Data for Large Shared Data Banks. Communications of the ACM, Vol. 13, No. 6, June 1970, ss. 377-387, tillgänglig här
  2. Donald D. Chamberlin and Raymond F. Boyce, 1974. "SEQUEL: A structured English query language", International Conference on Management of Data, Proceedings of the 1974 ACM SIGFIDET (now SIGMOD) workshop on Data description, access and control, Ann Arbor, Michigan, pp. 249-264
Personliga verktyg