请输入您要查询的百科知识:

 

词条 SQL:1999
释义

  1. Summary

  2. New features

      Data types   Boolean data types   Distinct user-defined types of power    Structured user-defined types   Common table expressions and recursive queries   Some OLAP capabilities    Role-based access control    Keywords  

  3. References

  4. Further reading

SQL:1999 (also called SQL 3) was the fourth revision of the SQL database query language. It introduced a large number of new features, many of which required clarifications in the subsequent 2003. In the meanwhile SQL:1999 is deprecated.

Summary

The ISO standard documents were published between 1999 and 2002 in several installments, the first one consisting of multiple parts. Unlike previous editions, the standard's name used a colon instead of a hyphen for consistency with the names of other ISO standards. The first installment of SQL:1999 had five parts:

  • SQL/Framework ISO/IEC 9075-1:1999
  • SQL/Foundation ISO/IEC 9075-2:1999
  • SQL/CLI : an updated definition of the extension Call Level Interface, originally published in 1995, also known as CLI-95 ISO/IEC 9075-3:1999
  • SQL/PSM : an updated definition of the extension Persistent Stored Modules, originally published in 1996, also known as PSM-96 ISO/IEC 9075-4:1999
  • SQL/Bindings ISO/IEC 9075-5:1999

Three more parts, also considered part of SQL:1999 were published subsequently:

  • SQL/MED Management of External Data (SQL:1999 part 9) ISO/IEC 9075-9:2001
  • SQL/OLB Object Language Bindings (SQL:1999 part 10) ISO/IEC 9075-10:2000
  • SQL/JRT SQL Routines and Types using the Java Programming Language (SQL:1999 part 13) ISO/IEC 9075-13:2002

New features

{{expand section|date=November 2012}}

Data types

Boolean data types

The SQL:1999 standard calls for a Boolean type,[1] but many commercial SQL servers (Oracle Database, IBM DB2) do not support it as a column type, variable type or allow it in the results set. Microsoft SQL Server is one of the few database systems that properly supports BOOLEAN values using its "BIT" data type. Every 1–8 bit fields occupies one full byte of space on disk. MySQL interprets "BOOLEAN" as a synonym for TINYINT (8-bit signed integer).[2] PostgreSQL provides a standard conforming Boolean type [3]

Distinct user-defined types of power

Sometimes called just distinct types, these were introduced as an optional feature (S011) to allow existing atomic types to be extended with a distinctive meaning to create a new type and thereby enabling the type checking mechanism to detect some logical errors, e.g. accidentally adding an age to a salary. For example:

create type age as integer FINAL;

create type salary as integer FINAL;

creates two different and incompatible types. The SQL distinct types use name equivalence not structural equivalence like typedefs in C. It's still possible to perform compatible operations on (columns or data) of distinct types by using an explicit type CAST.

Few SQL systems support these. IBM DB2 is one those supporting them.[4] Oracle database does not currently support them, recommending instead to emulate them by a one-place structured type.[5]

Structured user-defined types

{{main|structured type}}

These are the backbone of the object-relational database extension in SQL:1999. They are analogous to classes in objected-oriented programming languages. SQL:1999 allows only single inheritance.

Common table expressions and recursive queries

SQL:1999 added a WITH [RECURSIVE] construct allowing recursive queries, like transitive closure, to be specified in the query language itself; see common table expressions.

Some OLAP capabilities

GROUP BY was extended with ROLLUP, CUBE, and GROUPING SETS.

Role-based access control

Full support for RBAC via CREATE ROLE.

Keywords

SQL:1999 introduced the UNNEST keyword.[6]

References

1. ^ISO/IEC 9075-2:1999 section 4.6 Boolean types
2. ^{{cite web|url=http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html |title=MySQL :: MySQL 5.0 Reference Manual :: 11.4 Using Data Types from Other Database Engines |publisher=Dev.mysql.com |date=2010-01-09 |accessdate=2014-01-30}}
3. ^PostgreSQL documentation about Boolean Type
4. ^{{cite web|url=http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2z10.doc.intro%2Fsrc%2Ftpc%2Fdb2z_distincttypes.htm |title=IBM Information Management Software for z/OS Solutions Information Center |publisher=Publib.boulder.ibm.com |date= |accessdate=2014-01-30}}
5. ^{{cite web|url=http://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_standard_sql003.htm |title=Oracle Compliance To Core SQL:2003 |publisher=Docs.oracle.com |date= |accessdate=2014-01-30}}
6. ^{{cite book| last1 = Jones| first1 = Arie| last2 = Stephens| first2 = Ryan K.| last3 = Plew| first3 = Ronald R.| last4 = Garrett| first4 = Robert F.| last5 = Kriegel| first5 = Alex| chapter = Appendix B ANSI and Vendor Keywords| title = SQL Functions Programmer's Reference| url = https://books.google.com/books?id=QcE1qCobUfcC| publisher = John Wiley & Sons| publication-date = 2005| page = 680| isbn = 9780764598074| accessdate = 2016-05-16}}

Further reading

  • {{cite book |author1 = Jim Melton |author2 = Alan R. Simon |title = SQL:1999: Understanding Relational Language Components |year = 2002 |publisher = Morgan Kaufmann |ISBN = 978-1-55860-456-8 }}
  • {{cite book |author=Jim Melton |title = Advanced SQL, 1999: Understanding Object-Relational and Other Advanced Features |year = 2003 |publisher = Morgan Kaufmann |ISBN = 978-1-55860-677-7 }}
{{-}}{{SQL}}

2 : SQL|Declarative programming languages

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/21 12:23:56