SQL compliance

Generally, compliance means adhering to a rule, such as a policy, standard, specification, or law. So, SQL Compliance means adhering to rules laid for SQL. Some standards and protocols related to SQL are mentioned in this.

FunctionDescriptionFirebirdIBM Db2Oracle DatabaseMicrosoft SQLMonetDBMySQLPostgreSQLSQLiteApache IgniteMimer SQLNexusDB
E011Numeric data typesPartialYesYesUn­knownYesUn­knownYesUn­knownPartialYesYes
E011-01INTEGER and SMALLINT data types (including all spellings)YesYesYesUn­knownYesYesYesUn­knownYesYesYes
E011-02REAL, DOUBLE PRECISION, and FLOAT data typesYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E011-03DECIMAL and NUMERIC data typesPartialYesYesUn­knownYesUn­knownYesUn­knownPartialYesYes
E011-04Arithmetic operatorsYesYesYesUn­knownYesUn­knownYesUn­knownPartialYesYes
E011-05Numeric comparisonYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E011-06Implicit casting among the numeric data typesYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E021Character string typesYesYesPartialPartialPartialUn­knownPartialUn­knownPartialYesYes
E021-01CHARACTER data type (including all its spellings)YesYesYesUn­knownYesUn­knownYesUn­knownPartialYesYes
E021-02CHARACTER VARYING data type (including all its spellings)YesYesPartialUn­knownYesUn­knownYesUn­knownPartialYesYes
E021-03Character literalsYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E021-04CHARACTER_LENGTH functionYesYesNoNoYesYesPartial[note 1]NoYesYesYes
E021-05OCTET_LENGTH functionYesYesNoNoYesYesYesNo[note 2]YesYesYes
E021-06SUBSTRING functionYesYesNoNoYesYesYesNoYesYesYes
E021-07Character concatenationYesYesYesNoYesNoYesYesYesYesYes
E021-08UPPER and LOWER functionsYesYesYesYesYesYesYesYesYesYesYes
E021-09TRIM functionYesYesYesNo[note 3][1]YesYesYesNoYesYesYes
E021-10Implicit casting among the fixed-length and variable-length character string typesYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E021-11POSITION functionYesYesNo[note 4]No[note 5][2]No[note 6]YesYesNoYesYesYes
E021-12Character comparisonYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E031IdentifiersYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E031-01Delimited identifiersYesYesYesYesYesUn­knownYesYesYesYesYes
E031-02Lower case identifiersYesYesUn­knownUn­knownYesUn­knownYesUn­knownYesYesYes
E031-03Trailing underscoreYesYesYesYesYesYesYesYesYesYesYes
E051Basic query specificationPartialYesPartialUn­knownYesPartialYesUn­knownPartialYesYes
E051-01SELECT DISTINCTYesYesYesYesYesYesYesYesYesYesYes
E051-02GROUP BY clauseYesYesYesYesYesYesYesYesPartialYesYes
E051-04GROUP BY can contain columns not in <select-list>YesYesYesUn­knownYesNoYesUn­knownYesYesYes
E051-05Select list items can be renamedYesYesYesYesYesYesYesUn­knownYesYesYes
E051-06HAVING clauseYesYesYesYesYesYesYesUn­knownYesYesYes
E051-07Qualified * in select listYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E051-08Correlation names in the FROM clauseYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E051-09Rename columns in the FROM clauseNoYesUn­knownUn­knownYesUn­knownYesUn­knownNoYesYes
E061Basic predicates and search conditionsYesPartialPartialUn­knownYesUn­knownYesUn­knownPartialYesYes
E061-01Comparison predicateYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E061-02BETWEEN predicateYesYesPartialYesYesYesYesUn­knownYesYesYes
E061-03IN predicate with list of valuesYesYesPartialYesYesYesYesUn­knownYesYesYes
E061-04LIKE predicateYesYesPartialYesYesYesYesUn­knownPartialYesYes
E061-05LIKE predicate: ESCAPE clauseYesYesPartialUn­knownYesUn­knownYesUn­knownPartialYesYes
E061-06NULL predicateYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E061-07Quantified comparison predicateYesYesPartialUn­knownYesUn­knownYesUn­knownPartialYesYes
E061-08EXISTS predicateYesYesPartialYesYesYesYesUn­knownYesYesYes
E061-09Subqueries in comparison predicateYesYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E061-11Subqueries in IN predicateYesYesPartialYesYesYesYesUn­knownYesYesYes
E061-12Subqueries in quantified comparison predicateYesYesPartialUn­knownYesUn­knownYesUn­knownNoYesYes
E061-13Correlated subqueriesYesYesPartialYesYesUn­knownYesUn­knownYesYesYes
E061-14Search conditionYesPartial[note 7]PartialUn­knownYesUn­knownYesUn­knownYesYesYes
E071Basic query expressionsPartialYesPartialUn­knownYesUn­knownYesUn­knownYesYesYes
E071-01UNION DISTINCT table operatorYesYes[note 8]YesUn­knownYesUn­knownYesUn­knownYesYesYes
E071-02UNION ALL table operatorYesYesYesYesYesYesYesUn­knownYesYesYes
E071-03EXCEPT DISTINCT table operatorNoYes[note 8]No[note 9]Un­knownYesUn­knownYesUn­knownYesYesYes
E071-05Columns combined via table operators need not have exactly the same data typeYesYesYesYesYesUn­knownYesUn­knownYesYesYes
E071-06Table operators in subqueriesYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E081Basic PrivilegesYesYesPartialUn­knownPartialUn­knownYesUn­knownUn­knownYesNo
E081-01SELECT privilege at the table levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-02DELETE privilegeYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-03INSERT privilege at the table levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-04UPDATE privilege at the table levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-05UPDATE privilege at the column levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-06REFERENCES privilege at the table levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-07REFERENCES privilege at the column levelYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-08WITH GRANT OPTIONYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E081-09USAGE privilegeYesYesNoUn­knownNoUn­knownYesUn­knownUn­knownYesNo
E081-10EXECUTE privilegeYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesNo
E091Set functionsYesYesYesUn­knownYesUn­knownYesUn­knownPartialYesYes
E091-01AVGYesYesYesYesYesYesYesYesYesYesYes
E091-02COUNTYesYesYesYesYesYesYesYesYesYesYes
E091-03MAXYesYesYesYesYesYesYesYesYesYesYes
E091-04MINYesYesYesYesYesYesYesYesYesYesYes
E091-05SUMYesYesYesYesYesYesYesYesYesYesYes
E091-06ALL quantifierYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E091-07DISTINCT quantifierYesYesYesYesYesYesYesUn­knownYesYesYes
E101Basic data manipulationYesYesYesUn­knownYesUn­knownYesPartialPartialYesYes
E101-01INSERT statementYesYesYesYesYesYesYesUn­knownPartialYesYes
E101-03Searched UPDATE statementYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E101-04Searched DELETE statementYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E111Single row SELECT statementYesYesYesUn­knownYesUn­knownYesUn­knownUn­knownYesYes
E121Basic cursor supportPartialYesPartialUn­knownNoUn­knownYesPartialNoYesYes
E121-01DECLARE CURSORYesYesPartialUn­knownNoUn­knownYesNoNoYesYes
E121-02ORDER BY columns need not be in select listYesYesYesYesYesYesYesYes[note 10]NoYesYes
E121-03Value expressions in ORDER BY clauseYesYesYesYesYesYesYesUn­knownNoYesYes
E121-04OPEN statementYesYesYesUn­knownNoUn­knownYesUn­knownNoYesYes
E121-06Positioned UPDATE statementYesYesYesUn­knownNoUn­knownYesUn­knownNoYesNo
E121-07Positioned DELETE statementYesYesYesUn­knownNoUn­knownYesUn­knownNoYesNo
E121-08CLOSE statementYesYesYesUn­knownNoUn­knownYesUn­knownNoYesYes
E121-10FETCH statement: implicit NEXTYesYesPartialUn­knownNoUn­knownYesUn­knownNoYesYes
E121-17WITH HOLD cursorsNoYesUn­knownUn­knownNoUn­knownYesUn­knownNoYesNo
E131Null value support (nulls in lieu of values)YesYesUn­knownYesYesYesYesUn­knownYesYesYes
E141Basic integrity constraintsPartialYesYesUn­knownPartialUn­knownYesPartialPartialYesYes
E141-01NOT NULL constraintsYesYesYesYesYesYesYesYesYesYesYes
E141-02UNIQUE constraints of NOT NULL columnsYesYesYesUn­knownYesUn­knownYesYesNoYesYes
E141-03PRIMARY KEY constraintsYesYesYesYesYesYesYesYes[note 11]PartialYesYes
E141-04Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update actionYesYesYesUn­knownYesUn­knownYesUn­knownNoYesYes
E141-06CHECK constraintsYesYesYesUn­knownNoUn­knownYesUn­knownNoYesYes
E141-07Column defaultsYesYesYesYesYesYesYesUn­knownNoYesYes
E141-08NOT NULL inferred on PRIMARY KEYYesYesYesUn­knownYesUn­knownYesPartial[note 12]PartialYesYes
E141-10Names in a foreign key can be specified in any orderNoYesYesUn­knownNoUn­knownYesUn­knownNoYesYes
E151Transaction supportPartialPartialYesYesYesUn­knownYesPartialNoYesYes
E151-01COMMIT statementYesYesYesYesYesUn­knownYesYesNoYesYes
E151-02ROLLBACK statementYesYesYesYesYesUn­knownYesYesNoYesYes
E152Basic SET TRANSACTION statementPartialYesYesUn­knownYesUn­knownYesNoNoYesPartial
E152-01SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clauseNoPartial[note 13]YesUn­knownYesUn­knownYesUn­knownNoYesPartial
E152-02SET TRANSACTION statement: READ ONLY and READ WRITE clausesYesNoYesUn­knownYesUn­knownYesUn­knownNoYesPartial
E*OtherPartialPartialPartialUn­knownYesUn­knownPartialUn­knownUn­knownYesPartial
E153Updatable queries with subqueriesYesYesYesUn­knownYesUn­knownYesUn­knownYesYesYes
E161SQL comments using leading double minusYesYesYesYesYesYesYesYesYesYesYes
E171SQLSTATE supportPartialYesYesUn­knownYesUn­knownYesUn­knownPartialYesNo
E182Host language binding (previously "Module Language")NoPartial[note 14]Un­knownUn­knownYesUn­knownNoUn­knownNoYes
F021Basic information schemaNoPartialNoYesNoYes[note 15]YesNoNoYes
F021-01COLUMNS viewNoPartial[note 16]NoYesNoYes[note 17]YesNo[note 18]NoYes
F021-02TABLES viewNoPartial[note 16]NoYesNoYes[note 17]YesNo[note 18]NoYes
F021-03VIEWS viewNoPartial[note 16]NoYesNoYes[note 17]YesNo[note 18]NoYes
F021-04TABLE_CONSTRAINTS viewNoPartial[note 16]NoYesNoYesYesNoNoYes
F021-05REFERENTIAL_CONSTRAINTS viewNoPartial[note 16]NoYesNoYesYesNoNoYes
F021-06CHECK_CONSTRAINTS viewNoPartial[note 16]NoYesNoYesYesNoNoYes
F031Basic schema manipulationPartialPartialPartialUn­knownPartialUn­knownYesPartialPartialYes
F031-01CREATE TABLE statement to create persistent base tablesYesYesYesYesYesYesYesUn­knownYesYes
F031-02CREATE VIEW statementYesYesYesYesYesUn­knownYesYesNoYes
F031-03GRANT statementYesYesYesUn­knownYesUn­knownYesNoNoYes
F031-04ALTER TABLE statement: ADD COLUMN clauseYesYesUn­knownUn­knownYesYesYesUn­knownYesYes
F031-13DROP TABLE statement: RESTRICT clausePartialYesNoUn­knownYesUn­knownYesUn­knownNoYes
F031-16DROP VIEW statement: RESTRICT clauseUn­knownYesNoUn­knownYesUn­knownYesUn­knownNoYes
F031-19REVOKE statement: RESTRICT clausePartialNoNoUn­knownNoUn­knownYesUn­knownNoYes
F041Basic joined tableYesYesYesUn­knownYesUn­knownYesPartialYesYes
F041-01Inner join (but not necessarily the INNER keyword)YesYesYesYesYesYesYesYesYesYes
F041-02INNER keywordYesYesYesYesYesYesYesYesYesYes
F041-03LEFT OUTER JOINYesYesYesYesYesYesYesYesYesYes
F041-04RIGHT OUTER JOINYesYesYesYesYesYesYesNoYesYes
F041-05Outer joins can be nestedYesYesYesUn­knownYesUn­knownYesUn­knownYesYes
F041-07The inner table in a left or right outer join can also be used in an inner joinYesYesYesUn­knownYesUn­knownYesUn­knownYesYes
F041-08All comparison operators are supported (rather than just =)YesYesYesUn­knownYesUn­knownYesUn­knownYesYes
F051Basic date and timePartialPartialYesUn­knownYesUn­knownYesPartialPartialYes
F051-01DATE data type (including support of DATE literal)YesYesYesNoYesYesYesNoPartialYes
F051-02TIME data type (including support of TIME literal) with fractional seconds precision of at least 0YesYesNoUn­knownYesUn­knownYesUn­knownPartialYes
F051-03TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6YesYesYesUn­knownYesUn­knownYesUn­knownPartialYes
F051-04Comparison predicate on DATE, TIME, and TIMESTAMP data typesYesYesYesUn­knownYesUn­knownYesUn­knownYesYes
F051-05Explicit CAST between datetime types and character string typesYesYesYesUn­knownYesUn­knownYesPartialYesYes
F051-06CURRENT_DATEYesYesYesUn­knownYesYesYesYesYesYes
F051-07LOCALTIMEPartialNoNoUn­knownYesYesYesNoYesYes
F051-08LOCALTIMESTAMPPartialNoYesUn­knownYesYesYesNoYesYes
F081UNION and EXCEPT in viewsPartialYesUn­knownYesYesUn­knownYesYesNoYes
F131Grouped operationsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F131-01WHERE, GROUP BY, and HAVING clauses supported in queries with grouped viewsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F131-02Multiple tables supported in queries with grouped viewsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F131-03Set functions supported in queries with grouped viewsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F131-04Subqueries with GROUP BY and HAVING clauses and grouped viewsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F131-05Single row SELECT with GROUP BY and HAVING clauses and grouped viewsYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes
F*OtherPartialUn­knownPartialUn­knownYesUn­knownPartialUn­knownPartialYes
F181Multiple module supportNoUn­knownYesUn­knownYesUn­knownNoUn­knownNoYes
F201CAST functionYesUn­knownYesUn­knownYesYesYesYesYesYes
F221Explicit defaultsNoUn­knownUn­knownUn­knownYesUn­knownYesUn­knownYesYes
F261CASE expressionYesUn­knownYesYesYesYesYesUn­knownYesYes
F261-01Simple CASEYesUn­knownYesUn­knownYesUn­knownYesUn­knownYesYes
F261-02Searched CASEYesUn­knownYesUn­knownYesUn­knownYesUn­knownYesYes
F261-03NULLIFYesUn­knownYesUn­knownYesUn­knownYesUn­knownYesYes
F261-04COALESCEYesUn­knownYesYesYesYesYesUn­knownYesYes
F311Schema definition statementNoUn­knownYesUn­knownPartialUn­knownYesPartialNoYes
F311-01CREATE SCHEMANoUn­knownYesUn­knownYesUn­knownYesNoNoYes
F311-02CREATE TABLE for persistent base tablesNoUn­knownYesYesYesYesYesUn­knownNoYes
F311-03CREATE VIEWNoUn­knownYesYesYesYesYesYesNoYes
F311-04CREATE VIEW: WITH CHECK OPTIONNoUn­knownYesUn­knownNoUn­knownYesUn­knownNoYes
F311-05GRANT statementNoUn­knownYesUn­knownYesUn­knownYesNoNoYes
F471Scalar subquery valuesYesUn­knownYesUn­knownYesUn­knownYesYesYesYes
F481Expanded NULL predicateYesUn­knownYesUn­knownYesUn­knownYesUn­knownYesYes
F501Features and conformance viewsUn­knownUn­knownNoNoNoUn­knownPartialUn­knownNoYes
F501-01SQL_FEATURES viewNoNoNoNoNoNoYesNoNoYes
F501-02SQL_SIZING viewUn­knownUn­knownNoNoNoUn­knownYesNoNoYes
F501-03SQL_LANGUAGES viewUn­knownUn­knownNoNoNoUn­knownYesNoNoYes
F812Basic flaggingNoUn­knownSQL-92Un­knownNoUn­knownNoUn­knownNoYes
S011Distinct data typesNoUn­knownUn­knownUn­knownNoUn­knownNoUn­knownNoYes
S011-01USER_DEFINED_TYPES viewUn­knownUn­knownUn­knownUn­knownNoUn­knownNoUn­knownNoYes
T321Basic SQL-invoked routinesPartialUn­knownPartialUn­knownPartialUn­knownPartialUn­knownNoYes
T321-01User-defined functions with no overloadingYesUn­knownUn­knownYesYesYesYesUn­knownNoYes
T321-02User-defined stored procedures with no overloadingYesUn­knownUn­knownYesYesUn­knownYesUn­knownNoYes
T321-03Function invocationYesUn­knownYesYesYesYesYesUn­knownNoYes
T321-04CALL statementPartialUn­knownYesUn­knownYesUn­knownYesNoNoYes
T321-05RETURN statementPartialUn­knownPartial[note 19]Un­knownYesUn­knownNoNoNoYes
T321-06ROUTINES viewUn­knownUn­knownNo[note 20]Un­knownNo[note 21]Un­knownYesUn­knownNoYes
T321-07PARAMETERS viewUn­knownUn­knownNo[note 22]Un­knownNo[note 23]Un­knownYesUn­knownNoYes
T631IN predicate with one list elementYesUn­knownYesUn­knownYesUn­knownYesUn­knownNoYes

Footnotes

  1. Trims trailing spaces from CHARACTER values before counting
  2. There is no built-in function by this name, although the number of octets in a string can be determined by using LENGTH(CAST(X AS BLOB)).
  3. There are LTRIM and RTRIM functions for equivalent functionality.
  4. There is INSTR.
  5. There is the CHARINDEX function for equivalent functionality.
  6. There is the charindex function for equivalent functionality.
  7. Lacks support for [IS [NOT] TRUE|FALSE|UNKNOWN]
  8. Without DISTINCT keyword
  9. Use MINUS instead of EXCEPT DISTINCT
  10. Except compound queries.
  11. Only WITHOUT ROWID tables have real primary keys other than the rowid (INTEGER PRIMARY KEY)
  12. Only for WITHOUT ROWID tables.
  13. SET [CURRENT] ISOLATION used instead of SET TRANSACTION
  14. Supports embedded language features but not the specific MODULE syntax
  15. "MySQL :: MySQL 5.7 Reference Manual :: 24 INFORMATION_SCHEMA Tables".
  16. Included in SYSIBM schema
  17. Also includes MySQL-specific extension columns
  18. You can use PRAGMA for obtaining this information, and can create an information schema based on this, but it is not build in.
  19. Oracle supports the following subfeature in PL/SQL but not in Oracle SQL.
  20. Use the ALL PROCEDURES metadata view.
  21. Use the sys.functions metadata view.
  22. Use the ALL_ARGUMENTS and ALL_METHOD_PARAMS metadata views.
  23. Use the sys.args metadata view.

See also

References

  1. "[MS-TSQLISO02]: E021-09, TRIM function". docs.microsoft.com. Retrieved 22 April 2020.
  2. "[MS-TSQLISO02]: E021-11, POSITION function". docs.microsoft.com. Retrieved 22 April 2020.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.