SQL software engineering standards are published by ISO. They include the ISO/IEC 9075 series, which covers framework, foundation, call-level interface, persistent stored modules, management of stored data, object language bindings, information and definition schema, routines and types using Java, and XML-related specifications.
ISO/IEC 9075-1:2016 describes the conceptual framework used in other parts of ISO/IEC 9075 to specify the grammar of SQL and the result of processing statements in that language by an SQL-implementation.
ISO/IEC 9075-1:2016 also defines terms and notation used in the other parts of ISO/IEC 9075.
ISO/IEC 9075-2:2016 defines the data structures and basic operations on SQL-data. It provides functional capabilities for creating, accessing, maintaining, controlling, and protecting SQL-data.
ISO/IEC 9075-2:2016 specifies the syntax and semantics of a database language:
- For specifying and modifying the structure and the integrity constraints of SQL-data.
- For declaring and invoking operations on SQL-data and cursors.
- For declaring database language procedures.
- For embedding SQL-statements in a compilation unit that is otherwise written in a particular programming language (host language).
- For deriving an equivalent compilation unit in the host language. In that equivalent compilation unit, each which invoke an SQL externally-invoked procedure that, when executed, has an effect equivalent to exe-cuting the SQL-statement.
- For direct invocation of SQL-statements.
- To support dynamic preparation and execution of SQL-statements.
ISO/IEC 9075-2:2016 provides a vehicle for portability of data definitions and compilation units between SQL-implementations.
ISO/IEC 9075-2:2016 provides a vehicle for interconnection of SQL-implementations.
Implementations of this ISO/IEC 9075-2:2016 can exist in environments that also support application program-ming languages, end-user query languages, report generator systems, data dictionary systems, program library systems, and distributed communication systems, as well as various tools for database design, data administration, and performance optimization.
ISO/IEC 9075-3:2016 defines the structures and procedures that can be used to execute statements of the database language SQL from within an application written in a programming language in such a way that procedures used are independent of the SQL statements to be executed.
ISO/IEC 9075-4:2016 specifies the syntax and semantics of a database language for declaring and maintaining persistent database language routines in SQL-server modules.
The database language for <externally-invoked procedure>s and <SQL-invoked routine>s includes:
- The specification of statements to direct the flow of control.
- The assignment of the result of expressions to variables and parameters.
- The specification of condition handlers that allow SQL-invoked routines to deal with various conditions that arise during their execution.
- The specification of statements to signal and resignal conditions.
- The declaration of standing SQL-server cursors.
- The declaration of local variables.
It also includes the definition of the Information Schema tables that contain schema information pertaining to SQL-server modules and SQL-invoked routines.
ISO/IEC 9075-9:2016 defines extensions to Database Language SQL to support management of external data through the use of foreign-data wrappers and datalink types.
ISO/IEC 9075-2 specifies embedded SQL for the programming languages: Ada, C, COBOL, Fortran, MUMPS, Pascal, and PL/I. ISO/IEC 9075-10:2016 defines similar features of Database language SQL that support embedding of SQL-statements into programs written in the Java? programming language (Java is a registered trademark of Sun Microsystems, Inc.). The embedding of SQL into Java is commonly known as "SQLJ". This part of ISO/IEC 9075 specifies the syntax and semantics of SQLJ, as well as mechanisms to ensure binary portability of resulting SQLJ applications. In addition, it specifies a number of Java packages and their contained classes (including methods).
Throughout ISO/IEC 9075-10:2016, the terms "SQLJ" and "SQL/OLB" are used synonymously.
NOTE Additional explanatory material (non-normative) about certain facilities defined in ISO/IEC 9075-2 can be found in ISO/IEC TR 19075-3.
ISO/IEC 9075-11:2016 specifies an Information Schema and a Definition Schema that describes:
- The structure and integrity constraints of SQL-data.
- The security and authorization specifications relating to SQL-data.
- The features and subfeatures of ISO/IEC 9075, and the support that each of these has in an SQL-implementation.
- The SQL-implementation information and sizing items of ISO/IEC 9075 and the values supported by an SQL-implementation
ISO/IEC 9075-13:2016 specifies the ability to invoke static methods written in the Java? programming language as SQL-invoked routines and to use classes defined in the Java programming language as SQL structured user-defined types. (Java is a registered trademark of Oracle Corporation and/or its affiliates.)
ISO/IEC 9075-14:2016 defines ways in which Database Language SQL can be used in conjunction with XML.