SQL | |
Dato for første versjon | 1974 |
---|---|
Paradigme | deklarativ , prosessuell , objektorientert |
Forfatter | Donald D. Chamberlin og Raymond F. Boyce |
Utvikler | IBM |
Siste versjon | SQL: 2016 (2016) |
Skrive | statisk og sterk |
Dialekter | SQL-86, SQL-89, SQL-92, SQL: 1999, SQL: 2003, SQL: 2008, SQL: 2011, SQL: 2016 |
Påvirket | CQL , LINQ , Windows PowerShell |
Implementeringer | mange |
Operativsystem | Kryssplattform |
Filutvidelse | kvm |
Utvidelse | .sql |
---|---|
MIME-type | application/x-sql, application/sql |
Utviklet av | ISO / IEC |
Formattype | Database |
Standard | ISO / IEC 9075 |
SQL (akronym for Structured Query Language , på fransk strukturert spørrespråk ) er et standardisert dataspråk som brukes til å utnytte relasjonsdatabaser . Den datamanipulasjon språket en del av SQL kan du finne, legge til, endre eller slette data i relasjonsdatabaser.
Foruten språket for databehandling:
Opprettet i 1974, standardisert siden 1986, er språket anerkjent av de aller fleste relasjonelle databasestyringssystemer (forkortet RDBMS) på markedet.
SQL er en del av samme familie som språkene ALPHA (som det er etterkommer av), SQUARE, QUEL (integrert i Ingres ) eller QBE (Zloof). Det ble kalt SEQUEL da den ble født, men dette navnet ble endret til SQL på grunn av det faktum at SEQUEL var et registrert varemerke av flyet produsenten Hawker-Siddeley .
I juni 1970 , Edgar Frank Codd publiserte artikkelen A Relational Model of Data for Large Shared Databaser i tidsskriftet Communications of the ACM ( Association for Computing Machinery ). Dette relasjonelle depotet basert på logikken i førsteordens predikater ble raskt anerkjent som en interessant teoretisk modell for spørring av databaser , og inspirerte utviklingen av Structured English QUEry Language ( SEQUEL ). Strukturert spørring på engelsk ”), senere omdøpt til SQL pga. varemerke konflikt .
Denne første versjonen ble utviklet på IBM i 1970 av Donald Chamberlin og Raymond Boyce, og ble designet for å manipulere og redigere data som er lagret i relasjonsdatabasen ved hjelp av IBM System R- databasesystemet . Navnet SEQUEL, som ble kommersielt registrert med fly produsenten Hawker Siddeley for en datainnsamling system, ble droppet og kontrakt til SQL i 1975. SQL ble deretter ventet å bli en viktig del av fremtidens FS prosjektet .
I 1979 , Relational Software, Inc. (nå Oracle Corporation ) introduserte den første kommersielt tilgjengelige versjon av SQL, raskt etterlignet av andre leverandører.
SQL ble vedtatt som en anbefaling av American Standards Institute (ANSI) i 1986 , deretter som en internasjonal standard av ISO i 1987 som ISO / IEC 9075 - Informasjonsteknologi - Databasespråk - SQL .
Den internasjonale SQL-standarden har gått gjennom en rekke revisjoner:
År | Etternavn | Appellasjon | Kommentarer |
---|---|---|---|
1986 | ISO / IEC 9075: 1986 | SQL-86 eller SQL-87 | Publisert av ANSI og deretter vedtatt av ISO i 1987 . |
1989 | ISO / IEC 9075: 1989 | SQL-89 eller SQL-1 | Mindre revisjon. |
1992 | ISO / IEC 9075: 1992 | SQL-92 (en) alias SQL2 | Stor revisjon. |
1999 | ISO / IEC 9075: 1999 | SQL-99 ( alias ) alias SQL3 | Regulære uttrykk, rekursive spørsmål, utløsere, ikke-skalære typer og noen få objektorienterte funksjoner (de to siste punktene er noe kontroversielle og ennå ikke implementert i stor grad). |
2003 | ISO / IEC 9075: 2003 | SQL: 2003 (en) | Introduksjon av funksjoner for XML-manipulering, "vindusfunksjoner", standardiserte ordrer og kolonner med egenproduserte verdier (inkludert identitetskolonner). |
2008 | ISO / IEC 9075: 2008 | SQL: 2008 (no) | Lagt til noen vindusfunksjoner (ntile, lead, lag, first value, last value, nth value), begrense antall rader (OFFSET / FETCH), mindre forbedring av forskjellige typer, markører og automatisk økningsmekanismer. |
2011 | ISO / IEC 9075: 2011 | SQL: 2011 (no) | Lagt til støtte for timetabeller (automatisk historisering). |
Som enhver internasjonal standard publisert av ISO, er ISO / IEC 9075 tilgjengelig for kjøp fra denne organisasjonens nettside. Det siste utkastet til standarden er tilgjengelig på wiscorp.com.
SQL-språket brukes hovedsakelig på tre måter:
SQL-setninger er skrevet på en måte som ligner på vanlige engelske setninger. Denne tiltenkte likheten er ment å lette læring og lesing.
Det er et deklarativt språk, det vil si at det gjør det mulig å beskrive det forventede resultatet uten å beskrive hvordan man får det. DBMS er utstyrt med spørringsoptimerer - mekanismer som automatisk bestemmer den optimale måten å utføre operasjoner på, blant annet ved å estimere algoritmisk kompleksitet . Dette er basert på statistikk samlet fra dataene i databasen (antall poster, antall forskjellige verdier i en kolonne, etc.).
SQL-setninger dekker 4 områder:
data manipulasjon språkInstruksjonene for å manipulere innholdet i databasen begynner med nøkkelordene SELECT , UPDATE , INSERT eller DELETE som tilsvarer operasjonene for å finne innhold, modifikasjon, tillegg og sletting.
Forskjellige andre nøkkelord som FRA , JOIN og GROUP BY brukes til å indikere relasjonelle algebraoperasjoner som skal utføres for å få innholdet som skal manipuleres.
datadefinisjonsspråkInstruksjoner for å manipulere metadata - beskrivelse av strukturen, organisasjonen og egenskapene til databasen - begynn med nøkkelordene CREATE , ALTER , DROP , RENAME , COMMENT eller TRUNCATE som tilsvarer operasjonene for å legge til, endre, slette, endre navn, kommentere eller tømme en metadata. Disse nøkkelordene blir umiddelbart etterfulgt av typen metadata som skal brukes - TABELL , VIS , INDEKS ...
datastyringsspråk og transaksjonskontrollspråkGRANT- og TILBAKE- søkeordene brukes til å autorisere operasjoner til bestemte personer, for å legge til eller fjerne autorisasjoner. Mens søkeordene COMMIT og ROLLBACK brukes til å bekrefte eller avbryte utførelsen av transaksjoner .
SQL-syntaks er gjenstand for ISO 9075- standarden . Denne standarden gir mulighet for DBMS- produsenter å legge til spesifikke og ikke-standardiserte instruksjoner. Standarden har utviklet seg gjennom årene for å holde tritt med kravene, og DBMS-utgivere har ofte lagt til evner til produktene sine før de ble gjenstand for standarder, noe som forårsaker variasjoner i forståelse og forståelse. Tolkning som er laget av en kildekode i SQL av forskjellige DBMS-programvare. Disse forskjellene betyr at en kildekode skrevet uten forholdsregler for et gitt DBMS ikke nødvendigvis vil fungere med et annet DBMS.
SQL kan administrere, og generelt administrere, flere databaser. Du må angi fra starten hvilken du vil jobbe med ved en BRUK-instruksjon
USE mabase;Den datamanipulasjon språk DML eller Data Manipulation Language, DML, på engelsk, er en undergruppe av SQL brukes til å legge til, endre og slette data:
NULL- nøkkelordet ble introdusert i SQL for å uttrykke manglende informasjon i relasjonsmodellen. Innføringen av NULL, sammen med TRUE and FALSE, er grunnlaget for ternær logikk . NULL har ingen verdi i SQL (og er ikke medlem av noen datatype), det er et reservert nøkkelord, noe som indikerer at informasjon mangler. Derfor kan sammenligningen med NULL, selv med NULL i seg selv, ikke være SANN eller FALSK, den må være ukjent og har ingen boolsk verdi. Faktisk kan NULL ikke betraktes som lik NULL, siden de to manglende informasjonene, som disse to forskjellige NULLene representerer, kan vise seg å være forskjellige. Vi sier generelt at NULL er en "markør".
Andre spørringsspråk inkluderer forfedrene til SQL, for eksempel QUEL (QUery English Language) eller språket QBE (Query By Example). Imidlertid er QBE- språket , veldig forskjellig fra SQL, fremdeles i kraft i "filtypen RDBMS som Paradox (Ansa Software / Borland / Corel) eller Microsoft Access (database) fra Microsoft .
Merk at MED-teknikken delvis er tatt opp i SQL: 1999-standarden for å lage " Common Table Expression " (CTE eller Table d'Expression Partagée på fransk), det vil si ikke-instantierte visninger som kan brukes av forespørsel der de vises, for å faktorisere uttrykk eller for å tillate skriving av rekursive spørsmål for elegant å løse tre- eller grafgjennomganger.
Andre kandidater inkluderer:
|
Alle disse systemene har visse særegenheter, hvorav noen ikke finnes i andre. Det er også alltid interessant å henvise til RDBMS referansehåndbok, under spesifikke eller komplekse forespørsler, samt for optimalisering.