Introduction to SQL Standards

The language SQL is standardized by international standard bodies such as ISO and ANSI. By using standard SQL it should be easier to move applications between different database systems without the need to rewrite a substantial amount of code. Using standard SQL does not give any warranty though as all vendors does not implement all features in the standard.

Mimer Information Technology's policy is to develop Mimer SQL as far as possible in accordance with the established standard. This enables users to switch to and from Mimer SQL easily.

The current standard for SQL is ISO/IEC 9075:2016, referred to here as SQL-2016.

The standard is written in a very formal manner. It is therefore difficult to use as a programming guide. SQL-2016 does not contain any specifications for administration of a database system and it does not specify any physical limitations. e.g. the maximum number of columns in table and maximum record size.

History of Standards

The first standard for SQL was published in 1986 and commonly known as SQL-1. An amendment to this standard, containing support for referential integrity, was published in 1989. The next major version of the standard was published in 1992 and is often referred to as SQL-92 (or SQL-2.) In 1996 a standard for stored procedures and functions was published (SQL/PSM), which was followed by the next major version, SQL-99. As mentioned, the current standard was published in 2016 and is called SQL-2016.

SQL-2016

This standard incorporates most of SQL-2016 and SQL/PSM. The publication of this standard made all earlier standards obsolete. SQL-2016 contains the following parts:

Part 1: Framework (SQL/Framework)

Part 2: Foundation (SQL/Foundation)

Part 3: Call-Level Interface (SQL/CLI)

Part 4: Persistent Stored Modules (SQL/PSM)

Part 9: Management of External Data (SQL/MED)

Part 10: Object Language Bindings (SQL/OLB)

Part 11: Information and Definition Schema (SQL/Schemata)

Part 13: Routines and Types Using the Java™ Programming Language (SQL/JRT)

Part 14: XML-Related Specifications (SQL/XML)

Source: ISO/IEC 9075:2016(E) Information technology - Database languages - SQL.

The SQL-2016 standard contains different features and a subset of these features forms Core SQL-2016. The features included in Core SQL-2016 can be seen in SQL-2016 Compliance. This appendix also contains a list of non-core features supported by Mimer SQL.

The Unicode Standard and ISO/IEC 10646

The Unicode Standard is fully compatible with the international standard ISO/IEC 10646, Information Technology – Universal Multiple-Octet Coded Character Set (UCS).

While modeled on the ASCII character set, the Unicode Standard goes far beyond ASCII’s limited ability to encode only the upper- and lowercase letters A through Z. It provides the capacity to encode all characters used for the written languages of the world – more than 1 million characters can be encoded. The Unicode character encoding treats alphabetic characters, ideographic characters, and symbols equivalently, which means they can be used in any mixture and with equal facility.

In addition to the Unicode standard, there is a technical standard called Unicode Collation Algorithm (UCA), which is kept synchronized with the ISO/IEC 14651 standard for International String Ordering.

EOR - European Ordering Rules

The Unicode Default Order and ISO/IEC 14651 have defined the default Latin alphabet to contain not only the base letters A through Z, but also a number of more or less language specific base letters. One example, the Romanian letter Î is not a variant of I; it is a separate base letter between I and J.

The EOR, European Ordering Rules, ENV 13710 (and ISO 12199 - Alphabetical ordering of multilingual terminological and lexicographical data represented in the Latin alphabet) have taken a more natural approach: The alphabet is A through Z, and the other language specific letters are secondary variants of the corresponding base letter.

Mimer SQL is using the EOR tailoring as the basis for all specific language tailorings.