SQL: 1999 - SQL:1999

SQL: 1999 (ook wel SQL 3 genoemd) was de vierde herziening van de SQL- database- querytaal . Het introduceerde veel nieuwe functies, waarvan er vele verduidelijkingen vereisten in de daaropvolgende SQL: 2003 . Ondertussen is SQL: 1999 verouderd.

Samenvatting

De ISO-standaarddocumenten zijn tussen 1999 en 2002 in verschillende delen gepubliceerd, waarvan de eerste uit meerdere delen bestaat. In tegenstelling tot eerdere edities, gebruikte de naam van de standaard een dubbele punt in plaats van een koppelteken om consistent te zijn met de namen van andere ISO- normen. Het eerste deel van SQL: 1999 bestond uit vijf delen:

Nog drie delen, die ook als onderdeel van SQL worden beschouwd: 1999 werden later gepubliceerd:

Nieuwe features

Gegevenstypen

Booleaanse gegevenstypen

De SQL: 1999-standaard vraagt ​​om een ​​Booleaans type, maar veel commerciële SQL-servers ( Oracle Database , IBM DB2 ) ondersteunen het niet als kolomtype, variabeletype en staan ​​het niet toe in de resultatenset. Microsoft SQL Server is een van de weinige databasesystemen die BOOLEAN-waarden correct ondersteunt met behulp van het gegevenstype "BIT". Elke 1-8 bit-velden nemen een volledige byte aan ruimte op de schijf in beslag. MySQL interpreteert "BOOLEAN" als een synoniem voor TINYINT (8-bits geheel getal met teken). PostgreSQL biedt een standaard conform Booleaans type.

Verschillende door de gebruiker gedefinieerde soorten macht

Deze worden soms gewoon verschillende typen genoemd , maar werden geïntroduceerd als een optionele functie (S011) om bestaande atoomtypen uit te breiden met een onderscheidende betekenis om een ​​nieuw type te creëren en daardoor het typecontrolemechanisme in staat te stellen enkele logische fouten te detecteren, bijv. Het per ongeluk toevoegen van een leeftijd tot een salaris. Bijvoorbeeld:

create type age as integer FINAL;
create type salary as integer FINAL;

creëert twee verschillende en incompatibele typen. De SQL gebruiken verschillende typen naam equivalentie niet structurele equivalentie zoals typedefs in C. Het is nog steeds mogelijk om bewerkingen op compatibele (kolommen of data) van verschillende typen uit te voeren met behulp van een expliciete soort CAST .

Er zijn maar weinig SQL-systemen die deze ondersteunen. IBM DB2 ondersteunt hen. De Oracle-database ondersteunt ze momenteel niet, maar beveelt aan om ze te emuleren met een gestructureerd type op één plaats .

Gestructureerde door de gebruiker gedefinieerde typen

Dit zijn de ruggengraat van de object-relationele database- extensie in SQL: 1999. Ze zijn analoog aan klassen in objectgeoriënteerde programmeertalen . SQL: 1999 staat slechts enkele overerving toe .

Veelvoorkomende tabelexpressies en recursieve query's

SQL: 1999 heeft een WITH [RECURSIVE] -constructie toegevoegd waarmee recursieve queries, zoals transitieve afsluiting , kunnen worden gespecificeerd in de querytaal zelf; zie algemene tabeluitdrukkingen .

Enkele OLAP-mogelijkheden

GROUP BY werd uitgebreid met ROLLUP, CUBE en GROUPING SETS.

Op rollen gebaseerde toegangscontrole

Volledige ondersteuning voor RBAC via CREATE ROLE.

Sleutelwoorden

SQL: 1999 introduceerde het trefwoord UNNEST.

Referenties

Verder lezen