O padrão SQL:2023 já foi publicado, conheça-o 

SQL: 2023

O padrão SQL:2023 implementa vários aprimoramentos e alterações

Há alguns dias, a Organização Internacional de Normalização (ISO) aprovou e publicou o padrão internacional SQL:2023 (ISO/IEC 9075), que é definida como a nona edição da especificação da linguagem SQL utilizada para manipulação de dados em SGBDs relacionais. A última atualização da especificação foi publicada em 2016 (SQL:2016).

Para quem não conhece SQL (Structured Query Language) deve saber que é uma linguagem padronizada para gerenciar bancos de dados relacionais e realizar diversas operações sobre os dados que eles contêm. Criado na década de 1970, o SQL é usado regularmente não apenas por administradores de banco de dados, mas também por desenvolvedores que escrevem scripts de integração de dados e por analistas de dados que procuram configurar e executar consultas analíticas. O padrão é atualizado regularmente para adicionar novos recursos e fazer alterações no idioma existente.

O que há de novo na nova especificação SQL:2023?

Adicionada extensão SQL/PGQ (Property Graph Queries) para manipular conjuntos de dados interconectados que formam um gráfico. Basicamente, esta nova função facilita a consulta de dados em tabelas como se estivesse em um banco de dados gráfico, fornecendo uma alternativa, talvez mais intuitiva, para escrever consultas de junção complexas. Esse recurso pode ser muito bem-vindo na comunidade de ciência de dados.

Outra mudança que se destaca é que definiu a capacidade de personalizar o comportamento do processamento de valor NULL na presença da restrição "UNIQUE". Se "UNIQUE NULLS DISTINCT" for especificado, os valores NULL adicionados ao banco de dados serão tratados como únicos.

Além disso, também podemos descobrir que As possibilidades de realizar a operação "ORDER BY" foram ampliadas em tabelas agrupadas. A especificação agora permite operações para classificar tabelas agrupadas por uma coluna que não aparece na lista de saída SELECT da tabela em cluster. Anteriormente, a maioria dos SGBDs permitia tais manipulações, mas a especificação não definia tal possibilidade.

Também podemos descobrir que eu sei adicionadas variantes de vários caracteres da função TRIM: LTRIM, RTRIM e BTRIM, que permitem que os caracteres especificados na lista sejam cortados do início ou do final da string. Em comparação com o TRIM, as novas funções têm uma sintaxe mais simples.

Se estendeu a capacidade de detectar ciclos em consultas recursivas usando a expressão "CYCLE«. Um campo com um marcador de loop agora pode ser do tipo "booleano" em vez de uma string e passar o sinal de loop como valores verdadeiros e falsos.

Das outras mudanças que se destacam:

  • Adicionadas novas funções LPAD e RPAD para preencher uma string em um determinado tamanho. Por exemplo:
  • Para os tipos "VARCHAR" e "CHARACTER VARYING" é permitido não especificar o tamanho máximo, neste caso o tamanho máximo dependerá da implementação do SGBD.
  • Adicionada uma nova função de agregação any_value(), que retorna um valor não nulo arbitrário do conjunto de dados de entrada.
  • Adicionada a capacidade de especificar literais hexadecimais, binários e octais. Por exemplo:
  • O uso do caractere sublinhado no número é permitido para aumentar a visibilidade dos literais digitais.
  • Recursos significativamente expandidos relacionados ao processamento de dados no formato JSON.
  • Adicionado um tipo JSON separado (no padrão SQL:2016, os dados JSON precisavam ser armazenados em campos com tipos de string).
  • Suporte implementado para operações JSON_SERIALIZE, JSON_SCALAR e IS JSON.
  • Adicionados 14 novos métodos para aplicar aos valores SQL/JSON dentro da linguagem SQL/JSON.

Finalmente, Se você estiver interessado em saber mais sobre isso, Poderá consultar os detalhes bem como exemplos práticos das alterações implementadas no link a seguir.

Cabe mencionar que no PostgreSQL, a maioria das funções propostas no SQL:2023 já estão disponíveis o estão planejados para inclusão no próximo lançamento principal, enquanto para a parte de suporte ANY_VALUE, sublinhados em números, literais hexadecimais/binários/octais e literais hexadecimais em SQL/JSON aparecerão no lançamento de outono do PostgreSQL.

Suporte aprimorado ao recurso esperado para o tipo JSON, sintaxe SQL/JSON simplificado, novos métodos JSON e a extensão PGQ em versões posteriores ao PostreSQL 16, mas o trabalho nessas áreas ainda não começou. O restante das funções SQL:2023 já estão disponíveis em versões existentes do PostreSQL.