close

SQL-92

Ga naar navigatie Ga naar zoeken

SQL-92  is de derde versie van de SQL - databasequerytaal . In tegenstelling tot de SQL-89- standaard was de derde versie een zeer belangrijke update van de taal. Afgezien van enkele kleine inconsistenties, is de SQL-89-standaard bijna volledig compatibel met de SQL-92-standaard.

Geschiedenis

De eerste internationale SQL-taalstandaard werd in 1989 aangenomen (hij kreeg de overeenkomstige aanduiding SQL/89), en de overgrote meerderheid van DBMS in het begin van de jaren 90 kondigde ondersteuning voor deze standaard aan. Deze standaard heeft echter tekortkomingen, namelijk: de standaard legt veel belangrijke eigenschappen vast van de taal zoals gedefinieerd in de implementatie of daarvan afhankelijk. Dit heeft veel ruimte gegeven voor divergentie tussen verschillende implementaties van SQL. Ten tweede worden sommige praktische aspecten van de taal helemaal niet genoemd in de SQL/89-standaard. Deze omvatten voornamelijk de regels voor het inbedden van de SQL-taal in de programmeertaal C en de zogenaamde dynamische SQL. Als gevolg hiervan implementeerden DBMS-leveranciers hun eigen mechanismen, die nauwelijks compatibel waren met elkaar. Dit leidde tot een situatie waarin de code van het ene DBMS dat aan de SQL/89-standaard voldeed niet overdraagbaar bleek te zijn naar een ander DBMS dat ook wel aan de SQL/89-standaard [1] .

Om de tekortkomingen van de SQL/89-standaard weg te werken, werd eind 1992 een nieuwe internationale standaard voor de SQL-taal (SQL/92) aangenomen. Het bleek ook niet zonder gebreken, maar was toch beduidend nauwkeuriger en vollediger dan SQL/89. SQL/92 compenseert niet alleen de tekortkomingen van SQL/89, maar bevat ook veel nieuwe functies.

Grote verschillen met SQL/89

In de nieuwe standaard werd het mogelijk om het datatype van tekenreeksen van variabele lengte te gebruiken (dat wil zeggen, bij het specificeren van een kolom wordt de maximaal toegestane grootte van de opgeslagen tekenreeks in tekens aangegeven, maar in werkelijkheid worden precies evenveel tekens opgeslagen in de database zoals de gebruiker ze heeft ingevoerd), datatypes van bitstrings van constante en variabele lengte (hoe ze feitelijk in de database worden opgeslagen is niet gedefinieerd in de standaard), gestandaardiseerde datatypes voor het werken met datum en tijd: DATE (datum ), TIME (tijd) en INTERVAL (tijdsinterval) [2] .

Bij het maken van een databaseschema (dat later kan worden gewijzigd), kunt u de kenmerken van de nationale tekenset definiëren, inclusief sorteerregels, en de tekensets die zowel in opgeslagen tekstreeksen als in identifiers [2] worden gebruikt, kunnen worden gedefinieerd .

De nieuwe standaard introduceert de mogelijkheid om opgeslagen en zichtbare tabellen te maken en toegangsrechten in te stellen of te verwijderen met behulp van de operators ( CREATE TABLE, CREATE VIEW, GRANT, REVOKE) op elk moment in elke transactie buiten een schemadefinitie-instructie. Er waren operatoren voor tafelvernietiging ( DROP TABLEen DROP VIEW), die ook binnen elke transactie kunnen worden uitgevoerd (als u over de juiste privileges beschikt). Ook is er voor de eerste keer een operator gedefinieerd ALTER TABLEwaarmee u de kenmerken van een eerder gemaakte tabel dynamisch kunt wijzigen (in het bijzonder door er nieuwe kolommen aan toe te voegen) [2] .

Lijst met innovaties

  • SQL-agent
  • Nieuwe gegevenstypen: DATE, TIME, TIMESTAMP, INTERVAL, tekenreekstype BIT, tekenreekstype VARCHARen tekenreeksen NATIONAL CHARACTER.
  • Ondersteuning voor extra tekensets naast de tekens die nodig zijn om SQL -query's weer te geven.
  • Nieuwe scalaire bewerkingen zoals aaneenschakeling van tekenreeksen, wiskunde voor datum en tijd, ondersteuning van voorwaarden.
  • Nieuwe set-bewerkingen, bijv. , UNION JOIN, NATURAL JOINstel verschilcontrole in, stel snijpunt in.
  • Ondersteuning voor het wijzigen van schemadefinities door het gebruik van ALTERen DROP.
  • Native ondersteuning voor C- , Ada- en MUMPS-talen .
  • Nieuwe mogelijkheden voor gebruikersrechten.
  • Nieuwe functionaliteit voor gegevensintegriteitscontrole, zoals CHECK-limit .
  • Nieuwe schemadefinities voor "informatie".
  • Dynamische uitvoering van query's (in tegenstelling tot vooraf voorbereide query's).
  • Verbeterde ondersteuning voor externe databasetoegang.
  • Tijdelijke tafels.
  • Isolatieniveaus voor transacties .
  • Nieuwe on-the-fly gegevenstypeconversiebewerkingen met behulp van de CAST.
  • Dynamische cursors.
  • Achterwaartse en toekomstige compatibiliteit met andere SQL-standaarden.
  • Oproepniveau-interface

Opmerkingen

Links