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:
- SQL / Framework ISO / IEC 9075-1: 1999
- SQL / Stichting ISO / IEC 9075-2: 1999
- SQL / CLI : een bijgewerkte definitie van de extensie Call Level Interface, oorspronkelijk gepubliceerd in 1995, ook bekend als CLI-95 ISO / IEC 9075-3: 1999
- SQL / PSM : een bijgewerkte definitie van de extensie Persistent Stored Modules, oorspronkelijk gepubliceerd in 1996, ook bekend als PSM-96 ISO / IEC 9075-4: 1999
- SQL / Bindingen ISO / IEC 9075-5: 1999
Nog drie delen, die ook als onderdeel van SQL worden beschouwd: 1999 werden later gepubliceerd:
- SQL / MED- beheer van externe gegevens (SQL: 1999 deel 9) ISO / IEC 9075-9: 2001
- SQL / OLB Object Language Bindings (SQL: 1999 deel 10) ISO / IEC 9075-10: 2000
- SQL / JRT SQL-routines en -typen met behulp van de Java-programmeertaal (SQL: 1999 deel 13) ISO / IEC 9075-13: 2002
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
- Jim Melton ; Alan R.Simon (2002). SQL: 1999: Inzicht in relationele taalcomponenten . Morgan Kaufmann. ISBN 978-1-55860-456-8
- Jim Melton (2003). Advanced SQL, 1999: Object-relationele en andere geavanceerde functies begrijpen . Morgan Kaufmann. ISBN 978-1-55860-677-7