Suporte do Derby às funcionalidades do SQL-92 SQL-92funcionalidades suportada pelo Derby funcionalidades não suportada pelo Derby

Existem quatro níveis de suporte ao SQL-92:

  • SQL92E

    Entrada (entry)

  • SQL92T

    Transicional (transitional), um nível definido pelo NIST em uma publicação chamada FIPS 127-2

  • SQL92I

    Intermediário (intermediate)

  • SQL92F

    Completo (full)

Suporte às funcionalidades do SQL-92: Tipos básicos Funcionalidade Origem SMALLINT SQL92E sim INTEGER SQL92E sim DECIMAL(p,s) SQL92E sim NUMERIC(p,s) SQL92E sim REAL SQL92E sim FLOAT(p) SQL92E sim DOUBLE PRECISION SQL92E sim CHAR(n) SQL92E sim
Suporte às funcionalidades do SQL-92: Operações matemáticas básicas Funcionalidade Origem +, *, -, /, + unário, - unário SQL92E sim
Suporte às funcionalidades do SQL-92: Comparações básicas Funcionalidade Origem <, >, <= ,>=, <>, = SQL92E sim
Suporte às funcionalidades do SQL-92: Predicados básicos Funcionalidade Origem BETWEEN, LIKE, NULL SQL92E sim
Suporte às funcionalidades do SQL-92: Predicados quantificados Funcionalidade Origem IN, ALL/SOME, EXISTS SQL92E sim
Suporte às funcionalidades do SQL-92: Definição do esquema Funcionalidade Origem tabelas SQL92E sim visões SQL92E sim privilégios SQL92E sim
Suporte às funcionalidades do SQL-92: Atributos das colunas Funcionalidade Origem valor padrão SQL92E sim nulo SQL92E sim
Suporte às funcionalidades do SQL-92: Restrições (não-postergáveis) Funcionalidade Origem NOT NULL SQL92E sim (não armazenada em SYSCONSTRAINTS) UNIQUE/PRIMARY KEY SQL92E sim FOREIGN KEY SQL92E sim CHECK SQL92E sim Visão com WITH CHECK OPTION SQL92E não, uma vez que as visões não são atualizáveis
Suporte às funcionalidades do SQL-92: Cursores Funcionalidade Origem DECLARE, OPEN, FETCH, CLOSE SQL92E realizadas através do JDBC UPDATE, DELETE CURRENT SQL92E sim
Suporte às funcionalidades do SQL-92: SQL dinâmico 1 Funcionalidade Origem ALLOCATE / DEALLOCATE / GET / SET DESCRIPTOR SQL92T realizadas através do JDBC PREPARE / EXECUTE / EXECUTE IMMEDIATE SQL92T realizadas através do JDBC Cursor dinâmico DECLARE, OPEN, FETCH, CLOSE, UPDATE, DELETE SQL92T realizadas através do JDBC Saída DESCRIBE SQL92T realizadas através do JDBC
Suporte às funcionalidades do SQL-92: Esquema de informações básico Funcionalidade Origem TABLES SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS VIEWS SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS COLUMNS SQL92T SYS.SYSTABLES, SYS.SYSVIEWS, SYS.SYSCOLUMNS
Suporte às funcionalidades do SQL-92: Manipulação básica de esquema Funcionalidade Origem CREATE / DROP TABLE SQL92T sim CREATE / DROP VIEW SQL92T sim GRANT / REVOKE SQL92T não ALTER TABLE ADD COLUMN SQL92T sim ALTER TABLE DROP COLUMN SQL92T não
Suporte às funcionalidades do SQL-92: Tabela juntada Funcionalidade Origem INNER JOIN SQL92T sim junção natural SQL92T não LEFT, RIGHT OUTER JOIN SQL92T sim condição de junção SQL92T sim junção de colunas nomeada SQL92T sim
Suporte às funcionalidades do SQL-92: Tabela juntada Funcionalidade Origem DATE, TIME, TIMESTAMP, INTERVAL simples SQL92T sim, menos INTERVAL constantes data/hora SQL92T sim matemática data/hora SQL92T pode ser feito com métodos Java comparações de data/hora SQL92T sim predicados: OVERLAPS SQL92T pode ser feito com métodos Java
Suporte às funcionalidades do SQL-92: VARCHAR Funcionalidade Origem LENGTH SQL92T sim concatenação (||) SQL92T sim
Suporte às funcionalidades do SQL-92: Isolamento de transação Funcionalidade Origem READ WRITE / READ ONLY SQL92T através do JDBC, propriedades do banco de dado e meio de armazenamento. RU, RC, RR, SER SQL92T sim
Suporte às funcionalidades do SQL-92: Vários esquemas por usuário Funcionalidade Origem Visão SCHEMATA SQL92T SYS.SYSSCHEMAS
Suporte às funcionalidades do SQL-92: Privilégios em tabelas Funcionalidade Origem TABLE_PRIVILEGES SQL92T não COLUMNS_PRIVILEGES SQL92T não USAGE_PRIVILEGES SQL92T não
Suporte às funcionalidades do SQL-92: Operações de tabela Funcionalidade Origem Relaxamento de UNION SQL92I sim EXCEPT SQL92I sim INTERSECT SQL92I sim CORRESPONDING SQL92I não
Suporte às funcionalidades do SQL-92: Instrução de definição de esquema Funcionalidade Origem CREATE SCHEMA SQL92I sim, parcialmente
Suporte às funcionalidades do SQL-92: Autorização de usuário Funcionalidade Origem SET SESSION AUTHORIZATION SQL92I usado SET SCHEMA CURRENT_USER SQL92I sim SESSION_USER SQL92I sim SYSTEM_USER SQL92I não
Suporte às funcionalidades do SQL-92: Restrições de tabela Funcionalidade Origem TABLE CONSTRAINTS SQL92I SYS.SYSCONSTRAINTS REFERENTIAL CONSTRAINTS SQL92I SYS.SYSFOREIGNKEYS CHECK CONSTRAINTS SQL92I SYS.SYSCHECKS
Suporte às funcionalidades do SQL-92: Esquema de documentação Funcionalidade Origem SQL_FEATURES SQL92I/FIPS 127-2 usado JDBC DatabaseMetaData SQL_SIZING SQL92I/FIPS 127-2 usado JDBC DatabaseMetaData
Suporte às funcionalidades do SQL-92: DATETIME completo Funcionalidade Origem precisão para TIME e TIMESTAMP SQL92F sim
Suporte às funcionalidades do SQL-92: Funções de caractere completa Funcionalidade Origem Expressão POSITION SQL92F usado métodos Java ou LOCATE Funções UPPER/LOWER SQL92F sim
Suporte às funcionalidades do SQL-92: Diversas Funcionalidade Origem Identificadores delimitados SQL92E sim Subconsultas correlacionadas SQL92E sim Instruções de inserção, atualização e exclusão SQL92E sim Junções SQL92E sim Qualificações no WHERE SQL92E sim GROUP BY SQL92E sim HAVING SQL92E sim Funções de agregação SQL92E sim ORDER BY SQL92E sim Expressões de seleção SQL92E sim SELECT * SQL92E sim SQLCODE SQL92E não, em obsolescência no SQL-92 SQLSTATE SQL92E sim UNION, INTERSECT e EXCEPT em visões SQL92T sim Conversão numérica implícita SQL92T sim Conversão de caractere implícita SQL92T sim Obter diagnóstico SQL92T usado JDBC SQLException Operações agrupadas SQL92T sim * qualificado na lista de seleção SQL92T sim Identificadores em minúsculas SQL92T sim PRIMARY KEY com nulo SQL92T não Suporte a vários módulos SQL92T não (não é requerido e não faz parte do JDBC) Ações de exclusão referencial SQL92T CASCADE, SET NULL, RESTRICT e NO ACTION. Funções CAST SQL92T sim Expressões INSERT SQL92T sim Padrões explícitos SQL92T sim Relaxamento de palavra chave SQL92T sim Definição de domínio SQL92I não Expressão CASE SQL92I suporte parcial Constantes cadeia de caracteres compostas SQL92I usado concatenação Melhorias no LIKE SQL92I sim Predicado UNIQUE SQL92I não Utilização de tabelas SQL92I SYS.SYSDEPENDS Esquema de informação intermediário SQL92I usado JDBC DatabaseMetaData e tabelas do sistema do Suporte a subprograma SQL92I não é relevante para o JDBC, que é muito mais rico Sinalização SQL intermediária SQL92I não Manipulação de esquema SQL92I sim Identificadores longos SQL92I sim Junção externa completa SQL92I não Especificação de zona horária SQL92I não Cursores rolados SQL92I parcial (rolagem não sensível ao conjunto de resultados através do JDBC 2.0) Suporte a funções de conjunto intermediário SQL92I parcial Definição de conjunto de caracteres SQL92I suporta idiomas do Java Conjuntos de caracteres nomeados SQL92I suporta idiomas do Java Valores de subconsulta escalar SQL92I sim Predicado nulo expandido SQL92I sim Gerenciamento de restrições SQL92I sim (ADD/DROP CONSTRAINT) Tipos FOR BIT DATA SQL92F sim Restrições de asserção SQL92F não Tabelas temporárias SQL92F somente sintaxe específica da IBM SQL dinâmico completo SQL92F não Expressões de valor completa SQL92F sim Testes de valor verdade SQL92F sim tabelas derivadas no FROM SQL92F sim Sublinhado no final SQL92F sim Tipos de dado indicador SQL92F não é relevante para o JDBC Ordem de nome referencial SQL92F não Sinalização SQL completa SQL92F não Construtores de linha e de tabela SQL92F sim Qualificadores de nome de catálogo SQL92F não Tabelas simples SQL92F não Subconsultas no CHECK SQL92F não, mas pode ser feito com métodos Java Junção de união SQL92F não Agrupamento e tradução SQL92F Suportados os idiomas do Java Ações de atualização referenciais SQL92F RESTRICT e NO ACTION. As demais podem ser feitas com gatilhos. ALTER domínio SQL92F não INSERT privilégios em colunas SQL92F não Tipos MATCH referenciais SQL92F não Melhorias de CHECK em visões SQL92F não, as visões não são atualizáveis Gerenciamento de sessão SQL92F usado JDBC Gerenciamento de conexão SQL92F usado JDBC Operações de auto-referenciamento SQL92F sim Cursores não sensíveis SQL92F Sim, através do JDBC 2.0 Função de conjunto completa SQL92F parcialmente Sinalização de catálogo SQL92F não Referências a tabela local SQL92F não Atualização de cursor completa SQL92F não