SQL compliance
Function | Description | Firebird | IBM DB2 | Oracle Database | Microsoft SQL | MySQL | PostgreSQL | SQLite |
---|---|---|---|---|---|---|---|---|
E011 | Numeric data types | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–01 | INTEGER and SMALLINT data types (including all spellings) | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–02 | REAL, DOUBLE PRECISION, and FLOAT data types | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–03 | DECIMAL and NUMERIC data types | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–04 | Arithmetic operators | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–05 | Numeric comparison | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E011–06 | Implicit casting among the numeric data types | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021 | Character string types | Partial | Unknown | Partial | Unknown | Unknown | Partial | Unknown |
E021–01 | CHARACTER data type (including all its spellings) | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021–02 | CHARACTER VARYING data type (including all its spellings) | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E021–03 | Character literals | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E021–04 | CHARACTER_LENGTH function | Yes | Unknown | Unknown | Unknown | Unknown | Partial | Unknown |
E021–05 | OCTET_LENGTH function | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E021–06 | SUBSTRING function | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E021–07 | Character concatenation | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021–08 | UPPER and LOWER functions | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021–09 | TRIM function | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021–10 | Implicit casting among the fixed-length and variable-length character string types | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E021–11 | POSITION function | No | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E021–12 | Character comparison | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E031 | Identifiers | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E031–01 | Delimited identifiers | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E031–02 | Lower case identifiers | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E031–03 | Trailing underscore | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E051 | Basic query specification | Partial | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E051–01 | SELECT DISTINCT | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–02 | GROUP BY clause | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–04 | GROUP BY can contain columns not in <select-list> | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–05 | Select list items can be renamed | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–06 | HAVING clause | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–07 | Qualified * in select list | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E051–08 | Correlation names in the FROM clause | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E051–09 | Rename columns in the FROM clause | No | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E061 | Basic predicates and search conditions | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–01 | Comparison predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–02 | BETWEEN predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–03 | IN predicate with list of values | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–04 | LIKE predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–05 | LIKE predicate: ESCAPE clause | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–06 | NULL predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–07 | Quantified comparison predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–08 | EXISTS predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–09 | Subqueries in comparison predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–11 | Subqueries in IN predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–12 | Subqueries in quantified comparison predicate | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–13 | Correlated subqueries | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E061–14 | Search condition | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E071 | Basic query expressions | Partial | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E071–01 | UNION DISTINCT table operator | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E071–02 | UNION ALL table operator | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E071–03 | EXCEPT DISTINCT table operator | No | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E071–05 | Columns combined via table operators need not have exactly the same data type | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E071–06 | Table operators in subqueries | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081 | Basic Privileges | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–01 | SELECT privilege at the table level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–02 | DELETE privilege | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–03 | INSERT privilege at the table level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–04 | UPDATE privilege at the table level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–05 | UPDATE privilege at the column level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–06 | REFERENCES privilege at the table level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–07 | REFERENCES privilege at the column level | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–08 | WITH GRANT OPTION | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E081–09 | USAGE privilege | No | Unknown | No | Unknown | Unknown | Yes | Unknown |
E081–10 | EXECUTE privilege | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091 | Set functions | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–01 | AVG | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–02 | COUNT | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–03 | MAX | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–04 | MIN | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–05 | SUM | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–06 | ALL quantifier | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E091–07 | DISTINCT quantifier | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E101 | Basic data manipulation | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E101–01 | INSERT statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E101–03 | Searched UPDATE statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E101–04 | Searched DELETE statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E111 | Single row SELECT statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121 | Basic cursor support | Partial | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E121–01 | DECLARE CURSOR | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E121–02 | ORDER BY columns need not be in select list | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–03 | Value expressions in ORDER BY clause | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–04 | OPEN statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–06 | Positioned UPDATE statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–07 | Positioned DELETE statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–08 | CLOSE statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E121–10 | FETCH statement: implicit NEXT | Yes | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
E121–17 | WITH HOLD cursors | No | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E131 | Null value support (nulls in lieu of values) | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
E141 | Basic integrity constraints | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–01 | NOT NULL constraints | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–02 | UNIQUE constraints of NOT NULL columns | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–03 | PRIMARY KEY constraints | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–04 | Basic FOREIGN KEY constraint with the NO ACTION default for both referential delete action and referential update action | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–06 | CHECK constraints | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–07 | Column defaults | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–08 | NOT NULL inferred on PRIMARY KEY | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E141–10 | Names in a foreign key can be specified in any order | No | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E151 | Transaction support | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E151–01 | COMMIT statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E151–02 | ROLLBACK statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E152 | Basic SET TRANSACTION statement | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E152–01 | SET TRANSACTION statement: ISOLATION LEVEL SERIALIZABLE clause | No | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E152–02 | SET TRANSACTION statement: READ ONLY and READ WRITE clauses | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E153 | Updatable queries with subqueries | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E161 | SQL comments using leading double minus | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E171 | SQLSTATE support | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
E182 | "Host language Binding (previously ""Module Language"")" | No | Unknown | Unknown | Unknown | Unknown | No | Unknown |
F021 | Basic information schema | No | No | No | Yes | Yes[1] | Yes | No |
F021–01 | COLUMNS view | No | No | No | Yes | Yes[note 1] | Yes | No |
F021–02 | TABLES view | No | No | No | Yes | Yes[note 1] | Yes | No |
F021–03 | VIEWS view | No | No | No | Yes | Yes[note 1] | Yes | No |
F021–04 | TABLE_CONSTRAINTS view | No | No | No | Yes | Yes | Yes | No |
F021–05 | REFERENTIAL_CONSTRAINTS view | No | No | No | Yes | Yes | Yes | No |
F021–06 | CHECK_CONSTRAINTS view | No | No | No | Yes | Yes | Yes | No |
F031 | Basic schema manipulation | Partial | Unknown | Partial | Unknown | Unknown | Yes | Unknown |
F031–01 | CREATE TABLE statement to create persistent base tables | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F031–02 | CREATE VIEW statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F031–03 | GRANT statement | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F031–04 | ALTER TABLE statement: ADD COLUMN clause | Yes | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F031–13 | DROP TABLE statement: RESTRICT clause | Partial | Unknown | No | Unknown | Unknown | Yes | Unknown |
F031–16 | DROP VIEW statement: RESTRICT clause | Unknown | Unknown | No | Unknown | Unknown | Yes | Unknown |
F031–19 | REVOKE statement: RESTRICT clause | Partial | Unknown | No | Unknown | Unknown | Yes | Unknown |
F041 | Basic joined table | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–01 | Inner join (but not necessarily the INNER keyword) | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–02 | INNER keyword | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–03 | LEFT OUTER JOIN | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–04 | RIGHT OUTER JOIN | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–05 | Outer joins can be nested | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–07 | The inner table in a left or right outer join can also be used in an inner join | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F041–08 | All comparison operators are supported (rather than just =) | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051 | Basic date and time | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–01 | DATE data type (including support of DATE literal) | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–02 | TIME data type (including support of TIME literal) with fractional seconds precision of at least 0 | Yes | Unknown | No | Unknown | Unknown | Yes | Unknown |
F051–03 | TIMESTAMP data type (including support of TIMESTAMP literal) with fractional seconds precision of at least 0 and 6 | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–04 | Comparison predicate on DATE, TIME, and TIMESTAMP data types | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–05 | Explicit CAST between datetime types and character string types | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–06 | CURRENT_DATE | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F051–07 | LOCALTIME | Partial | Unknown | No | Unknown | Unknown | Yes | Unknown |
F051–08 | LOCALTIMESTAMP | Partial | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F081 | UNION and EXCEPT in views | Partial | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F131 | Grouped operations | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F131–01 | WHERE, GROUP BY, and HAVING clauses supported in queries with grouped views | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F131–02 | Multiple tables supported in queries with grouped views | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F131–03 | Set functions supported in queries with grouped views | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F131–04 | Subqueries with GROUP BY and HAVING clauses and grouped views | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F131–05 | Single row SELECT with GROUP BY and HAVING clauses and grouped views | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F181 | Multiple module support | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F201 | CAST function | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F221 | Explicit defaults | No | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F261 | CASE expression | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F261–01 | Simple CASE | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F261–02 | Searched CASE | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F261–03 | NULLIF | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F261–04 | COALESCE | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F311 | Schema definition statement | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F311–01 | CREATE SCHEMA | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F311–02 | CREATE TABLE for persistent base tables | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F311–03 | CREATE VIEW | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F311–04 | CREATE VIEW: WITH CHECK OPTION | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F311–05 | GRANT statement | No | Unknown | Yes | Unknown | Unknown | No | Unknown |
F471 | Scalar subquery values | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F481 | Expanded NULL predicate | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
F501 | Features and conformance views | Unknown | Unknown | No | Unknown | Unknown | Yes | Unknown |
F501–01 | SQL_FEATURES view | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F501–02 | SQL_SIZING view | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F501–03 | SQL_LANGUAGES view | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
F812 | Basic flagging | No | Unknown | SQL-92 | Unknown | Unknown | No | Unknown |
S011 | Distinct data types | No | Unknown | Unknown | Unknown | Unknown | No | Unknown |
S011–01 | USER_DEFINED_TYPES view | Unknown | Unknown | Unknown | Unknown | Unknown | No | Unknown |
T321 | Basic SQL-invoked routines | Partial | Unknown | Partial | Unknown | Unknown | Partial | Unknown |
T321–01 | User-defined functions with no overloading | Partial | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
T321–02 | User-defined stored procedures with no overloading | Partial | Unknown | Unknown | Unknown | Unknown | No | Unknown |
T321–03 | Function invocation | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
T321–04 | CALL statement | Partial | Unknown | Yes | Unknown | Unknown | No | Unknown |
T321–05 | RETURN statement | Partial | Unknown | Unknown | Unknown | Unknown | No | Unknown |
T321–06 | ROUTINES view | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
T321–07 | PARAMETERS view | Unknown | Unknown | Unknown | Unknown | Unknown | Yes | Unknown |
T631 | IN predicate with one list element | Yes | Unknown | Yes | Unknown | Unknown | Yes | Unknown |
Footnotes
See also
References
- http://docs.oracle.com/database/121/SQLRF/ap_standard_sql003.htm
- http://www.firebirdsql.org/en/sql-conformance/
- http://www.postgresql.org/docs/9.5/static/features-sql-standard.html
This article is issued from
Wikipedia.
The text is licensed under Creative Commons - Attribution - Sharealike.
Additional terms may apply for the media files.