close

SQL-92

Mergi la navigare Mergi la căutare

SQL-92  este a treia versiune a limbajului de interogare a bazei de date SQL . Spre deosebire de standardul SQL-89 , a treia versiune a fost o actualizare foarte semnificativă a limbii. În afară de unele inconsecvențe minore, standardul SQL-89 este aproape complet compatibil cu standardul SQL-92.

Istorie

Primul standard internațional de limbaj SQL a fost adoptat în 1989 (a primit denumirea corespunzătoare SQL/89), iar marea majoritate a DBMS la începutul anilor 90 a anunțat suport pentru acest standard. Cu toate acestea, acest standard are deficiențe și anume: standardul stabilește multe proprietăți importante ale limbajului așa cum sunt definite în implementare sau dependente de acesta. Acest lucru a dat mult loc pentru divergențe între diferitele implementări ale SQL. În al doilea rând, unele aspecte practice ale limbajului nu sunt menționate deloc în standardul SQL/89. Acestea includ în primul rând regulile pentru încorporarea limbajului SQL în limbajul de programare C și așa-numitul SQL dinamic. Drept urmare, furnizorii de DBMS și-au implementat propriile mecanisme, care erau greu compatibile între ele. Acest lucru a condus la o situație în care codul unui SGBD conform standardului SQL/89 s-a dovedit a fi neportabil pentru un alt SGBD, de asemenea, conform cu standardul SQL/89 [1] .

Pentru a elimina deficiențele standardului SQL/89, la sfârșitul anului 1992 a fost adoptat un nou standard internațional pentru limbajul SQL (SQL/92). De asemenea, sa dovedit a fi nu lipsit de defecte, dar a fost totuși semnificativ mai precis și complet decât SQL/89. SQL/92 nu numai că compensează deficiențele SQL/89, dar conține și multe caracteristici noi.

Diferențe majore față de SQL/89

În noul standard, a devenit posibilă utilizarea tipului de date al șirurilor de caractere de lungime variabilă (adică, la specificarea unei coloane, este indicată dimensiunea maximă admisă a șirului stocat în caractere, dar în realitate sunt stocate exact câte caractere). în baza de date pe măsură ce utilizatorul le-a introdus), tipuri de date de șiruri de biți de lungime constantă și variabilă (cum sunt stocate de fapt în baza de date nu este definit în standard), tipuri de date standardizate pentru lucrul cu data și ora: DATA (data ), TIME (timp) și INTERVAL (interval de timp) [2] .

Atunci când creați o schemă de bază de date (care poate fi schimbată ulterior), puteți defini caracteristicile setului național de caractere, inclusiv regulile de colare, iar seturile de caractere utilizate atât în ​​șirurile de text stocate, cât și în identificatorii [2] pot fi definite .

Noul standard introduce capacitatea de a crea tabele stocate și vizualizabile și de a seta sau elimina privilegii de acces folosind operatorii ( CREATE TABLE, CREATE VIEW, GRANT, REVOKE) în orice moment în orice tranzacție în afara unei declarații de definire a schemei. Au existat operatori de distrugere a tabelelor ( DROP TABLEși DROP VIEW), care pot fi executați și în cadrul oricărei tranzacții (dacă aveți privilegiile corespunzătoare). De asemenea, pentru prima dată, a fost definit un operator ALTER TABLEcare vă permite să schimbați dinamic caracteristicile unui tabel creat anterior (în special să adăugați coloane noi la acesta) [2] .

Lista inovațiilor

  • Agent SQL
  • Noi tipuri de date: DATE, TIME, TIMESTAMP, INTERVAL, tip șir BIT, tip șir VARCHARși șir de caractere NATIONAL CHARACTER.
  • Suport pentru seturi de caractere suplimentare în plus față de cele necesare pentru a reprezenta interogări SQL .
  • Operații scalare noi, cum ar fi concatenarea șirurilor, matematica dată și oră, suport pentru condiții.
  • Operații noi de setare, de exemplu , UNION JOIN, NATURAL JOINverificarea diferențelor de setări, setarea intersecției.
  • Suport pentru modificarea definițiilor schemei prin utilizarea ALTERși DROP.
  • Suport nativ pentru limbile C , Ada și MUMPS .
  • Noi posibilități pentru drepturile utilizatorului.
  • Noua funcționalitate de verificare a integrității datelor, cum ar fi CHECK-limit .
  • Noi definiții de schemă pentru „informații”.
  • Executarea dinamică a interogărilor (spre deosebire de cele pregătite în prealabil).
  • Suport îmbunătățit pentru accesul la bazele de date de la distanță.
  • Tabele temporare.
  • Niveluri de izolare a tranzacțiilor .
  • Noi operațiuni de conversie a tipurilor de date din mers folosind CAST.
  • Cursore dinamice.
  • Compatibilitate inversă și viitoare cu alte standarde SQL.
  • Interfață la nivel de apel

Note

Link -uri