SQL-92
SQL-92 är den tredje versionen av SQL - databasens frågespråk . Till skillnad från SQL-89- standarden var den tredje versionen en mycket betydande uppdatering av språket. Förutom några mindre inkonsekvenser är SQL-89-standarden nästan helt kompatibel med SQL-92-standarden.
Historik
Den första internationella SQL-språkstandarden antogs 1989 (den fick motsvarande beteckning SQL/89), och de allra flesta DBMS tillkännagav i början av 90-talet stöd för denna standard. Denna standard har dock brister, nämligen: standarden fastställer många viktiga egenskaper hos språket som definierats i implementeringen eller beroende av det. Detta har gett mycket utrymme för divergens mellan olika implementeringar av SQL. För det andra, vissa praktiska aspekter av språket nämns inte alls i SQL/89-standarden. Dessa inkluderar i första hand reglerna för inbäddning av SQL-språket i programmeringsspråket C och den så kallade dynamiska SQL-en. Som ett resultat implementerade DBMS-leverantörer sina egna mekanismer, som knappast var kompatibla med varandra. Detta ledde till en situation där koden för en DBMS som överensstämde med SQL/89-standarden visade sig vara icke-portabel till en annan DBMS som också överensstämde med SQL/89-standarden [1] .
För att eliminera bristerna i SQL/89-standarden antogs i slutet av 1992 en ny internationell standard för SQL-språket (SQL/92). Den visade sig inte heller vara utan brister, men var ändå betydligt mer exakt och komplett än SQL/89. SQL/92 kompenserar inte bara för bristerna i SQL/89, utan innehåller också många nya funktioner.
Stora skillnader från SQL/89
I den nya standarden blev det möjligt att använda datatypen för teckensträngar av variabel längd (det vill säga när man anger en kolumn anges den maximalt tillåtna storleken på den lagrade strängen i tecken, men i verkligheten lagras exakt lika många tecken i databasen som användaren skrev in dem), datatyper av bitsträngar med konstant och variabel längd (hur de faktiskt lagras i databasen är inte definierat i standarden), standardiserade datatyper för att arbeta med datum och tid: DATUM (datum ), TID (tid) och INTERVAL (tidsintervall) [2] .
När du skapar ett databasschema (som kan ändras senare) kan du definiera funktionerna i den nationella teckenuppsättningen, inklusive sorteringsregler, och teckenuppsättningarna som används både i lagrade textsträngar och i identifierare [2] kan definieras .
Den nya standarden introducerar möjligheten att skapa lagrade och visningsbara tabeller och ställa in eller ta bort åtkomstbehörigheter med hjälp av operatorerna ( CREATE TABLE, CREATE VIEW, GRANT, REVOKE) när som helst i alla transaktioner utanför en schemadefinitionssats. Det fanns bordsdestruktionsoperatorer ( DROP TABLEoch DROP VIEW), som också kan köras i alla transaktioner (om du har rätt behörighet). För första gången definierades också en operator ALTER TABLEsom gör att du dynamiskt kan ändra egenskaperna för en tidigare skapad tabell (särskilt lägga till nya kolumner till den) [2] .
Lista över innovationer
- SQL-agent
- Nya datatyper:
DATE,TIME,TIMESTAMP,INTERVAL, strängtypBIT, strängtypVARCHARoch strängarNATIONAL CHARACTER. - Stöd för ytterligare teckenuppsättningar utöver de som krävs för att representera SQL -frågor.
- Nya skalära operationer som strängsammansättning, datum och tid matematik, villkorsstöd.
- Nya inställningsoperationer, t.ex. ,
UNION JOIN,NATURAL JOINställ in differenskontroll, ställ in korsning. - Stöd för att ändra schemadefinitioner genom användning av
ALTERochDROP. - Inbyggt stöd för språken C , Ada och MUMPS .
- Nya möjligheter för användarrättigheter.
- Ny funktionalitet för kontroll av dataintegritet, som CHECK-limit .
- Nya schemadefinitioner för "information".
- Dynamisk exekvering av frågor (i motsats till förberedda).
- Förbättrat stöd för fjärråtkomst till databaser.
- Tillfälliga bord.
- Transaktionsisoleringsnivåer .
- Nya on-the-fly datatypkonverteringsoperationer med hjälp av
CAST. - Dynamiska markörer.
- Bakåt- och framtida kompatibilitet med andra SQL-standarder.
- Samtalsnivågränssnitt
Anteckningar
- ↑ SQL Relational Database Language Standards: An Overview Arkiverad 29 december 2010 på Wayback Machine (ryska)
- ↑ 1 2 3 Sammanfattning av skillnader mellan SQL/92 och SQL/89 Arkiverad 13 december 2009 på Wayback Machine (ryska)
Länkar
- SQL -92- standarden
- BNF Grammar för ISO/IEC 9075:1992 - Database Language SQL (SQL-92 )
- Vissa funktioner i SQL/92 (ryska)
- SQL-92 (referensmanual) (ryska)